下面是我要读取的文件:
C GRID BLOCK:  I =   1 , J =   1 , K =   1 
C
     3.43  -11.2      1679.69      4303.17   -11347.28      1690.55 
     4.45   -10.6     1679.34      3712.78   -11110.60      1685.51 
     3.43   -11.2      1688.89      4303.17   -11347.28      1699.92 
     4.49   -10.6      1688.55      3712.78   -11110.60      1694.50 
C我想在读取时做个算术运算:
(X,Y)=(+4.8,+5.9)
也就是这样,把第一列加上4.8,把第二列 加上5.9 读取出来的文件是下面的这样~~
C GRID BLOCK:  I =   1 , J =   1 , K =   1 
     8.23   -5.3      1679.69      4303.17   -11347.28      1690.55 
     9.25   -4.7      1679.34       3712.78    -11110.60       1685.51 
     8.23   -5.3      1688.89       4303.17    -11347.28       1699.92 
     9.29   -4.7      1688.55       3712.78    -11110.60       1694.50 

解决方案 »

  1.   

    不明白,你是要把读出的内容放到一个GRID里面吗?
      

  2.   

    你可以先用tstringlist读取出来,然后分解处理后再存
      

  3.   

    f := TStringList.Create;
    tf := TStringList.Create;
    f.LoadFromFile(opendialog1.FileName);
    for i := 0 to f.Count-1 do
      tf.Add(f[i]);
     tf.SaveToFile('d:\dd.txt');
    这样读 ,怎样分解啊~~~~~~
      

  4.   

    如果你的这个文件格式是固定的话就比较好处理了:
    var
      i,j : integer;
      ss : string; 
      rval : float;
    stringlist.loadfromfile(filename);
    for i := 0 to stringlist.count - 1 do
    begin
      j := 0;
      while pos(' ',stringlist.string[i]) > 0 do
      begin
        if j = 0 then
        rval := strtofloat(trim(copy(stringlist.string[i],1,pos('',stringlist.strings[i]))) + 4.8
        else
        if j = 1 then
         ... + 5.9
        else
        ...;
        ss := ss + ' ' + floattostr(rval) ;
      end;
      tf.add(ss);
    end;
    最后tf.savetofile即可
      

  5.   

    你是从第一行处理的话就
    for i := 1  to stringlist.count - 1 do