【发布时间】:2014-05-05 01:01:10
【问题描述】:
我遇到了一个我不知道如何真正解决的问题。目前我正在从一个文本文件中读取几行,但是这些行中有一些我不想保留的值。线条就像
int String Float float 浮点数
我只想拥有字符串部分并将该名称分配给列表框。我尝试只为空格使用分隔符,但我意识到它并没有重置到下一行的开头,而是从最后一个地方继续。
文本文件的第一行是
1 勿洞 1.7 .24 2300
2 阿尔梅拉德勿洞 1.28 .26 2100
3 水泥布鲁克 .93 .29 1800
使用带空格的分隔符给我
1
军械
.93
虽然我希望它至少是
1
2
3
我现在的代码是一个按钮的 onClickEvent 过程
var
SomeTxtFile : TextFile;
buffer : string;
holder : TStringList;
idx:integer;
begin
idx:=-1;
holder:=TStringList.Create;
AssignFile(SomeTxtFile, 'Opaque.lib') ;
Reset(SomeTxtFile) ;
while not EOF(SomeTxtFile) do
begin
idx:=idx+1;
ReadLn(SomeTxtFile, buffer) ;
holder.Delimiter:=' ';
holder.DelimitedText:=buffer;
ShowMessage(buffer) ;
WallsListBox.Items.Add(holder[idx]);
end;
CloseFile(SomeTxtFile) ;
我在想也许我可以用很多标志来做我想做的事,这些标志试图将字符串的一部分转换为浮点/整数,但这似乎很愚蠢。有什么建议吗?
谢谢!
【问题讨论】:
-
您添加到列表框持有人[idx]。并且 idx 在您阅读的每一行都会增加。您应该将 holder[0] 添加到列表框。
-
如果你想帮自己一个忙,扔掉所有的 TextFile 例程,改用流。每当有人使用 AssignFile() 时,一只小猫就会死去。
-
@JensG 我不知道如何使用流,所以很抱歉,但我想我必须成为一个小猫杀手:/
-
您使用的是哪个版本的 Delphi?
标签: delphi