![]() |
String in Char umwandeln
Hallo
Also das ist nicht das erste mal das man dies fragt und ich habe auch gesucht. Nur brauche ich für die UnRar ja einen Filename welcher ein Array of Char ist. Ich habe eine Listbox auf der Form und die einzelnen Zeilen werden ja über lb.Items[] angesprochen. Das Problem ist dass es sich dabei um Strings handelt. Nun wie soll ich es am besten anstellen: Ich möchte auf die Listbox Items clicken und danach die Datei auspacken welche ich ausgewählt habe. Aber wie gesagt es ist ein Array of Char und Items sind Strings |
Re: String in Char umwandeln
Mal versucht, den String in einen PChar zu casten?
|
Re: String in Char umwandeln
sagt mir inkompatibel Array und PAnsiChar
|
Re: String in Char umwandeln
Wie muss das denn aussehen? Zeig doch mal die Signatur der aufgerufenen Funktion.
|
Re: String in Char umwandeln
Hallo Lucifer,
versuch mal folgendes:
Delphi-Quellcode:
je nachdem mit welcher Delphi-Version du arbeitest sollte da etwas funktionierendes dabei sein.
var
car: packed array [1..255] of char; s1 : string; s2 : string[255]; ... car:=s1; oder ... car:=s2 oder ... move(s2[1],car[1],length(s2); Bei den shortStrings hat bei mir soetwas auch meistens geklappt. Mit den AnsiStrings habe ich soetwas noch nicht ausprobiert aber für Dateinamen reichen die 255 Zeichen wohl auch aus. Gruß K-H |
Re: String in Char umwandeln
funktioniert auch nicht:
Delphi-Quellcode:
so sieht das eigentlich aus
RARHeaderData = packed record
ArcName: packed array[0..Pred(260)] of Char; FileName: packed array[0..Pred(260)] of Char; Flags: UINT; PackSize: UINT; UnpSize: UINT; HostOS: UINT; FileCRC: UINT; FileTime: UINT; UnpVer: UINT; Method: UINT; FileAttr: UINT; CmtBuf: PChar; CmtBufSize: UINT; CmtSize: UINT; CmtState: UINT; und ich benötige die Filename aber wie gesagt was in einer Lisbtox steht ist String |
Re: String in Char umwandeln
Mit StrPCopy sollte es gehen. Kleines Beispiel:
Delphi-Quellcode:
type TMyRec = packed record
sTest: packed array[0..Pred(260)] of Char; end; procedure TForm1.FormCreate(Sender: TObject); var MyRec: TMyRec; begin FillChar(MyRec, SizeOf(MyRec),#0); StrPCopy(MyRec.sTest,'Tach auch'); ShowMessage(MyRec.sTest); end; |
Re: String in Char umwandeln
tut mir leid ich habs versucht doch trotzdem will es nicht
Delphi-Quellcode:
DCC Fehler E2008 Inkompatible TypenFillChar(MyRec, SizeOf(MyRec),#0); StrPCopy(MyRec.sTest,'test'); RarHeader.FileName:=MyRec.sTest; |
Re: String in Char umwandeln
Du musst ja auch mit StrPCopy den String in das Feld des Records kopieren. Mein Beispiel hatte nichts mit Deinem Record zu tun.
|
Re: String in Char umwandeln
Vielen Dank es hat geklappt um den String einzutragen.
Ich danke dir wikrlich Vielmals |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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