Ich habe eine txt datei und will die wörter durchsuchen wenn z.b. eine 1 in dem wort vor kommt soll er das gantze wort in eine listbox kopieren und weiter suchen.
Announcement
Collapse
No announcement yet.
eine txt datei nach einem wort mit einer zahl durchsuchen
Collapse
X
-
<p>Hallo Benny,<br>
<br>
folgend ein Beispiel für Dein Problem. Es wird davon ausgegengen, dass dem gesuchten Wort ein Leerzeichnen vor- und nachgeht:<br>
<pre>
function SucheWortMitZahl(aText:String; aPos:Integer):String;
var start, ende:Integer;
begin
start:=pos;
ende:=pos;
while (aText[start]<>' ') do Dec(start);
while (aText[ende]<>' ') do Inc(ende);
Result:=System.Copy(aText, start, ende-start+1);
end; // SucheWortMitZahl
</pre>
<br>
Aufrufen tust Du Funktion folgendermassen (angelehnt am Beispiel von Jens):<br>
<pre>
var x:Integer;
begin
...
for iCnt:=0 to SL.Count-1 do
begin
x:=Pos('1',SL.Strings[iCnt]);
if (x>0) then Listbox1.Items.Add(SucheWortMitZahl
(SL.Strings[iCnt]), x);
end; // for
...
</pre>
<br>
Gruß Thomas</p>
Comment
-
<p>Hallo Benny,<br>
<br>
folgend ein Lösungsvorschlag: Es wird von der Annahme ausgegangen, dass das gesuchte Wort zwischen Leerzeichen steht.<br>
<br>
<pre>
function WortMitZahl(aWort:String; aPos:Integer):String;
var start, ende:Integer;
begin
start:=aPos;
ende:=aPos;
while (aWort[start]<>' ') do Dec(start);
while (aWort[ende]<>' ') do Inc(ende);
Result:=System.Copy(aWort, start, ende-start+1);
end; // WortMitZahl
</pre>
<br>
Die Funktion wird folgendemassen (in Anlehnung an das Beispiel von Jens) aufgerufen:
<br>
<pre>
...
For iCnt:=0 to SL.Count-1 do
begin
x:=Pos('1', SL.Strings[iCnt]);
if (x>0) then
Listbox1.Items.Add(WortMitZahl(SL.Strings[iCnt]), x);
end; // for
...
</pre>
<br>
Gruß Thomas</p>
Comment
-
<p>Hallo Benny,<br>
<br>
folgend ein Lösungsvorschlag: Es wird von der Annahme ausgegangen, dass das gesuchte Wort zwischen Leerzeichen steht.<br>
<br>
<pre>
function WortMitZahl(aWort:String; aPos:Integer):String;
var start, ende:Integer;
begin
start:=aPos;
ende:=aPos;
while (aWort[start]<>' ') do Dec(start);
while (aWort[ende]<>' ') do Inc(ende);
Result:=System.Copy(aWort, start, ende-start+1);
end; // WortMitZahl
</pre>
<br>
Die Funktion wird folgendermassen (in Anlehnung an das Beispiel von Jens) aufgerufen:
<br>
<pre>
...
for iCnt:=0 to SL.Count-1 do
begin
x:=Pos('1', SL.Strings[iCnt]);
if (x>0) then
Listbox1.Items.Add(WortMitZahl(SL.Strings[iCnt], x));
end; // for
...
</pre>
<br>
Gruß Thomas</p>
Comment
Comment