Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problem mit procedure Split() (https://www.delphipraxis.net/160107-problem-mit-procedure-split.html)

himitsu 29. Apr 2011 23:40

AW: Problem mit procedure Split()
 
Weil PChar schon ein Pointer auf einen oder mehrere Chars ist?

Wenn es PChar nicht gibt, dann stimmt irgendwas nicht
und man sollte erstmal dieses Problem beheben.

EWeiss 30. Apr 2011 00:01

AW: Problem mit procedure Split()
 
Zitat:

Zitat von himitsu (Beitrag 1097748)
Weil PChar schon ein Pointer auf einen oder mehrere Chars ist?

Wenn es PChar nicht gibt, dann stimmt irgendwas nicht
und man sollte erstmal dieses Problem beheben.

LOL ;)

Ist mir schon klar..
Aber anscheinend hat er kein PChar oder steht ihm nicht zur verfügung.
Zitat:

PChar gibt es nicht
Also muss er den Pointer selbst erstellen als Pointer of Char.

gruss

himitsu 30. Apr 2011 00:10

AW: Problem mit procedure Split()
 
Zitat:

Zitat von EWeiss (Beitrag 1097755)
Zitat:

PChar gibt es nicht
Also muss er den Pointer selbst erstellen als Pointer of Char.

Oder er sagt uns mal warum es PChar nicht gibt, bzw. ob dieses einfach nur nicht verwendet werden darf.

uragan 30. Apr 2011 01:44

AW: Problem mit procedure Split()
 
Liste der Anhänge anzeigen (Anzahl: 1)
wie siehts aus wenn man das ganze so macht?
weiß jemand wieso das ganze nicht klappt?

Delphi-Quellcode:
var

list2: TStringList;
res : string;
i : integer;

procedure Split(const Delimiter: Char; Input: string; Strings: TStrings);
var
   setstring : string;
   StringsTemp : TStringList;
begin
   StringsTemp := TStringList.create;
   Strings.Clear;
   while setstring <> '' do begin
   StringsTemp.Clear;
   StringsTemp.Delimiter := Delimiter;
   StringsTemp.DelimitedText := Input;
   Strings.Add(StringsTemp[0]);
   setstring := StringsTemp[0];
   Delete(Input,0,Length(StringsTemp[0])+1);
   end;
end;

begin
list2 := TStringList.create;
res := 'test1'+#0+'test1'+#0+'test1'+#0 ;
Split(#0, res, list2);
for i := 0 to list2.count-1 do begin
   ShowMessage(list2[i]);
end;
end.

EDIT::

Hab das ganze versucht in eine datei abzuspeichern


Code:
62 6c 61 62 6c 61 00 0d 0a
62 6c 61 62 6c 61 32 00 0d 0a
62 6c 61 62 6c 61 33 00 0d 0a
Es wird in der Datei angezeigt
Code:
blabla
blabla2
blabla3

Wenn ich per TStringList.LoadFromFile die selbe datei lade, dann wird nur der erste eintrag abgerufen, und danach ist stop.
D.h. nach wiederholtem abspeichern auf die selbe datei ist es nur noch:

Code:
62 6c 61 62 6c 61 00
Code:
blabla
echt komisch :(

PS: Datei liegt im Anhang, falls jemand probieren möchte

DeddyH 30. Apr 2011 07:24

AW: Problem mit procedure Split()
 
Das liegt an der 0, das ist in Delphi nun einmal das Stringende-Zeichen, wurde aber bereits mehrfach gesagt.

mkinzler 30. Apr 2011 08:31

AW: Problem mit procedure Split()
 
Zitat:

Das liegt an der 0,
Eigentlich dass von C

uragan 30. Apr 2011 10:52

AW: Problem mit procedure Split()
 
Ist es nicht möglich die Funktion Trim() so umzubauen, dass es alle #0 löscht?

himitsu 30. Apr 2011 11:08

AW: Problem mit procedure Split()
 
Trim entfernt doch jetzt schon alle führenden und nachfolgenden #0-en ? :gruebel:

uragan 30. Apr 2011 11:50

AW: Problem mit procedure Split()
 
Entfernt doch Leerzeichen oder? also #20

himitsu 30. Apr 2011 12:00

AW: Problem mit procedure Split()
 
Alle Steuerzeichen, von #0 bis #$20 (aka #32).


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr.
Seite 3 von 5     123 45      

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