![]() |
Memo Komponente Wörter rausfiltern
Hi!
Ich bin neu hier und habe ein Problem ich hoffe ihr könnt helfen. Ich hab über den Webbrowser den Quelltext in eine Memo datei gespeichert. Jetzt zb:
Delphi-Quellcode:
Jetzt möchte ich durch einen Button filtern .Die Nummer hinter view.php?ad= also in diesem Falle 21702 in ein 2tes Memofeld speichern.
<td width="70%" class="class2" style="FONT-FAMILY: Verdana; FONT-SIZE: 11px; BACKGROUND-COLOR: #ffffff; border:solid 1px #999999; border-top:none;"><span style="margin-left: 3px;">
<a href=view.php?ad=21702 target=_blank>New! Wie erreiche ich ,dass ich die Nummer dahinter speichern kann? Meine Überlegung war wie immer mit einer Zählschleife das zu machen bitte helft mir , Danke. |
Re: Memo Komponente Wörter rausfiltern
.....
|
Re: Memo Komponente Wörter rausfiltern
Pos, Copy
|
Re: Memo Komponente Wörter rausfiltern
Ich hab den Quelltext aus der Twebbrowser Komponente von Delphi in ein Delphi Memo gespeichert und jetzt möchte ich die Memodatei filtern.
Ich benutze Delphi 7. |
Re: Memo Komponente Wörter rausfiltern
Hallo, willkommen in der DP :dp:
Wenn der String immer nur einmal vorkommt, sollte das im Prinzip recht einfach sein: Zunächst die Position des eindeutigen Strings innerhalb des Memos ermitteln
Delphi-Quellcode:
Wird dieser String gefunden, dahinter solange Zeichen einlesen, bis ein Leerzeichen kommt.
iPos := Pos(Memo.Text,'view.php?ad=');
Delphi-Quellcode:
Getippt und nicht getestet.
SuchString := '';
SuchPos := iPos + Length('view.php?ad='); while (SuchPos < Length(Memo.Text) and (Memo.Text[SuchPos] <> #32) do begin SuchString := SuchString + Memo.Text[SuchPos]; inc(SuchPos); end; |
Re: Memo Komponente Wörter rausfiltern
Danke für die schnelle Antwort,
view.php?ad= kommt öfters vor. Ich hab grade die Methode getestet Ich weiss nicht ob das mit der Deklaration stimmt :
Delphi-Quellcode:
Ich bekomme den Fehler
var ipos,suchpos:integer;suchstring:string;
Delphi-Quellcode:
[Fehler] m_test.pas(74): Operator ist auf diesen Operandentyp nicht anwendbar
[Fehler] m_test.pas(74): Operator ist auf diesen Operandentyp nicht anwendbar
|
Re: Memo Komponente Wörter rausfiltern
zeig uns mal bitte zeile 74
|
Re: Memo Komponente Wörter rausfiltern
Delphi-Quellcode:
while (SuchPos < Length(Memo1.Text) and (Memo1.Text[SuchPos] <> #32) do
|
Re: Memo Komponente Wörter rausfiltern
Sorry, da fehlt eine Klammer.
Delphi-Quellcode:
while (SuchPos < Length(Memo1.Text)) and (Memo1.Text[SuchPos] <> #32) do
|
Re: Memo Komponente Wörter rausfiltern
Vielen Dank,
es läuft zwar aber wenn ich
Delphi-Quellcode:
benutze
memo2.Lines.add(suchstring);
um dieses in memo2 zu speicher kommt sowas bei rau
Delphi-Quellcode:
t
tM tMa tMar tMarg tMargi tMargin tMargin= tMargin=0 |
Re: Memo Komponente Wörter rausfiltern
Zeig doch mal den bisherigen Code.
|
Re: Memo Komponente Wörter rausfiltern
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var ipos,suchpos:integer;suchstring:string; begin iPos := Pos(Memo1.Text,'view.php?ad='); SuchString := ''; SuchPos := iPos + Length('view.php?ad='); while (SuchPos < Length(Memo1.Text)) and (Memo1.Text[SuchPos] <> #32) do begin SuchString := SuchString + Memo1.Text[SuchPos]; inc(SuchPos); memo2.Lines.add(suchstring); end; end; |
Re: Memo Komponente Wörter rausfiltern
Wenn Du die Zeile innerhalb der Schleife dem Memo hinzufügst, ist das ja auch kein Wunder ;) Außerdem scheint es sich ja nicht um den gewünschten Inhalt zu handeln. Da könntest Du mal einen Blick in die Hilfe zu PosEx werfen.
|
Re: Memo Komponente Wörter rausfiltern
Sorry aber Ich kenne mich noch nicht so gut aus damit , ich wollte nur die nummern iregendwie rausfiltern, ist das so schwer?
Was muss ich machen damit ich die in memo2 reinbekomme? |
Re: Memo Komponente Wörter rausfiltern
Also nochmal anders (ich habe hier gerade kein Delphi und kann daher nicht testen):
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
const gesucht = 'view.php?ad='; var ipos,suchpos:integer; suchstring:string; begin iPos := Pos(Memo1.Text,gesucht); SuchString := ''; SuchPos := iPos + Length(gesucht); while (SuchPos < Length(Memo1.Text)) and (Memo1.Text[SuchPos] <> #32) do begin SuchString := SuchString + Memo1.Text[SuchPos]; inc(SuchPos); end; memo2.Lines.add(suchstring); end; |
Re: Memo Komponente Wörter rausfiltern
Ich habs grade getestet
Ich bekomm tMargin=0 in Memo2 aber nicht die Nummer :( |
Re: Memo Komponente Wörter rausfiltern
Dann muss der gesuchte String bereits vorher auftauchen.
|
Re: Memo Komponente Wörter rausfiltern
Wie schon gesagt view.php?ad= kommt ja öfters vor , Ich möchte das der den Sourecode durchforstet und die nummer hinter dem = in das Memofeld steckt.
Hab sowas mal vor Jahren gemacht mit
Delphi-Quellcode:
oder sowas .
I:=0 to memo1.lines.count-1 do begin j:=0 to length(memo1.lines[i]) do begin
memo1.lines[i][j] |
Re: Memo Komponente Wörter rausfiltern
Sind das immer Zahlen, die Du suchst?
[edit] Falls da so ist, versuch es mal so (hab jetzt auch wieder Delphi zur Verfügung):
Delphi-Quellcode:
[/edit]
uses StrUtils;
procedure TForm1.Button1Click(Sender: TObject); const davor = 'view.php?ad='; var iPos: integer; SuchStr: string; begin iPos := PosEx(AnsiLowerCase(davor),AnsiLowerCase(Memo1.Text)); while iPos > 0 do begin SuchStr := ''; inc(iPos,Length(davor)); while Memo1.Text[iPos] in ['0'..'9'] do begin SuchStr := SuchStr + Memo1.Text[iPos]; inc(iPos); end; Memo2.Lines.Add(SuchStr); iPos := PosEx(AnsiLowerCase(davor),AnsiLowerCase(Memo1.Text),iPos); end; end; |
Re: Memo Komponente Wörter rausfiltern
Ja nur die Zahlen dahinter.
|
Re: Memo Komponente Wörter rausfiltern
Hab meinen vorherigen Beitrag editiert ;)
|
Re: Memo Komponente Wörter rausfiltern
JUHU, FUNKTIONIERT !!
DANKE DU BIST EIN GOTT :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz