![]() |
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
![]() 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 01:34 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-2025 by Thomas Breitkreuz