我建议你把文件保存成这样的格式:
序号,姓名,金额 //用一种分隔符将字段分隔开来,就和OutLook电话簿导出的文本文件格式一样
01,Tom,00437
...
...
然后再用shangjintong的方法
用readln函数读文件,再用pos和copy函数分离字符串。
再把分离出来的字符串写入数据库或赋给变量。
我曾经写了个函数:
查找一字符串中的子字符串,并把以子字符串为分隔符的其它字符串放入TString中
function CheckSite(const Str, Ch: string
var Mystring: TStrings): boolean;
var
sit, n : integer;
S : string;
begin
Result := True;
S := Str;
n := Length(Ch);
while True do
begin
if Pos(Ch, S) = 0 then
begin
MyString.Add(S);
Break;
end;
sit := Pos(Ch, S);
MyString.Add(Copy(S, 1, sit - 1));
S := Trim(Copy(S, sit + n, Length(S)));
end;
if MyString.Count < 2 then Result := False;
end;
你可以这样做:
var
txtF : TextFile;
slTemp : TStrings;
begin
slTemp := TStringList.Creat;
if OpenDialog.Execute then
begin
if not FileExists(OpenDialog.FileName) then
begin
Application.MessageBox('文件不存在!',
'注意', MB_ICONINFORMATION + MB_OK);
Exit;
end;
AssignFile(txtF, OpenDialog.FileName);
Reset(txtF);
if ioresult <> 0 then
Readln(txtF, ReadText);
try
while not Eof(txtF) do
begin
Readln(txtF, ReadText);
if trim(ReadText) <> '' then
CheckSite(ReadText,',',slTemp);
//接下来就是把slTemp中的字符串赋给变量或数据库中,你可以自已做
end;
except
end
slTemp.Free;
txtF.Free;
...
end;