![]() |
Memo auslesen und Text vergleichen mit Edit
Meine Frage:
Inhalt der Memo1.lines: Zeile1 : wec.de Zeile2 : gmy.de Zeile3 : kla.de Text von Edit1: Text : ![]() Jede Zeile von Memo1 muss ausgelesen werden und mit Edit1.text verglichen werden. Wenn der text irgendwo gleich ist, muss z.b. Edit1.clear kommen. Wie mache ich das am besten? MfG Dave |
Re: Memo auslesen und Text vergleichen mit Edit
Hi!
Du könntest mit einer For-Schleife durch Memo.Lines gehen und damit zeilenweise vergleichen. Grüße, Frederic |
Re: Memo auslesen und Text vergleichen mit Edit
Ein Stichwort, welches dir beim Vergleichen helfen könnte, ist
![]() mfg |
Re: Memo auslesen und Text vergleichen mit Edit
Zitat:
![]() MfG Dave |
Re: Memo auslesen und Text vergleichen mit Edit
Hi!
Also er soll das Edit leeren, wenn Teile seines Inhalts im Memo vorkommen? Dann wäre das angesprochene ![]() Grüße, Frederic |
Re: Memo auslesen und Text vergleichen mit Edit
Ich verstehe das Kriterium, wann der Vergleich "true" liefern soll, ehrlich gesagt noch nicht ganz. Soll es so sein, wie in deinem ersten Post, wo überprüft werden soll, ob Edit1.Text eine gesamte Zeile des Memos enthält? Oder reicht es, wenn im Edit und in einer Zeile des Memos eine (beliebig lange) Sequenz an Buchstaben gleich ist? :gruebel:
Dein Beispiel aus Post #4 kann ich nicht ganz nachvollziehen, da der von dir gepostete Beispiel-Inhalt des Edits ja auch in keiner Zeile des Memos vorkommt :gruebel: ... |
Re: Memo auslesen und Text vergleichen mit Edit
Hi!
Ich hatte das so verstanden, dass das im Edit nicht mehr erkannt wird, wenn zusätzlich das "http://www." davor steht. Grüße, Frederic |
Re: Memo auslesen und Text vergleichen mit Edit
Zitat:
MfG Dave Ps.: Über POS hab ich das noch nicht gemacht, aber ich denke das es nicht so funktioniert wie ich mir das denke |
Re: Memo auslesen und Text vergleichen mit Edit
Hi!
Doch, genau mit Pos sollte das funktionieren - hast du dir mal die Funktion angeschaut, was sie macht? Grüße, Frederic |
Re: Memo auslesen und Text vergleichen mit Edit
Sind die Einträge der Memos identisch mit dem entsprechendem Inhalt des Edit?
|
Re: Memo auslesen und Text vergleichen mit Edit
Ah, ok. Dann hatte ich das anfangs doch richtig verstanden, und mich nur durch die (etwas seltsame) Formulierung in Post #4 durcheinanderbringen lassen. Wenn also im Edit steht:
Code:
und im Memo
http://www.xyz.de/
Code:
dann soll der Vergleich "true" liefern, und zwar bei Zeile 3 (also mit dem Index 2, da die Nummerierung ja bei 0 beginnt). Gehe einfach in einer Schleife jede Zeile deines Memos durch, z.B. so:
abc.de
def.de xyz.de
Delphi-Quellcode:
Den Vergleich kannst du mit Pos machen. Schau dir die Funktion einfach mal in der Hilfe oder in entsprechenden Threads der DP an. Evtl. kannst du die Eingaben vor dem Vergleich alle noch mit UpperCase() in Großbuchstaben umwandeln, damit die Groß-/Kleinschreibung vernachlässigt wird.
for i := 0 to Memo1.Lines.Count -1 do
begin zeile := Memo1.Lines[i]; // // Vergleich... end; mfg |
Re: Memo auslesen und Text vergleichen mit Edit
Dank Eurer Hilfe hab ichs geschafft. Erstmal ein Herzliches Danke schön an alle die mit geholfen haben.
Ich habs jetzt so gemacht:
Delphi-Quellcode:
procedure TForm1.MozillaBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); var zeichen, counter, h: Longint; begin zeichen:=Form6.Memo1.Lines.Count; counter:=0; For h:=0 to zeichen do if h<zeichen then begin if pos(Form6.Memo1.Lines[counter],Form1.Edit8.Text)=0 then begin Form1.StatusBar1.Panels[1].Text:=('Webseite wurde geprüft!'); end else begin showmessage('Diese Webseite wurde gesperrt!!!'); Form1.Edit8.Text:=(' '); Form1.MozillaBrowser1.Navigate('http://google.de'); end; counter:=counter+1; end; end; Falls Euch an den Code noch was auffällt, bzw. besser machen könnte, schreibts einfach. MfG Dave Vielen Danke an alle. |
Re: Memo auslesen und Text vergleichen mit Edit
Warum die if-Abfrage?
Delphi-Quellcode:
Zieh doch einfach eins bei der for-Schleife ab:
if h<zeichen then
Delphi-Quellcode:
For h:=0 to zeichen-1 do
|
Re: Memo auslesen und Text vergleichen mit Edit
Zitat:
Danke MfG dave |
Re: Memo auslesen und Text vergleichen mit Edit
Zitat:
Danke patti Habs mit UpperCase() gemacht. geht super :-)
Delphi-Quellcode:
MfG Dave
...
begin if pos(UpperCase(Form6.Memo1.Lines[counter]),UpperCase(Form1.Edit8.Text))=0 then begin Form1.StatusBar1.Panels[1].Text:=('Webseite wurde geprüft!'); ... |
Re: Memo auslesen und Text vergleichen mit Edit
Hier noch einpaar Verbesserungsvorschläge zu deinem Quelltext:
Delphi-Quellcode:
So ist der Quelltext dank Einrückungen besser lesbar. Außerdem kannst du dir die Variable "counter" auch schenken, denn die entspricht ja der Variable "h". Bei der if-Abfrage hab ich den begin-end-Block rausgenommen, brauchst du ja nicht unbedingt, dafür hab ich einen bei der Schleife eingebaut. Bis jetzt ist das nicht unbedingt nötig, aber solltest du später mal eine Anweisung nach der if-Abfrage aber innerhalb der Schleife einbauen wollen und dann das begin-end vergessen, dann kann es dir passieren, dass du ewig nach dem Fehler suchst und der nur wegen dem fehlenden begin-end auftaucht.
procedure TForm1.MozillaBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); var zeichen, h: Longint; // "counter" brauchst du nicht begin //-- zeichen := Form6.Memo1.Lines.Count; // for h := 0 to zeichen -1 do begin // begin - end nicht unbedingt noetig, aber sinnvoll if pos(Uppercase(Form6.Memo1.Lines[h]),Uppercase(Form1.Edit8.Text)) = 0 then Form1.StatusBar1.Panels[1].Text := ('Webseite wurde geprüft!') else begin showmessage('Diese Webseite wurde gesperrt!!!'); Form1.Edit8.Text := (' '); Form1.MozillaBrowser1.Navigate('http://google.de'); end; end; end; mfg |
Re: Memo auslesen und Text vergleichen mit Edit
Da mittlerweile auch Umlaute in URLs erlaubt sind, würde ich statt Pos() und Uppercase() vielleicht eher
![]() |
Re: Memo auslesen und Text vergleichen mit Edit
Hi Patti. Counter habsch rausgenommen. Da war noch was anderes in Planung, aber da Uppcase die zweite Sache auch gleich noch gelöst hat, berauch ichs net mehr :-)
Hi DeddyH. Jo, eigentlich haste recht, aber ich hab in meinem Prog das Mozilla 1.7 verwendet, da gehen keine Umlaute. MfG dave Ps.: Kennt einer eine Delphi Komponente wo ich über RTSP auf meine Ip Kamera connecten kann? |
Re: Memo auslesen und Text vergleichen mit Edit
Zitat:
|
Re: Memo auslesen und Text vergleichen mit Edit
Zitat:
MfG Dave |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 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