我需要把一个TXT文件中的一部分数据通过换算公式转换成另一组数据,这个txt文件中的数据格式如下:
1559283390071   F 0999995200000100004096000002000  BOARD               90120000   000010  
1559283391071   F 0999995200000100005227000000000  BOARD               90120603   000010  
1559284175071   FF1999900000000100000000000000000  BRACKET             77069105   000010  
1559304175071   FF1999900000000100000000000000000  SEAT                77069105   000010  
1559309207171   FF1999900000000100000000000000630  RESISTOR            72107210   000010  
需要找到的数据是每行中间1后面的8位数,然后通过一个公式(比如说x*0.5=y)把它转换成另一组数据,例如第一排中,x=00004096,那么y=40.96×0.5=20.48,最后用00002048去代替原来的00004096,如此循环到最后一排,最后生成一个新的txt文件,不知道我说清楚没有,请大侠帮忙呀!

解决方案 »

  1.   

    用Excel实现好了,为什么要写程序?
    一组公式就OK了
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
       function NewLine(const S: string): string;
       var
          xStr: string;
          yStr: string;
       begin
          xStr := Copy(S, 33, 8);
          xStr := Copy(xStr, 1, 6) + '.' + Copy(xStr, 7, 2);
          yStr := FormatFloat('000000.00', 0.5 * StrToFloat(xStr));
          yStr := Copy(yStr, 1, 6) + Copy(yStr, 8, 2);
          Result := Copy(S, 1, 32) + yStr + Copy(S, 42, Length(S) - 42);
       end;
    var
       SF: TextFile;
       DF: TextFile;
       Line: string;
    begin
       try
          AssignFile(SF, 'C:\file.txt');  //源文件
          AssignFile(DF, 'C:\dest.txt');  //转换后的目标文件
          Reset(SF);
          Rewrite(DF);
          while not Eof(SF) do
          begin
             ReadLn(SF, Line);
             WriteLn(DF, NewLine(Line));
          end;
       finally
          CloseFile(SF);
          CloseFile(DF);
       end;
    end;
      

  3.   

    可以利用TStringList
    然后利用上面HsWong的NewLine函数
      

  4.   

    谢谢HsWong() ,我怎么把分给你呢?