假设我有一个文本文件并且在里面(中间或其他)有以下几行:
我的名字:某人
我的年龄:17岁
我的学校:哈佛
他们没有特定的行号(随机)而且没有重复("我的名字"只显示一次,我的年龄等等......)
这不是我正在寻找的内容,但我认为它应该读取该特定行,但它不是(它正在读取整个文件):
AssignFile(myFile, 'C:\Users\boss\Desktop\dude.txt');
myWord := 'My name : Someone';
Reset(myFile);
while not Eof(myFile) do
begin
readln(myFile, myWord);
writeln(myWord);
end;
CloseFile(myFile);
正如我所说,这是阅读整个文本文件,我只是试图让某些东西能够操作它,但我无法做到。
我想在"我的名字"之后阅读整行。这意味着名称每次都不会相同。
答案 0 :(得分:3)
如果我遵循你想要做的事情,它实际上很简单。
假设你有
var
ALine,
StartOfLineToFind,
AValue : String;
P : Integer;
[...]
StartOfLineToFind := 'My name :';
然后在你的循环中做
readln(myFile, ALine);
if Pos(StartOfLineToFind, ALine) = 1 then begin // see if the line starts with the label you're looking for
AValue := Copy(ALine, Length(StartOfLineToFind), Length(ALine) - Length(StartOfLineToFind); // Copy the rest of the line after the label
AValue := Trim(AValue); // remove the leading and trailing spaces
writeln(AValue);
end;
答案 1 :(得分:3)
清洁我的水晶球...... 可能你需要这样的代码:
readln(myFile, myWord);
if Pos('My name:', myWord) = 1 then
Writeln(myWord);