发现要处理的文件有大量空格,我想把文件定位到最后一个不为空格的字符。如何作?
f:TextFile;
AssignFile(f, OpenDialog1.FileName);
Reset(f);
size1:=FileSize(f);size1得到的却是包含空格的文件末尾。

解决方案 »

  1.   

    因为你是TextFile,可以考虑用TStrings把文件内容取出来进行处理
      

  2.   

    TRIM函数可以去掉空格;要计算最后一个字符不位空格的位置,请先转化到string ;代码如下:
    var s:string;
        a,b:integer;
    begin
    //方式一
      s:= '   1234567890   ';   //头尾三个空格,共16字符
      a:= Length(S)-length(TrimLeft(s));
      b:= Length(s)-length(TrimRight(s));
      showmessage(inttostr(Length(s)-(a+b))); //非空格字符
    //方式二
      s:= '   1234567890   ';
      a := length(s);
      b := length(s) - length(trim(s));
      showmessage(inttostr(a-b));
    //直接读取最后一位字符
      s:= '   1234567890   ';
      showmessage(copy(trim(s),length(trim(s)),1));
      

  3.   

    文本文件不能Seek吗?查了半天也没找到Seek和FileSeek都不能用于TextFile的。
      

  4.   

    文件非常大,不可能用TStrings来处理。想用文件来处理,用偏移量作。
      

  5.   

    var
      iFileHandle: Integer;
      Buffer: Char;
    begin
      iFileHandle := FileOpen('g:\新建 文本文档.txt', fmOpenRead);
      FileSeek(iFileHandle, -1, 2);
      while True do
      begin
        FileRead(iFileHandle, Buffer, 1);
        if Buffer = #32 then Break
        else FileSeek(iFileHandle, -2, 1);
      end;
      //此时即在最后一个不为空格的字符处
      FileClose(iFileHandle);
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  6.   

    lxpbuaa(桂枝香在故国晚秋) :
    ----//此时即在最后一个不为空格的字符处那么此时如何取得文件指针的位置呢?
      

  7.   

    var
      iFileHandle, iPos: Integer;
      Buffer: Char;
    begin
      iFileHandle := FileOpen('g:\新建 文本文档.txt', fmOpenRead);
      iPos := FileSeek(iFileHandle, -1, 2);
     // ShowMessage(IntToStr(iPos));
      while True do
      begin
        FileRead(iFileHandle, Buffer, 1);
        if Buffer = #32 then
        begin
          Inc(iPos);
          Break;
        end else
          iPos := FileSeek(iFileHandle, -2, 1);
      end;
      //此时即在最后一个不为空格的字符处
      ShowMessage(IntToStr(iPos));
      FileClose(iFileHandle);
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————