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