下面是我以前帮人家写的一段代码,希望对你有用。
procedure TForm1.Button2Click(Sender: TObject);
var
list: TstringList;
i: integer;
ClientID, OrdNO, OrdDate, sMemo, PrdtID, orderQty, Remark, temp, a, b: string;
begin
List := TstringList.Create;
try
a := ' ';
List.LoadFromFile('1.txt');
for i := 1 to list.Count -1 do //0行为表头,2行为从表的表头
begin
if i = 1 then
begin
ClientID := Copy(List, 0, pos(a, List) -1); //将客户单号截取出来
temp := StringReplace(List, ClientID + a ,'', [rfReplaceALL]); //删除客户单号和分割符 a
OrdNO := Copy(temp, 0, pos(a, temp) -1) ; //将订单号截取出来
temp := StringReplace(List, ClientID + a + OrdNO + a ,'', [rfReplaceALL]); //删除客户单号和分割符 a ,订单号,分割符a,下同
OrdDate := Copy(temp, 0, pos(a, temp) -1) ;
temp := StringReplace(List, ClientID + a + OrdNO + a + OrdDate + a ,'', [rfReplaceALL]);
sMemo := temp;
end;
if i > 2 then
begin
temp := StringReplace(List, ClientID + a ,'', [rfReplaceALL]);
PrdtID := Copy(temp, 0, pos(a, temp) -1) ;
temp := StringReplace(temp, ClientID + a + PrdtID + a ,'', [rfReplaceALL]);
orderQty := Copy(temp, 0, pos(a, temp) -1) ;
Remark := StringReplace(temp, (ClientID + a + PrdtID + a + orderQty + a) ,'', [rfReplaceALL]);
end;
//更新数据表的代码写在这里啦。
b := b + ClientID + OrdNO + OrdDate + sMemo + PrdtID + orderQty + Remark + chr(13)
end;
ShowMessage(b);
finally
FreeAndNil(List);
end;
end;