我使用以下函數來搜索我正在從文件中讀取的TStringList。 我知道,當我搜索一個值時,我需要的返回值總是在具有我搜索的項目之後的行上。 它一直使用POS來搜索,但現在該文件已被擴展,我必須尋找2項'Adresse'和'Adresse 2' 這給了我一個問題,因爲pos在這兩種情況下找到'Adresse',我的數據是錯誤的。使用POS搜索i TStringList - 需要更高級的方法
是否有另一種搜索字符串的子字符串,我不知道或我必須做我自己的方法。
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或其他類似的... –
我已經把問題的文本文件的樣本,但它看起來像.... – OZ8HP
只需搜索**「Adresse:」**而不是**「Adresse 「** ?? – Roddy