读取一个文本文件~555

xcex 2002-03-13 12:23:30
里面是一些记录
格式是这样的
003,0,24,20020312,0000
888,0,23,20020312,0000

每行是一条记录,字段用逗号隔开
怎么把它读出来啊,比如说怎么去判断逗号和换行符号啊

能帖出代码吗?谢谢了
...全文
56 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ihihonline 2002-03-13
  • 打赏
  • 举报
回复
如果,你现在已经知道了里边的信息,就很好做了
逗号
换行符号啊用readln(....)就可以了;用reset打开:)
先获得每个字段的长度;就知道了字符串;去读就可以了


INeedCa 2002-03-13
  • 打赏
  • 举报
回复
oldp := 1;
p := Pos(',',Str);
Copy(Str, oldp, p - oldp);
oldp := p + 1;
yan_hon 2002-03-13
  • 打赏
  • 举报
回复
定义一个函数,一行一行地读(readln),对于每一行,一个一个字符地读,
最好事先知道有几个字段(逗号),然后用循环读取特定两个逗号之间的字符。
墨梅无痕 2002-03-13
  • 打赏
  • 举报
回复
//我给你定义一个文件格式:
TMyFileRecord = record
Field1: string[3];
Comma1: char;
Field2: Integer;
Comma2: char;
Field3: Integer;
Comma3: char;
Field4: string[8];
Comma4: char;
Field5: string[4];
end;
TMyFile = file of TMyFilerecord;

var
MyFileRecord: TMyFileRecord;
Myfile: TMyFile;
begin
AssignFile(MyFile, {FileName});
Reset(MyFile);
ReadLn(MyFile, MyFileRecord);
...
CloseFile(MyFile);
end;
40Star 2002-03-13
  • 打赏
  • 举报
回复
94
使用Tstringlist最简单!
robinson 2002-03-13
  • 打赏
  • 举报
回复
var f:TxtFile;
s:string;
List:TStringList;//保存你所需的数据
begin
List:=TStringList.create;
AssignFile(f,'c:\test.txt');
if fileexists(f) then
begin
reset(f);
while eof(f) do
begin
readln(f,s);
if pos(',',s)>0 then
begin
List.add(Copy(s,1,pos(',',s)));
delete(s,1,pos(',',s));
end
else
List.add(s);
end;
end;
List.free;
end;

cobi 2002-03-13
  • 打赏
  • 举报
回复
如果文本不是太大的话,用memo.lines.loadfromfile读入,然后用memo.lines[i]去一行一行的 处理。

至于如何读取字段记录,可以定义一个数组,
var
FieldValue : Array of String;

setlength(FieldValue,4);
for J := 0 to memo1.lines.count do
begin
tmpstr := memo1.lines[J];

for I := 0 to 3 do
begin
FieldValue[I] := copy(tmpstr,1,pos(',',tmpstr) - 1);
tmpstr := copy(tmpstr,pos(',',tmpstr),length(tmpstr) - pos(',',tmpstr));
end;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧