我有一个具有指定结构的文本文件,即(对于每行):char,space,char,space,double value,endline。例如

q w 1.23
e r 4.56
t y 7.89

在Free Pascal中“提取”这些值的正确方法是什么?

最佳答案

FreePascal在SysUtils中具有SScanF功能(您可能知道是否使用其他语言。)

我已经修改了RRUZ的示例以显示如何使用它。

uses SysUtils;

type
  TData=object
    Val1 ,
    Val2 : String;
    Val3 : Double;
  end;

procedure ProcessFile(aFileName:String);
var
  F     : Text;
  LData : TData;
  Line  : String;
begin
  DecimalSeparator:='.';
  AssignFile(F,aFileName);
  Reset(F);
  while not eof(F) do
  begin
    ReadLn(F,Line);
    SScanf(Line,'%s %s %f',[@LData.Val1,@LData.Val2,@LData.Val3]);

    //do something with the data
    WriteLn(LData.Val1);
    WriteLn(LData.Val2);
    WriteLn(LData.Val3);
  end;
end;

begin
  ProcessFile('C:\Bar\Foo\Data.txt');
  Writeln('Press Enter to exit');
  Readln;
end.

关于file - 在FreePascal中读取文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9831731/

10-10 11:49