请教一下各位:在delphi6中,如何从.txt文件中读如下格式中008的数据到文本框?(说明:008的数据指的是‘008=’到‘009= pass’之间的所有数据。)
[BEGIN]
001 =PASS
002 =101866399
003 =1
004 =32768.0530
005 =3.0241
006 =10:1.0869
007 =10:1.5920
008 =
300HZ,5mV:0.16,74.85mv;
400HZ,5mV:0.15,82.85mv;
500HZ,5mV:0.17,109.30mv;
600HZ,5mV:0.18,120.13mv;
700HZ,5mV:0.18,128.61mv;
800HZ,5mV:0.13,118.25mv;
900HZ,5mV:0.17,138.98mv;
1000HZ,5mV:0.16,141.33mv;
1100HZ,5mV:0.16,142.75mv;
1200HZ,5mV:0.17,143.22mv;
1300HZ,5mV:0.14,143.22mv;
1400HZ,5mV:0.14,142.75mv;
1500HZ,5mV:0.13,141.81mv;
1600HZ,5mV:0.13,140.39mv;
1700HZ,5mV:0.12,138.98mv;
1800HZ,5mV:0.12,137.57mv;
1900HZ,5mV:0.08,135.68mv;
2000HZ,5mV:0.09,133.80mv;
2100HZ,5mV:0.14,130.97mv;
2200HZ,5mV:0.11,128.14mv;
2300HZ,5mV:0.12,124.85mv;
2400HZ,5mV:0.09,121.55mv;
2500HZ,5mV:0.10,117.31mv;
2600HZ,5mV:0.12,113.07mv;
2700HZ,5mV:0.09,108.83mv;
2800HZ,5mV:0.10,105.06mv;
2900HZ,5mV:0.09,101.76mv;
3000HZ,5mV:0.12,98.93mv;
3100HZ,5mV:0.10,97.05mv;
3200HZ,5mV:0.08,95.64mv;
3300HZ,5mV:0.06,90.93mv;
3400HZ,5mV:0.07,79.15mv;
3500HZ,5mV:0.10,57.43mv;
009 =PASS
其中的008项是别人产生的数据,格式不能更改,我用readstring读不到008的数据,或者有没有人知道怎么样把.txt文件中没有‘=’标识的行一行一行读出来?可以以每行开头的频率来做关键字,这个是不会变的,但是格式只能是这样,别人的程序产生的结果文件,我没法改变,我每天要读一万个这样格式的文件数据到数据库。     帮帮忙吧,非常感谢!

解决方案 »

  1.   

    用readln循环读,去掉前008之前,009之后的,不就行了吗?
      

  2.   

    TIniFile是处理不了的,用ReadLine一行一行的读不就行了?加个循环判断,取008到009之间的数据还不easy?
      

  3.   

    我不会移动文件指针,麻烦告诉我用什么函数把文件指针移到008的下一行,readln似乎可以用,但是是从头开始,没有表示选择行号的参数。
      

  4.   

    assignfile(sfile,opendialog1.FileName);
      reset(sfile);
        try
           while not eof(sfile) do
             begin
               readln(sfile,ss);
             for j:=1 to length(ss) do
                  begin
                    if text[j]='='; then
                    flag:=false;//标识是否要处理。
                  end;
            if flag=ture then{处理到数据库中};
      end;
    finally
          closefile(sfile);
      

  5.   

    楼主的问题如果用.ini文件,则很好办。
      

  6.   

    到底是INI还是TXT???如果是INI就更好办了,如果是TXT就readln
      

  7.   

    var
      MyIniFile: TIniFile;
      Str:String;
    begin
      try
        MyIniFile := TIniFile.Create('myapp.ini');
        Str:=MyIniFile.ReadString('BEGIN','008',nil);
      finally
        MyIniFile.Free;
      end;
    end;