![]() |
Delphi-Version: XE2
XE2: Evtl. Splitstring bug bei CRLF?
Hi@all.
Könnt ihr mir mal schreiben, was bei euch rauskommt, wenn ihr folgende Befehle eintippselt:
Delphi-Quellcode:
Mein Ergebnis (XE2) ist:uses StrUtils, Types; //[...] var lines:TstringDynArray; str:string; //[...] str:='a'+#13#10+'b'; lines:=SplitString(str,#13#10); lines[0]='a'; lines[1]=''; lines[2]='b'; Hab ich gerade nen Denkfehler? Meiner Meinung nach sollte lines[1]='' nicht existieren, oder? Gruß, Michael |
AW: XE2: Evtl. Splitstring bug bei CRLF?
Hat das denn mit dem Zeilenumbruch überhaupt etwas zu tun?
Interessanterweise ergibt sich für mich auch ['a', '', 'b'] wenn man #10#13 in beiden Fällen durch 'xy' ersetzt:
Delphi-Quellcode:
str:='a'+'xy'+'b';
lines:=SplitString(str,'xy'); for str in lines do if str.IsEmpty() then ShowMessage('LEER') else ShowMessage(str) ; Übrigens: Bei der Methode "Split" von TStringHelper passiert diese "Anomalie" nicht: ![]() Noch nicht in XE2 vorhanden |
AW: XE2: Evtl. Splitstring bug bei CRLF?
Hast recht, hat nichts mit CRLF zu tun: wenn dein Delimiter 3 anstatt 2 Zeichen hat, gibts 2 leere Array Einträge, also Vermutung: Es gibt immer length(Delimiter)-1 leere Array Einträge. WARUM?
Die Variable in SplitString heißt Delimiters, d.h. wohl, dass er jedes Zeichen einzeln zum splitten benutzt. |
AW: XE2: Evtl. Splitstring bug bei CRLF?
Die Funktion arbeitet so wie beschreiben (nicht so wie von dir erwartet) :stupid:
Zitat:
![]() Der Aufruf von
Delphi-Quellcode:
würde also die folgenden Zeichenketten gleich trennen:
SplitString( str, ',;' );
Code:
1,2,3
1;2;3 |
AW: XE2: Evtl. Splitstring bug bei CRLF?
Zitat:
|
AW: XE2: Evtl. Splitstring bug bei CRLF?
Zitat:
|
AW: XE2: Evtl. Splitstring bug bei CRLF?
Ein String ... die Zeichen enthält.
Die englische Hilfe ist da zum Glück genauso: Zitat:
Die Verwirrung ist vielleicht auch der Grund warum das später geändert wurde: Die ganzen Split-Methoden haben ein halbes Dutzend verschiedene Überladungen: Einmal gibt man ein Array of Char als Delimeter an, alternativ ein Array of String, oder nur einen Char, oder nur einen String, ... |
AW: XE2: Evtl. Splitstring bug bei CRLF?
Zitat:
Zitat:
Zitat:
siehe TStrings.Delimiter |
AW: XE2: Evtl. Splitstring bug bei CRLF?
Zitat:
Zitat:
Zitat:
|
AW: XE2: Evtl. Splitstring bug bei CRLF?
Meine Verwirrung kam wegen dieses Widerspruches: Zunächst
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 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