Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String zerlegen (https://www.delphipraxis.net/102860-string-zerlegen.html)

crasher1985 6. Nov 2007 07:10


String zerlegen
 
Hallo ich ab mal wieder eine Frage ich habe folgenden String

texttextext;AA;BB;CC;DDDD;EEE

aus diesem String möchte ich nun die Werte

AA
BB
CC
DDDD
EEE

jeweils als einen Eintrag in einer Stringlist haben.
Habe mir schon etwas gedanken gemacht. Könnte das ganze durch copy immer mehr verkürzen und nach den ; suchen.
Aber vllt. gibt es ja noch eine einfachere Variante hat jemand eine Idee?

Matze 6. Nov 2007 07:18

Re: String zerlegen
 
Hallo,

so kannst du die durch Semikolons getrennten Wörter in eine eigene Zeile bekommen:

Delphi-Quellcode:
var
  sl: TStringList;
begin
  // ...
  sl.Delimiter := ';';
  sl.DelimitedText := 'texttextext;AA;BB;CC;DDDD;EEE';

  ShowMessage(sl.Text);
  //...
end;
Nach welchen Kriterien soll denn nun aussortiert werden ("texttextext" soll ja weg)?

crasher1985 6. Nov 2007 07:20

Re: String zerlegen
 
genau diese test ist ein vom programm erzeugter text den ich ignorieren will...

alles andere sind Strings die von Anwenderseite eingefügt werden. das heisst den ersten wert den ich bekomme kann ich ignorieren da dieser immer gleich ist

Matze 6. Nov 2007 07:22

Re: String zerlegen
 
Dann würde ich es so machen:

Delphi-Quellcode:
//...
sl.Delimiter := ';';
sl.DelimitedText := 'texttextext;AA;BB;CC;DDDD;EEE';
sl.Delete(0);
//...

crasher1985 6. Nov 2007 07:27

Re: String zerlegen
 
jepp genauso hab ichs jetzt gemacht danke für die schnelle hilfe

crasher1985 6. Nov 2007 08:28

Re: String zerlegen
 
so jetzt ergibt sich für mich gleich das nächste Problem .
ICh habe 3 Stringlisten welche ich auf genannte Weise gefükllt habe nun möchte ich bei jedem Wert aus jeder Stringliste vergleichen ob dieser auch in den anderen vorhanden ist und dementsprechend eine Checkbox checken bzw. das Häkcheng rau machen wenn sie nur in einem teil vorhanden ist.

Wie geht das am schnellsten muss ich wirklich mit for schleifen jeden wert in jeder Schleife durchgehen und die anderen durchsuchen oder gibt es hier eine einfachere Variante?

Matze 6. Nov 2007 08:32

Re: String zerlegen
 
Hallo,

schaue dir hierzu die Eigenschaft Delphi-Referenz durchsuchenIndexOf der StringList an. Damit kannst du das recht einfach lösen:

Delphi-Quellcode:
if (sl1.IndexOf('bla') > -1) and (sl2.IndexOf('bla') > -1) then
  // in beiden enthalten
bzw:

Delphi-Quellcode:
CheckBox.Checked := (sl1.IndexOf('bla') > -1) and (sl2.IndexOf('bla') > -1);
oder wie auch immer.

Doch das gehört eigentlich nicht zur Ausgangsfrage.

Alexander Roth 6. Nov 2007 08:47

Re: String zerlegen
 
Hier mit geht es ganz eifnach:
http://www.delphipraxis.net/internal...939&highlight=

Matze 6. Nov 2007 08:55

Re: String zerlegen
 
Zitat:

Zitat von Alexander Roth

Da finde ich meinen Code einfacher für seinen Zweck. ;)

crasher1985 6. Nov 2007 09:01

Re: String zerlegen
 
So dann noch eine Letzte frage für den heutigen tag wie kann ich die Checkbox ausgrauen jeodch nciht deaktivieren.
Denke mald as kennen alle wenn ne Bedinung nur teilweise erfüllt ist das der hacken so gräulich angezeigt wird. Muss ich da speziell die Farbe ändern oder kann mand as über irgendeine Eigenschaft machen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr.
Seite 1 von 2  1 2      

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