Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memo auslesen und Text vergleichen mit Edit (https://www.delphipraxis.net/146637-memo-auslesen-und-text-vergleichen-mit-edit.html)

patti 24. Jan 2010 11:40

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:
http://www.xyz.de/
und im Memo

Code:
abc.de
def.de
xyz.de
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:

Delphi-Quellcode:
for i := 0 to Memo1.Lines.Count -1 do
begin
  zeile := Memo1.Lines[i];
  //
  // Vergleich...
end;
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.

mfg

DaveRidge 24. Jan 2010 12:03

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.

Luckie 24. Jan 2010 12:08

Re: Memo auslesen und Text vergleichen mit Edit
 
Warum die if-Abfrage?
Delphi-Quellcode:
if h<zeichen then
Zieh doch einfach eins bei der for-Schleife ab:
Delphi-Quellcode:
For h:=0 to zeichen-1 do

DaveRidge 24. Jan 2010 12:15

Re: Memo auslesen und Text vergleichen mit Edit
 
Zitat:

Zitat von Luckie
Warum die if-Abfrage?
...
Zieh doch einfach eins bei der for-Schleife ab:
...

Stimmt, ich machs immer Komplizierter als es ist :-)

Danke

MfG dave

DaveRidge 24. Jan 2010 12:32

Re: Memo auslesen und Text vergleichen mit Edit
 
Zitat:

... kannst du die Eingaben vor dem Vergleich alle noch mit UpperCase() in Großbuchstaben umwandeln, damit die Groß-/Kleinschreibung vernachlässigt wird.

mfg

Danke patti
Habs mit UpperCase() gemacht. geht super :-)

Delphi-Quellcode:
...
begin
    if pos(UpperCase(Form6.Memo1.Lines[counter]),UpperCase(Form1.Edit8.Text))=0 then begin
    Form1.StatusBar1.Panels[1].Text:=('Webseite wurde geprüft!');
...
MfG Dave

patti 24. Jan 2010 13:49

Re: Memo auslesen und Text vergleichen mit Edit
 
Hier noch einpaar Verbesserungsvorschläge zu deinem Quelltext:

Delphi-Quellcode:
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;
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.

mfg

DeddyH 25. Jan 2010 10:37

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 Delphi-Referenz durchsuchenStrUtils.AnsiContainsText verwenden.

Dave729 25. Jan 2010 21:30

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?

mkinzler 25. Jan 2010 21:33

Re: Memo auslesen und Text vergleichen mit Edit
 
Zitat:

Ps.: Kennt einer eine Delphi Komponente wo ich über RTSP auf meine Ip Kamera connecten kann?
Diese Frage hat m.E. einen eigenen Thread verdient :zwinker:

Dave729 25. Jan 2010 22:19

Re: Memo auslesen und Text vergleichen mit Edit
 
Zitat:

Zitat von mkinzler
Zitat:

Ps.: Kennt einer eine Delphi Komponente wo ich über RTSP auf meine Ip Kamera connecten kann?
Diese Frage hat m.E. einen eigenen Thread verdient :zwinker:

Ich weiss :-) , srry

MfG Dave


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
Seite 2 von 2     12   

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