请问DELPHI怎么把WORD文档导入到本地的PARADOX数据库啊???
请大家教我啊!!!!!!!!!!!!!!!!!!!! 问题点数:30、回复次数:6Top
1 楼wwweeiii(孤影魔狼)回复于 2003-09-05 11:49:46 得分 0
没有人知道啊!!Top
2 楼swordman119(★人无名剑也无名★)回复于 2003-09-05 17:01:40 得分 25
这是一个Word文件在数据库的存取的例子,引用别人的:)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtnrs, DB, DBTables;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Table1: TTable;
OpenDialog1: TOpenDialog;
Button3: TButton;
Button4: TButton;
Label1: TLabel;
Label2: TLabel;
Button5: TButton;
Button6: TButton;
Button7: TButton;
SaveDialog1: TSaveDialog;
Label3: TLabel;
OleContainer1: TOleContainer;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//WordÎļþ´æÅÌ
procedure TForm1.Button1Click(Sender: TObject);
var MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
begin
OpenDialog1.Filter:='WORDÎļþ|*.doc';
if OpenDialog1.Execute then begin
MyFile:=TFileStream.Create(OpenDialog1. FileName,fmOpenRead);
with table1 do
begin
Open;
insert;
table1.FieldByName('ÎļþÃû³Æ').asstring:=opendialog1.filename;//'Îļþ'+inttostr(table1.RecordCount+1);
Edit;
Stream := TBlobStream.Create(FieldByName('ÄÚÈÝ') as TBlobField, bmWrite);
MemSize := MyFile.Size;
Inc(MemSize);
Buffer := AllocMem(MemSize);
try
Stream.Seek(0, soFromBeginning);
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
try
Post;
except
raise;
end;
end;
olecontainer1.CreateObjectFromFile(OpenDialog1. FileName ,False);
olecontainer1.Run;
label1.caption:=inttostr(table1.RecordCount);
end;
end;
//´ÓÊý¾Ý¿âÖжÁÈ¡WordÎļþ´æÅÌ
procedure TForm1.Button2Click(Sender: TObject);
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
begin
//´´½¨Ò»¸öÁÙʱÎļþ
MyFile:=TFileStream.Create('c:\temp.tmp',fmCreate);
with table1 do
begin
Stream := TBlobStream.Create(FieldByName('ÄÚÈÝ') as TBlobField, bmRead);
MemSize := Stream.Size;
Inc(MemSize);
Buffer := AllocMem(MemSize);
try
Stream.Read(Buffer^,MemSize);
//´Ó±äÁ¿StreamÖжÁÈ¡ÄÚÈÝ£¬´æÈëÁÙʱÎļþ¶ÔÓ¦µÄ±äÁ¿MyFileÖÐ
MyFile.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
end;
if FileExists('c:\temp.DOC') then DeleteFile('c:\temp.DOC');
if FileExists('c:\temp.tmp') then begin
//¸üÃûÁÙʱÎļþ
RenameFile('c:\temp.tmp', 'c:\temp.DOC');
olecontainer1.CreateObjectFromFile('c:\temp.DOC',False);
label3.Caption:=table1.fieldbyname('ÎļþÃû³Æ').AsString;
olecontainer1.Run;
end;
end;
//³ÌÐò³õʼ»¯²ÎÊýÉèÖÃ
procedure TForm1.FormActivate(Sender: TObject);
begin
table1.DatabaseName:=ExtractFilePath(Paramstr(0));
table1.TableName:='wj.db';
table1.open;
label1.caption:=inttostr(table1.RecordCount);
label3.Caption:='';
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
table1.Close;
end;
//Êý¾Ý¿â¼Ç¼ÏÂÒÆ
procedure TForm1.Button3Click(Sender: TObject);
begin
table1.Next;
button2.Click;
end;
//Êý¾Ý¿â¼Ç¼ÉÏÒÆ
procedure TForm1.Button4Click(Sender: TObject);
begin
table1.RecNo:=table1.RecNo-1;;
button2.Click;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
olecontainer1.Close;
end;
//½«Êý¾Ý¿âÎļþ±£´æ³öÀ´
procedure TForm1.Button7Click(Sender: TObject);
begin
saveDialog1.Filter:='WORDÎļþ|*.doc';
if label3.caption<>'' then
begin
savedialog1.FileName:=table1.fieldbyname('ÎļþÃû³Æ').AsString;
savedialog1.Execute;
copyfile('c:\temp.doc',pchar(savedialog1.FileName+'.doc'),true);
end
else
showmessage('δ´ÓÊý¾Ý¿âÖжÁÈ¡Îļþ!');
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
close;
end;
end.Top
3 楼swordman119(★人无名剑也无名★)回复于 2003-09-05 17:03:24 得分 0
晕,那些中文怎么不能显示?怎么都成乱码了,你将就下看吧:)Top
4 楼wwweeiii(孤影魔狼)回复于 2003-09-06 19:20:58 得分 0
好,谢谢了··我先试试!!:)Top
5 楼moeryang(侵晨的烟火)回复于 2003-09-06 22:10:02 得分 5
用Server里面的TwordApplicaton 更简单Top
6 楼wwweeiii(孤影魔狼)回复于 2003-09-08 08:40:50 得分 0
哦,是么?Top




