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 Zitieren
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 Zitieren
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 Zitieren
_Martin_ Geschrieben 14. Februar 2005 Geschrieben 14. Februar 2005 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. Zitieren
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. Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.