我从一个文件(20040802.HIS 它可以用记事本打开)中读数据,他的格式如下:
20040802 00:55                4272# 20.01 25.92 R1=1.7854 DItR=0.0071 
这是其中一行数据,每行的数据存放格式都是这样的,20040802是日期,00:55是时间,4272#是车牌号,20.01是灰分,25.92是热值,我只需要以上这些数据,而且每次都是读文件的最后一行数据,读出分析好的数据后存入数据库。我没有学过Delphi,但现在急着用,不好意思只好到这来请教高手了。先谢谢各位了!

解决方案 »

  1.   

    学习,我有个笨办法,先把TXT的内容读到MEMO里,然后在去MEMO每行的数据,用COPY.在将读出的数据写入库.
      

  2.   

    memo1.Lines.LoadFromFile('c:\time.txt');
    edit1.text:=copy(memo1.Lines.Strings[0],1,5);
    edit2.text:=copy(memo1.lines.string2[1],1,5);
    .
    .
    .
    想取什么自己取.copy(文本,起始位,长度).
      

  3.   

    如果是最后一行的话
    就先
    var
    a:integer
    a:=memo1.lines.count;
    edit1.text:=copy(memo1.lines.strings[a],1,5)
      

  4.   

    Sant11(S蚂蚁11)麻烦一下,那怎么确定读的是最后一行呀?
      

  5.   

    呵呵..我也是瞎想,对了
    a:=memo1.Lines.Count-1;
    这才可以.
      

  6.   

    var
    a:integer;
    begin
    memo1.Lines.LoadFromFile('c:\time.txt');
    a:=memo1.Lines.Count-1;
    memo2.Lines.Add(copy(memo1.Lines.Strings[a],1,8));
    我试了,可以读出年月(你的那个)依次类推...其他也可以读出来.
      

  7.   

    copy函数有三个参数,第一个为字符中,第二个为字符串将被拷贝的子串的第一个位置,第三个为字符串将被拷的长度,它返回一个子串,var strs:TStrings;
        MyData,MyTime,MyCart,MyGray,MyHot:String;
    begin
       strs:=TStringList.Create;
       try
       Strs.LoadFromFile('20040802.HIS');
       MyData:=Copy(Strs[Strs.Count-1],1,8);
       MyData:=Copy(MyData,1,4)+'-'+Copy(MyData,5,2)+'-'+Copy(MyData,7,2);
       MyTime:=Copy(Strs[Strs.Count-1],10,5);
       MyCart:=Copy(Strs[Strs.Count-1],31,5);
       MyGray:=Copy(Strs[Strs.Count-1],37,5);
       MyHot:=Copy(Strs[Strs.Count-1],43,5);
      finally
       Strs.free;
      end;
    end;