OpenDialog1.Execute;
AssignFile(hFile,OpenDialog1.FileName);
Reset(hFile);
if copy(OpenDialog1.FileName,length(OpenDialog1.FileName)-3,4)='_end' then
begin
showmessage('此文件已经处理过!');
label5.caption:='';
CloseFile(hFile);
end
else
begin
till:='';
while not Eof(hFile) do
begin
Readln(hFile,m);
len:=length(m);
if Pos(chr(29),m)>0 then //有记录分割符存在//
begin
//把数组的内容存入表中的data字段//
query1.edit;
query1.append;
query1.fieldbyname('data').asString:=till+copy(m,1,Pos(chr(29),m));
till:=copy(m,Pos(chr(29),m),len-Pos(chr(29),m));
end;
s:=query1.fieldbyname('data').asString;
len:=length(s);
s1:=copy(s,1,5);
if s1='' then
l:=0
else
try
l:=strtoint(s1);
except
showmessage('数据错误!');
end;
j:=25;
base:=Pos(chr(30),S);
while j<=l do
begin
zd:=copy(s,j,3);
if zd='010' then
begin
long:=strtoint(copy(s,j+7,5));
data:=copy(s,base+long+4,1);
if data='a' then
begin
data:=copy(s,base+long+5,13);
query1.fieldbyname('ISBN').asString:=data;
end
else
query1.fieldbyname('ISBN').asString:='null';
end;
if zd='215' then
begin
try
long:=strtoint(copy(s,j+7,5));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+5,5);
query1.fieldbyname('page').asString:=data;
end;
if zd='200' then
begin
try
long:=strtoint(copy(s,j+7,5));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+5,10);
query1.fieldbyname('book name').asString:=data;
end;
if zd='700' then
begin
s:=copy(s,1,j-1)+'701'+copy(s,j+3,len-j-2);
query1.fieldbyname('data').asString:=s;
try
long:=strtoint(copy(s,j+7,5));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+5,6);
query1.fieldbyname('author').asString:=data;
end;
if zd='701' then
begin
try
long:=strtoint(copy(s,j+7,5));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+5,6);
query1.fieldbyname('author').asString:=data;
end;
if zd='710' then
begin
s:=copy(s,1,j-1)+'711'+copy(s,j+3,len-j-2);
query1.fieldbyname('data').asString:=s;
try
long:=strtoint(copy(s,j+7,5));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+5,6);
query1.fieldbyname('author').asString:=data;
end;
if zd='711' then
begin
try
long:=strtoint(copy(s,j+7,5));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+5,6);
query1.fieldbyname('author').asString:=data;
end;
if zd='905' then
begin
try
long:=strtoint(copy(s,j+7,5));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+5,6);
query1.fieldbyname('code').asString:=data;
try
long1:=strtoint(copy(s,j+3,4));
except
query1.fieldbyname('tag').asString:='false';
end;
data:=copy(s,base+long+1,long1);
query1.fieldbyname('905').asString:=data;
end;
j:=j+12;
end;
query1.REFRESH;
DBGRID1.REFRESH;
DBmemo1.REFRESH;
end;
label5.caption:='导入完毕!';
CloseFile(hFile);