文本文件里的数据是 hello 00procedure TForm1.Button1Click(Sender: TObject);
var txt :textfile;
s:string;
i:integer;
begin
if opendialog1.Execute then
begin
assignfile(txt,opendialog1.filename);
reset(txt);
readln(txt,s,i);
edit1.Text :=s;
edit2.Text :=inttostr(i);
closefile(txt)
end;
end;
end.为什么执行代码之后,只有edit1显示hello 00,而edit2显示是空呢?
var txt :textfile;
s:string;
i:integer;
begin
if opendialog1.Execute then
begin
assignfile(txt,opendialog1.filename);
reset(txt);
readln(txt,s,i);
edit1.Text :=s;
edit2.Text :=inttostr(i);
closefile(txt)
end;
end;
end.为什么执行代码之后,只有edit1显示hello 00,而edit2显示是空呢?
readln是逐行读取的,你的hello 00是在一行上,所以作为1字符串存入s中
文本第二行为空,edit2为空
Reads a line of text from a file.
a line是什么意思呢?
写成
Hello
00
再试试吧此外你用的这种打开文件的方式太古老了,不知道你想作什么,如果就是一些配置信息的话,还是用IniFile吧。
readln(txt,s);
edit2.text:=copy(s,length(s)-2,length);
当然也可以象 ”asj(最烦活稀泥)“ 那样用INIFILE 用readstring();
我也是新手,方法有限大家一起学习吧!
我的 信息存储肯定要是 这样的
hello 00
yes 01
no 02
yes 09009
hello 098
不能分行放。而且我的数据是存在文本文件里的,(由数据采集软件得到),最好不要改格式。
我想要把hello,yes,no放到一个数组中,00,01,02放到一个数组中,再去做相应的处理,能不能有一个函数来直接完成这个操作呢?
aStrs: TStrings;
i: Integer;
begin
aStrs := TStringList.Create;
try
aStr.LoadFromFile(FileName);
for i := 0 to aStr.Count - 1 do
begin
p := Pos(' ', aStr[i]);
array1[i] := Copy(aStr[i], 1, p);
array2[i] := Trim(Copy(aStr[i], p, Length(aStr[i]) - p + 1));
end;
finally
aStrs.Free;
end;
end;