Einzelnen Beitrag anzeigen

pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
309 Beiträge
 
Delphi 12 Athens
 
#3

AW: String auf Tabulatoren prüfen

  Alt 16. Aug 2014, 22:54
Ich frage mich wie man die Anzahl der Tabulatoren eines Strings zählen kann.
Ich würde die einzelne Zeile in eine Stringliste auftrennen und dann schauen, an welcher Stelle im Index ->[i] der String "Name:" auftaucht.

<TAB> Name: Horst ->[1] (da Index bei 0 beginnt: TAB = [0])
<TAB> Haustiere:
<TAB><TAB> Name: Fiffi ->[2]
<TAB><TAB> Alter: 10
<TAB><TAB> Vorbesitzer
<TAB><TAB><TAB> Name: Manuel ->[3]

Damit hast Du Deine Levels.

Hier der Code für das Aufsplitten des Strings (bei Dir eine Memozeile) in eine Stringliste (hat bei mir auch mit TAB funktioniert):
Delphi-Quellcode:
procedure SplitLine(Source: string; Dest: TStringList; Delimeter: char = ';');
// splittet den string am delimeter auf und hängt die einzelnen strings in eine Stringlist
var
  lpos : Integer;
begin
  Dest.Clear;
  lpos := Pos(Delimeter, Source); // p = 0, wenn nicht gefunden
  while lpos <> 0 do begin
    Dest.Add(Copy(Source, 1, lpos - 1));
    Delete(Source, 1, lpos);
    lpos := Pos(Delimeter, Source); // suche erneut nach delimiter
  end;
  // wenn string noch nicht leer, dann hänge rest auch an liste
  if Source <> 'then begin
    Dest.Add(Source);
  end;
end;
Grüße, Christoph
  Mit Zitat antworten Zitat