![]() |
GetWordofAnsiString funktioniert nicht??
Delphi-Quellcode:
wenn ich auf den 3 tel zugreife kommt der 3 und der 4 warum ???
Function GetWordOfAnsiString(Text : string; WordPos : Word): string;
var p : PChar; begin p := PChar(Text); repeat Dec(WordPos); while p^ <> #0 do begin if WordPos = 0 then Result := Result + p^; Inc(p); end; if WordPos = 0 then Exit; Inc(p); until p^ = #0; end; Bsp GetWordOfAnsiString('bla'+#0+'b'+#0+'b'+#0+'b'+#0+ 'b'+#0+'b'+#0,1); kommt bla bei getwordofansistring('bla'+#0+'b'+#0+'b'+#0+'b'+#0+ 'b'+#0+'b'+#0,3); kommt 'bb' was ist los ??? |
Re: GetWordofAnsiString funktioniert nicht??
Intressanter weise funktioiert es beim ersten mal
|
Re: GetWordofAnsiString funktioniert nicht??
Ein PChar ist ein nullterminierter String.
D.h. er endet beim ersten #0-Zeichen. :) |
Re: GetWordofAnsiString funktioniert nicht??
kannst du mir das erlären
|
Re: GetWordofAnsiString funktioniert nicht??
PChar ist der Windowsstandard für Strings. Diese werden automatisch bei #0 beendet. Im Vergleich dazu können Delphi-Strings #0 enthalten und speichern dafür die Länge an anderer Stelle. Da Dein String #0 enthält und Du den auch PChar trimmst wird aus (string)'bla'+#0+'b'+#0+'b'+#0+'b'+#0+'b'+#0+'b'+#0 nur noch (Pchar)'bla'#0.
...:cat:... |
Re: GetWordofAnsiString funktioniert nicht??
danke leute den auszug hatte ich aus dsdt.info dachte wäre besser
hab jetzt meinen eigenen
Delphi-Quellcode:
zwar nicht an euch beide aber falls es jmnd brauch
Function GetWord(Text : string; WordPos : Word): string;
var i,z:integer; begin result := ''; z:=0; for i := 1 to length(text) do begin if text[i]='.' then begin z:=z+1; if z=WordPos then break; result := ''; end else begin result := result+text[i]; end; end; end |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 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