AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnisse in Listbox auflisten

Ein Thema von Lamy · begonnen am 6. Mai 2004 · letzter Beitrag vom 8. Mai 2004
 
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Verzeichnisse in Listbox auflisten

  Alt 7. Mai 2004, 13:33
DataCool war so freundlich meine Funktion noch ein bischen zu verbessern - THANKS
Delphi-Quellcode:
procedure splitString(const Source: String; const Delimiter: String; var Dest: TStringlist);
var count: Integer;
      LStartpos, LEndepos, LSourcelength: Integer;
      LDelimiterLength : Integer;
begin
   Dest.Clear;
   count := 1;
   LStartpos := 0;
   LEndepos := 0;
   LSourcelength := length(Source);
   LDelimiterLength := Length(Delimiter);
   while count <= LSourcelength do begin
      if copy(Source, count, LDelimiterLength) = Delimiter then begin
         LEndepos := count;
         dest.Add(copy(Source, LStartpos + 1, LEndepos - LStartpos - 1));
         LStartpos := count + LDelimiterLength - 1;
         inc(count,LDelimiterLength);
      end
      else begin
         inc(count);
      end;
   end;
   if LEndePos <> Count - LDelimiterLength then
         dest.Add(copy(Source, LStartpos + 1, count - LStartpos - 1));
end;
@Lamy: eigentlich brauchst du die funktion nicht da dein Problem einzeilig ist und somit stringreplace die einfacherere alternative ist.
Zu deinen Fragen:
Delphi-Quellcode:
Dest.Clear; //leert die Ziel-Stringliste (dem user bissl arbeit abnehmen)
count := 1; //Count ist der Index wo wir uns gerade im String befinden
LStartpos := 0; //anfangs wird die startposition auf 0 gesetzt damit, irgendwo muss ja der string anfangen
LEndepos := 0; //Da wir noch nicht parsen muss die endeposition auch auf 0 - wird später hochgezählt
LSourcelength := length(Source); //wird für schleifenabbruch bedingung gebraucht. gibt an wie lang der string ist der zerteilt werden soll
Beispielaufruf:
Delphi-Quellcode:
var LListe: TStringlist;
begin
  LListe := TStringlist.create;
  splitString('Part1|Part2|Part3', '|'; LListe);
  //jetzt sollte in LListe der geteilte sting sein - also 3 Items
  [...] //dein source (also das auswerten der items)
  LListe.Free;
end;
[Edit]Fehler in Funktion beseitigt[/Edit]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18: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