现有一堆*.txt的文件,里面存放的是数据。
基本格式如:
2001年股票信息
日期 最高 最低 收盘
20010206 14.800 12.900 14.700
20010207 14.450 13.850 14.060
20010208 14.310 13.900 14.140
.......
现在要把它们的:日期,最高,最低,收盘读出来,日期放在一个combobox,其它的放在edit框内。
‘2001年股票信息’放在memo中。(这个已经做到了,因为我只能读取第一行)
我用AssignFile(F,opendialog1.filename);
Readln(F, data); 来读,但是字串中间的空格(分别为3个,5个,4个)怎样来区分?还有怎么样才能把整个文件的每行数据都读出来?
基本格式如:
2001年股票信息
日期 最高 最低 收盘
20010206 14.800 12.900 14.700
20010207 14.450 13.850 14.060
20010208 14.310 13.900 14.140
.......
现在要把它们的:日期,最高,最低,收盘读出来,日期放在一个combobox,其它的放在edit框内。
‘2001年股票信息’放在memo中。(这个已经做到了,因为我只能读取第一行)
我用AssignFile(F,opendialog1.filename);
Readln(F, data); 来读,但是字串中间的空格(分别为3个,5个,4个)怎样来区分?还有怎么样才能把整个文件的每行数据都读出来?
然后判断取数,用POS、COPY
我觉得你的txt的格式是永远固定的,不会变,所以你可以找到当中的共性
20010206 14.800 12.900 14.700其中14.800中的1在行中的位置应该是"20010206"的长度+3(空格数)+ 1就ok了
这样就能得到位置了,其他你想要的位置也可以通过以上方法得到
然后用copy和pos函数就可以了
var
f:TextFile;
SDate:String[13];
SHige:String[11];
SLower:STring[11];
begin
assignfile(F,'');
reset(f);
while not eof(F) do
begin
readln(F,SDate,SHige,SLoer)
end;end;
文件会自动读取每多少字节到相应的变量里去,你对变量操作就可以了
FList: TStringList;
tmpStr,j,k: String;i:integer;
Begin
FList:= TStringList.Create;
FList.LoadFromFile(TextFileName);
for i:=0 to flist.count-1 do
begin
j:=copy(flist[I],1,3)...如格式固定,你可以试一下位置
end
FList: TStringList;
tmpStr,j,k: String;i:integer;
Begin
FList:= TStringList.Create;
FList.LoadFromFile(TextFileName);
for i:=0 to flist.count-1 do
begin
j:=copy(flist[I],1,3)...如格式固定,你可以试一下位置
end
FList: TStringList;
tmpStr,j,k: String;i:integer;
Begin
FList:= TStringList.Create;
FList.LoadFromFile(TextFileName);
for i:=0 to flist.count-1 do
begin
j:=copy(flist[I],1,3)...如格式固定,你可以试一下位置
end
FList: TStringList;
tmpStr,j,k: String;i:integer;
Begin
FList:= TStringList.Create;
FList.LoadFromFile(TextFileName);
for i:=0 to flist.count-1 do
begin
j:=copy(flist[I],1,3)...如格式固定,你可以试一下位置
end