Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String in Array of Char (https://www.delphipraxis.net/53215-string-array-char.html)

PASST 12. Sep 2005 13:43


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

sniper_w 12. Sep 2005 14:03

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;

Luckie 12. Sep 2005 14:05

Re: String in Array of Char
 
Zitat:

Zitat von PASST
Delphi-Quellcode:
var txtChar : array [0..255] of char;
txtString: String;
begin
    txtChar := 'Dieser Text wird vom Compiler akzeptiert!';  // Warum das jetzt?
end

Compilermagic. ;)

Olli 12. Sep 2005 14:05

Re: String in Array of Char
 
Versuch mal SetString und übergib @ArrayName

PASST 12. Sep 2005 14:41

Re: String in Array of Char
 
Letztendlich habe ich das jetzt mit StrPCopy(txtChar, txtString) gemacht. Alternativen wären auch folgende gewesen.
Delphi-Quellcode:
  SetLength(txtChar,Length(txtString));
  for i:=1 to length(txtString) do txtChar[i-1]:=txtString[i];
  // oder
  Move(txtString[1],txtChar[0],Length(txtString));
Gewundert hatte mich allerdings warum
Delphi-Quellcode:
    txtChar := 'Dieser Text wird vom Compiler akzeptiert!';  // Warum das jetzt?
das akzeptiert wird. An Compilermagic glaube ich nicht - eher an meine Unwissenheit ;)

Olli 12. Sep 2005 14:46

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:

Zitat von PASST
An Compilermagic glaube ich nicht - eher an meine Unwissenheit ;)

Das war aber eine durchaus fundierte Aussage und kein Scherz von Luckie!

Sprint 12. Sep 2005 14:49

Re: String in Array of Char
 
Zitat:

Zitat von PASST
Letztendlich habe ich das jetzt mit StrPCopy(txtChar, txtString) gemacht.

StrLCopy wäre wohl besser. Wenn txtString größer als txtChar ist, hast du ein Problem.
Delphi-Quellcode:
txtString := 'Dieser Text wird vom Compiler nicht akzeptiert!';
StrLCopy(txtChar, PChar(txtString), SizeOf(txtChar) - 1);

PASST 12. Sep 2005 14:53

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.

Olli 12. Sep 2005 14:56

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.

PASST 12. Sep 2005 14:59

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.
Seite 1 von 2  1 2      

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