我有一个具有指定结构的文本文件,即(对于每一行):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/