Gast Redfox Geschrieben 11. Februar 2005 Geschrieben 11. Februar 2005 Ich habe folgendes Problem: Ich habe ein Textfeld in dem ein Name als "Name, Vorname" drinsteht. Nun möche ich Name und Vorname in zwei getrennten Strings haben. Wie mache ich das am elegantesten? Ich habe schon geschaut ob es nicht eine Funktion gibt, die mir sagt an welcher Stelle das Komma ist, damit ich danach abschneiden kann (mit welcher Funktion). Ich hab bis jetzt noch nicht das Passende gefunden. Das wäre der Name. Dann bräuchte ich noch den Vornamen (2.Teilstring). Das Problem an der Sache ist natürlich das ich nicht weiß wie lang der Name ist. Kann mir jemand helfen. Ich habe heute zum Freitag irgendwie ein Brett vor dem Kopf. Daniel
tuxfriend Geschrieben 11. Februar 2005 Geschrieben 11. Februar 2005 Hallo, Die Funktion pos(substr, string) gibt dir den Index des ersten Vorkommens von substr in string zurück. Konkret: delim = pos(',', ed_name.text); Dann einfach den String vom Anfang bis delim-1 auslesen und du hast den Namen. Der String von delim+1 bis ende ergibt dann den Vornamen. Geht über die copy funktion, die als Parameter den Startindex, die Anzahl der auszulesenden Zeichen und den auszulesenden String erwartet. Ich habe gerade kein Delphi zur verfügung und bin mir hier über die Reihenfolge nicht mehr ganz sicher. Die Anzahl der Zeichen, die du für den Vornamen auslesen mußt ist: count=length(ed_name.text)-delim. Ich hoffe, dass hilft dir. Gruß Nils
Gast Redfox Geschrieben 13. Februar 2005 Geschrieben 13. Februar 2005 Danke für die ausführliche Antwort. Ich werd es Montag gleich mal ausprobieren. Daniel
_Martin_ Geschrieben 14. Februar 2005 Geschrieben 14. Februar 2005 tuxfriend schrieb: Geht über die copy funktion, die als Parameter den Startindex, die Anzahl der auszulesenden Zeichen und den auszulesenden String erwartet. Ich habe gerade kein Delphi zur verfügung und bin mir hier über die Reihenfolge nicht mehr ganz sicher. function Copy(S: String; Index, Count: Integer): String; Kopiert Count Zeichen ab dem Indexten Zeichen aus dem String S.
geloescht_JesterDay Geschrieben 14. Februar 2005 Geschrieben 14. Februar 2005 procedure SplitString(const St, DelimitedBy: string; var Substr1, Substr2: string); var I: Integer; S : string; begin // Zwischenkopie um überschreiben von St zu verhindern S:= st; I:= Pos(DelimitedBy, S); if I > 0 then begin Substr1:= Copy(S, 1, I-1); Substr2:= Copy(S, I+Length(DelimitedBy), Length(S)); end else begin Substr1:= S; Substr2:= ''; end; end; Eigentlich nichts anderes, als davor schon beschrieben.
Gast Redfox Geschrieben 14. Februar 2005 Geschrieben 14. Februar 2005 Für den ersten Substring habe ich jetzt mit Pos die Anzahl der Zeichen (bis zum Komma) bestimmt und dann mit LeftStr das Ganze zurechtgeschnitten. Den zweiten Substring brauche ich jetzt doch nicht. Hat sich gerade ergeben. Danke für alle Antworten. Daniel
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden