![]() |
String in Array of Char
Tach allerseits,
ich weiß, die Frage ist schon tausendmal gestellt und fast so oft auch beantwortet worden. Aber ich bin etwa irritiert, was der Compiler ausspuckt und was nicht.
Delphi-Quellcode:
var txtChar : array [0..255] of char;
txtString: String; begin txtString := 'Dieser Text wird vom Compiler nicht akzeptiert!'; txtChar := txtString; // Logisch String <> Char txtChar := 'Dieser Text wird vom Compiler akzeptiert!'; // Warum das jetzt? end |
Re: String in Array of Char
Woran lieg das eingentliche Problemm ? String als Array of Char zu benutzen? Wenn ja dann so:
Delphi-Quellcode:
var s:string;
c:array[0..100]of Char; begin s:='abcdefghijklmnopqrst'; c[30] := s[4]; // c[30] := 'd'; end; |
Re: String in Array of Char
Zitat:
|
Re: String in Array of Char
Versuch mal SetString und übergib @ArrayName
|
Re: String in Array of Char
Letztendlich habe ich das jetzt mit StrPCopy(txtChar, txtString) gemacht. Alternativen wären auch folgende gewesen.
Delphi-Quellcode:
Gewundert hatte mich allerdings warum
SetLength(txtChar,Length(txtString));
for i:=1 to length(txtString) do txtChar[i-1]:=txtString[i]; // oder Move(txtString[1],txtChar[0],Length(txtString));
Delphi-Quellcode:
das akzeptiert wird. An Compilermagic glaube ich nicht - eher an meine Unwissenheit ;)
txtChar := 'Dieser Text wird vom Compiler akzeptiert!'; // Warum das jetzt?
|
Re: String in Array of Char
Bei SetString hättest du das alles in einem Aufruf, aber laß mal ...
Delphi-Quellcode:
SetString(StringVar, @ArrayVar, lstrlen(@ArrayVar));
Zitat:
|
Re: String in Array of Char
Zitat:
Delphi-Quellcode:
txtString := 'Dieser Text wird vom Compiler nicht akzeptiert!';
StrLCopy(txtChar, PChar(txtString), SizeOf(txtChar) - 1); |
Re: String in Array of Char
Klingt plausibel. Andererseits handelt es sich hierbei um Druckerbezeichnungen und da werden wohl nicht mehr als 255 Zeichen vorkommen.
|
Re: String in Array of Char
... andererseits sollte man sein Programm immer so generisch und so flexibel wie nur möglich schreiben, deshalb solltest du ruhig auf Sprint hören.
|
Re: String in Array of Char
ok, bin ja nicht lernresistent :)
Der Haken bei der Sache ist natürlich, dass ich mich dabei auf maximale Anzahl an Zeichen von txtChar beschränke. |
Re: String in Array of Char
Zitat:
Dein txtChar ist letztendlich ein typisierter Pointer, der auf einen Speicherbereich zeigt, der als array of char interpretiert wird. Deine string-Variable ist aber KEIN array of char... (deshalb fliegt dir die Zuweisung um die Ohren) wohl aber kann das Literal 'ABC...' als solches interprtiert werden (deshalb klappt das) Gruß Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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 by Thomas Breitkreuz