![]() |
Array of char nach String kopieren
Ich habe von einer Funktion eine Zeichenkette erhalten und in ein Array of Char geschrieben.
Jetzt würde ich gerne die ersten vier Zeichen dieses Array of Char in einen String kopieren. Welche Funktion muss ich dafür nehmen? Bisher bin ich kläglich gescheitert. Vielen Dank euch schon mal im Vorraus :-D |
Re: Array of char nach String kopieren
Delphi-Quellcode:
s := CharArray;
setLength( s, 4); |
Re: Array of char nach String kopieren
Wenn ich das mache bekomme ich folgenden Fehler in der Zeile s := CharArray;
E2010 Inkompatible Typen: 'string' und 'dynamic array'. |
Re: Array of char nach String kopieren
Sag doch gleich, dass du ein dynamisches Array meinst! Da ist das ein bisschen komplizierter. Ich würde so vorgehen:
Delphi-Quellcode:
SetLength(s, 4);
Move(CharArray[0], s[1], SizeOf(Char)*4); |
Re: Array of char nach String kopieren
Ich dummerle. Das hätt ich ruhig noch dazu sagen können.
Aber super das war grad der entscheidene Hinweis. Jetzt funktionierts und ich spring im Dreieck :) Danke |
Re: Array of char nach String kopieren
Oder so:
Delphi-Quellcode:
Wenn du mit dem dynamischen Array noch arbeiten willst. SizeOf Char ist doch 1, da ein Char doch ein Byte ist?
SetLength(Str, Length(DynCharArray));
CopyMemory(@Str[1], @DynCharArray[low(DynCharArray)], Length(DynCharArray)); Gruß |
Re: Array of char nach String kopieren
Zacherl, das ist doch ziemlich genau das selbe, was ich geschrieben habe. CopyMemory ruft intern sowieso Move auf.
Ich weiß, dass SizeOf(Char) normalerweise Eins ist, aber was machst du in einer Unicode-Umgebung? |
Re: Array of char nach String kopieren
Hallo,
eine einzige Zeile genügt, um den kompletten Inhalt des Arrays oder nur einen Teil dieses Arrays zu kopieren:
Delphi-Quellcode:
Gruß Hawkeye
var
A : array of char; s : string; begin // Array-Inhalt komplett in String übernehmen s := string(A); // maximal 4 Zeichen des Arrays übernehmen s := Copy(string(A), 1, 4); end; |
Re: Array of char nach String kopieren
Na das ist ja noch besser :) Vielen Dank für den Hinweis.
|
Re: Array of char nach String kopieren
@Apollonius: Ja, aber wenn du nur Move aufrufst, verschiebst du ja den Speicher, wobei du mit CopyMemory mit dem Array auch noch wieterarbeiten kannst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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