Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stringlisten vergleichen. (https://www.delphipraxis.net/38644-stringlisten-vergleichen.html)

smart 22. Jan 2005 09:14


Stringlisten vergleichen.
 
Ich habe auf einer TForm 3 TMemos. In Memo2 ist eine Stringliste mit 300 Zeilen. In Memo1 ist eine Stringliste(auch doppelte Strings) die mit der Stringliste in Memo2 verglichen werden soll. Bei einer Übereinstimmung soll der String in Memo3 hinzugefügt werden. Habe diesen Code geschrieben, er klappt aber nicht. Was mach ich falsch?

Code:
procedure TForm1.Button1Click(Sender: TObject);
Var
A, B:Integer;
begin
For A := 0 To Memo2.Lines.Count do
begin
    For B := 0 To Memo1.Lines.Count -1 do
        If Memo1.Lines[A] = Memo2.Lines[B] Then
        begin
            Memo3.Lines.Add(Memo2.Lines[B]);
        end;
    end;
end;

Jens Schumann 22. Jan 2005 09:17

Re: Was mache ich falsch!
 
Hallo,
versuch es mal so
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
A, B:Integer;
begin
For A := 0 To Memo2.Lines.Count-1 do
begin
    For B := 0 To Memo1.Lines.Count -1 do
        If Memo1.Lines[B] = Memo2.Lines[A] Then
        begin
            Memo3.Lines.Add(Memo2.Lines[A]);
        end;
    end;
end;

SirThornberry 22. Jan 2005 09:23

Re: Was mache ich falsch!
 
und eine aussagekräftigen Titel wählen!!
du könntest auch mit IndexOf arbeiten, da spaarst du dir eine Schleife.

smart 22. Jan 2005 09:52

Re: Was mache ich falsch!
 
Vielen Dank an Euch Beiden. Nach der Modikikation hat es geklappt. Und ich dachte ich hätte alle Möglichkeiten durch! Der Tittel war dumm gewählt.

SirThornberry, kannst Du bitte etwas konkreter werden. Bin noch Anfänger. Habe in der Delphi- Hilfe unter, IndexOf, nachgesehen. Ich kann aber an Hand der Beispiele nicht ein Ersparnis erkennen.

Luckie 22. Jan 2005 09:56

Re: Was mache ich falsch!
 
Jetzt hast du schon auf den Beitrag von unserer Lordschaft geantwortet, aber den Titel hast du immer noch nicht sinnvoll geändert. Tu dies bitte noch, in dem du einfach deinen ersten Beitrag editierts.

SirThornberry 22. Jan 2005 14:30

Re: Stringlisten vergleichen.
 
mit indexof würde das ganze so aussehen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
A:Integer;
begin
For A := 0 To Memo2.Lines.Count-1 do
begin
  if Memo1.Lines.IndexOf(Memo2.Lines[A]) > -1 then
    Memo3.Lines.Add(Memo2.Lines[A]);
end;
"IndexOf" prüft also ob es den String in irgend einer Zeile gibt.

xineohp 22. Jan 2005 14:47

Re: Stringlisten vergleichen.
 
moin,

du kannst dir natülich auch das entsprechende Kapitl aus der CodeLib anschauen hier
wobei dort natülich auch nur mit Wasser gekocht wird, sprich es ist im Prinzip dasselbe...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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