![]() |
Re: Einen Komma-Text richtig trennen.
Ein wenig TERWI-Senf dazu...
Diese Funktion nutze ich schon seit ner kleinen Ewigkeit, um Strings - z.B. durch Komma oder andere Zeichen getrennt - zu zerlegen. Kann man dann logo auch rekursiv auf die Ergebnisse anwenden ...
Delphi-Quellcode:
Da würde ich gunfran's Beispiel erst mal grob nach Kommata zerlegen
function SplitStr(T : char; var S : string) : string;
var p : integer; begin Result := S; // Result ist zunächst S unverändert ! if s = '' then exit; // ... da gibts nix zu trennen p := Pos(T, S); // Position des Trennzeichens 'T' ermitteln if p > 1 then // Trennzeichen ist vorhanden ! begin // > JA Result := trim(Copy(S,1,p-1)); // Bis zum Trennzeichen aus S nach Result kopieren (links) S := trim(Copy(S,p+1,Length(S))); // Rest nach Trennz. in S zurückgeben (rechts) end else S := ''; // Kein Trenner - Result (links) ist S und S (rechts) ist leer end; Und dann weiter den Wert in {} ermitteln... Nur ne grobe Idee, nicht getestet !
Delphi-Quellcode:
Idee ohne Gewehr zum selber selbsterschiessen / weiterdenken... :spin:
...
s_org := 'BORKUM{61}, BLA2{60}, REL{62}, EN/NORD{72}, ESSEN{59}, TRINKEN{70}, HERNE{71}, HSK1{67}, MAMA123{65}, KW/DINSL{64}, OBERHAUSEN{66}, EN/SÜD{73}, KW/MOERS{63}, HSK2{68}, HSK3{69}'; repeat s_result := SplitStr(',', s_org); s_rest := s_result; // Edit: ... sonst wird das nix mit repeat until. // s_result prüfen... entweder leer oder was gültiges vor dem ',' // ggf. noch mal ein SplitStr('/', s_result) darauf um für ein '/' zu trennen.... Achtung: s_result wird verändert ! s_temp := SplitStr('{',s_result); // die {-Klammer vorne weg und den Rest erhalten // mach was mit s_temp vor dem { SetLength(s_result, Length(s_result - 1)); // die }Klammer hinten weg --- EDIT: Korrgiert... // mach hier was mit s_result until s_rest = ''; // Edit: oder until (Pos(',', s_org) < 1); PS: Ich bin da nicht so der Performance-Kasper. Sollte logo schon zügig gehen... Aber mit der SplitStr-Func habe ich schon relativ dicke Daten im xx-MB-Format durchwurstet und ich würde mach dumpf behaupten, das da die Platte (von der gelesen wurde) eher das langsamste Teil in der Kette war... |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
Re: Einen Komma-Text richtig trennen.
und hast dir
![]() |
Re: Einen Komma-Text richtig trennen.
Zitat:
|
Re: Einen Komma-Text richtig trennen.
Das Wort "feste Feldlänge" ist noch nicht gefallen. Damit sind Trennzeichen-Probleme ein für allemal aus der Welt geschafft. Selbst dann wenn ein DAU "Herr M;ller" als Name gespeichert hat. Das Komma selber ist wegen Dezimalzahlen sowieso auszuschließen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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 by Thomas Breitkreuz