Delimiterproblem bei StringList bzw Explode
Hi,
ich habe folgenden String: *SetClientData|Florian|"Florian Bernd"|FLORIAN|0|test1#*. Diesen möchte ich zuerst mit Delimiter * in seine zwei Teile trennen (Zweiter Teil ist klar leer), und dann mit Delimiter | in seiner Enzelteile zerlegen. Komischeweise wird bei "Florian Bernd" immer beim Leerzeichen eine Trennung vollzogen. Kann man das verhindern? Dann habe ich grade die Funktion EXPLODE gefunden:
Delphi-Quellcode:
welche allerdings den Delimiter innerhalb von " auch als Trennung ansieht ...
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray;
var SepLen: Integer; F, P: PChar; ALen, Index: Integer; begin SetLength(Result, 0); if (S = '') or (Limit < 0) then Exit; if Separator = '' then begin SetLength(Result, 1); Result[0] := S; Exit; end; SepLen := Length(Separator); ALen := Limit; SetLength(Result, ALen); Index := 0; P := PChar(S); while P^ <> #0 do begin F := P; P := AnsiStrPos(P, PChar(Separator)); if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F); if Index >= ALen then begin Inc(ALen, 5); SetLength(Result, ALen); end; SetString(Result[Index], F, P - F); Inc(Index); if P^ <> #0 then Inc(P, SepLen); end; if Index < ALen then SetLength(Result, Index); end; Florian |
Re: Delimiterproblem bei StringList
Das ist ein bekannter Bug der TStringList. Verwende einen der Codes aus der CodeLib.
|
Re: Delimiterproblem bei StringList bzw Explode
Siehe Edit zur Explode Funktion ... :???:
|
Re: Delimiterproblem bei StringList bzw Explode
Dann nimm halt die hier.
Dieser Bug ist schon sehr lange dabei, keien Ahnung warum Borland den nicht mal fixt, vielleicht sind die ja der Meinung, der gehört mittlerweile einfach dazu. :mrgreen: Oder es ist ein Running Gag eines gelangweilten Entwicklers bei Borland. ;) |
Re: Delimiterproblem bei StringList bzw Explode
Nunja, stell dir mal vor, die würden die Bugs Fixen. Dann würden alle Delphi-QT's ums 400-Fache kleiner, und keiner wuerde die Sprache mehr ernst nehmen. DAS ist Marketing.
|
Re: Delimiterproblem bei StringList bzw Explode
Zitat:
Florian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz