![]() |
Problem mit FileRead
Moin,
leider scheint er bei flgendem Code absolut nichts bei FIleRead einzulesen :(
Delphi-Quellcode:
const
SzaSize=488960; fsSize=80896; {...} function extractExe: boolean; var aHdl,bHdl,t: Integer; SzaBuf: Array[1..SzaSize] of byte; fsBuf: Array[1..fsSize] of byte; aHdl:=FileOpen(Application.ExeName, fmShareDenyNone or fmOpenRead); bHdl:=FileCreate(FMDir+'Stadia.tex\7za.exe'); t:=FileSeek(aHdl, SzaSize+fsSize, 2); t:=FileRead(aHdl, SzaBuf, SizeOf(SzaBuf)); t:=SizeOf(SzaBuf); t:=FileWrite(bHdl, SzaBuf, SizeOf(SzaBuf)); FileClose(bHdl); Irgendwelche Ideen, was falsch gelaufen sein könnte? Kann Delphi evtl. nur einen FileStream zur zeit bedienen (wobei dann der Sinn von handles wohl in Frage gestellt wäre :D) ? |
Re: Problem mit FileRead
wenn du ne exe in ein programm reinkompilierst, dann könntest die als Resource einbinden... und dann später einwandfrei und leicht mit nem TResourceStream wieder rausladen ..... dann brauchst hier nich mit File* rumzugurken
hmmm das dein code nich funzt, kann daran liegen das der zielname nich korrekt angegeben iss "FMDir+'Stadia.tex\7za.exe'" ich kann mir schon denken das stadia.tex nen ordner iss ... aber kA ob das die File* Winapi richtig schnallt |
Re: Problem mit FileRead
Naja, lt. meines Debuggins haperts ja schon beim Einlesen.
Aber mit Ressourcen hab ich bishe rnoch nicht wirklich gearbeitet, wenn det einfacher ist, würd ich das natürlich gern erlernen :) |
Re: Problem mit FileRead
ja des .rc script würde dann wie folgt aussehen
<rc> myEXE RC_DATA c:\foobar\program.exe </rc> ohne rc tags natürlich :) dann kompilierst die brcc32.exe myRC.rc [edit] natürlich nicht vergessen dann die entstandenee .res file in dein program einzubinden über {$R myRC.res}[/edit] und denn kannst in deinem program
Delphi-Quellcode:
var
xRS: TResourceStream; xFS: TFileStream; begin xRS := TResourceStream(hInstance, 'myEXE'); // oder so ähnlich - bin mir grad nich sicher xFS := TFileStream.Create('C:\new\blah.exe', fmCreate); try xRS.Position := 0; xFS.CopyFrom(xRS, xRS.Size); finally FreeAndNil(xRS); FreeAndNil(xFS); end; end; |
Re: Problem mit FileRead
Zitat:
P.S.: Aber fürsn Rest schonmal ein dickes DaNKE!! :) achso, ich hab die zeile folgendermaßen: exeRS:=TResourceStream.Create(hInstance,'7zaEXE',R T_RCDATA); aber geht trotzdem nicht ;) Edit2: Ah, man sollte auch schon bei der .rc Datei "RT_RCDATA" verwenden . nun klappt alles bestens, danke! |
Re: Problem mit FileRead
RT_RCDATA wars ^^ tschuldigung ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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