【发布时间】:2016-03-14 13:12:54
【问题描述】:
我使用以下函数来搜索我从文件中读取的 TStringList。 我知道当我搜索一个值时,我需要的返回值总是在我搜索的项目之后的那一行。 它一直使用 POS 进行搜索,但现在文件已扩展,我必须查找 2 项“Adresse”和“Adresse 2” 这给了我一个问题,因为 pos 在这两种情况下都找到了“地址”,然后我的数据是错误的。
是否有另一种方法可以在字符串中搜索我不知道的子字符串,或者我必须自己制作。
function FindValue(const aFilename, aSearch: string): string;
var
InfoList: TStringList;
Counter: integer;
begin
InfoList := TStringList.Create;
try
InfoList.LoadFromFile(aFilename);
if InfoList.Count > 0 then
for Counter := 0 to InfoList.Count - 1 do
begin
if Pos(aSearch, Infolist.Strings[Counter]) > 0 then
Result := Infolist.Strings[Counter + 1]
end
else
Result := '';
finally
InfoList.Free;
end;
end;
信息:TStringList 的输入来自从 HTML 文件中提取的文本文件。 文件样本可以是:
OZ8HP
Hugo Pedersen
Radioamatør
Nykøbing M
Sendeposition:
Adresse:
Prinsensvej 18
Postnummer:
7900
Bynavn:
Nykøbing M
Antenne højde (m):
Kote (m):?Kote (m):Brugerens/tilladelsesindehaverens øvrige adresseoplysninger så som Stednavn og/eller Postboks. Hjælpetegnet * kan anvendes, som beskrevet i hjælp.
Koordinater:
Geografisk anvendelse:
Frekvensmaske:
Tekniske specifikationer:
Sendeeffekt basisstation:
Sendeeffekt mobile anlæg:
Båndbredde (MHz):
Antal anlæg:
MMSI:
Kaldesignaltype:
Personlig
Frekvenskategori:
Udstedelses-metode:
Intention om overdragelse:
Nej
Udløbsdato:
Brugerdata:
Brugernummer:
956078
Adresse:
Prinsensvej 18
Adresse 2:
Sejerslev
Postnr.:
7900
Bynavn:
Nykøbing M
Kaldesignal-kategori:
Bestået A
【问题讨论】:
-
如果您能向我们展示输入数据格式的样子,那就太好了。告诉我们它不是 HTML 或 JSON 之类的......
-
我已经把文本文件的样本放在了有问题的地方,但它看起来像....
-
只搜索 "Adresse:" 而不是 "Adresse" ??
-
还有,当你找到字符串时,你为什么一直在寻找?找到字符串时退出循环 - 添加“Break;”设置结果后
-
the input to the TStringList comes from a textfile extracted from a HTML file....人们想知道未提取的 HTML 是什么样的。您是否通过删除可能与 HTML 解析器一起使用的标签来客观地获取您所追求的信息而使您的工作变得更加困难?
标签: delphi search tstringlist