AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit FileRead

Ein Thema von Totti · begonnen am 7. Jul 2005 · letzter Beitrag vom 8. Jul 2005
Antwort Antwort
Benutzerbild von Totti
Totti

Registriert seit: 1. Dez 2004
Ort: Harrislee
59 Beiträge
 
Delphi 2005 Personal
 
#1

Problem mit FileRead

  Alt 7. Jul 2005, 15:59
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 ) ?
Malte
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#2

Re: Problem mit FileRead

  Alt 7. Jul 2005, 16:02
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
  Mit Zitat antworten Zitat
Benutzerbild von Totti
Totti

Registriert seit: 1. Dez 2004
Ort: Harrislee
59 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Problem mit FileRead

  Alt 7. Jul 2005, 16:08
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
Malte
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#4

Re: Problem mit FileRead

  Alt 7. Jul 2005, 16:15
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;
  Mit Zitat antworten Zitat
Benutzerbild von Totti
Totti

Registriert seit: 1. Dez 2004
Ort: Harrislee
59 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Problem mit FileRead

  Alt 7. Jul 2005, 18:31
Zitat von barf00s:
xRS := TResourceStream(hInstance, 'myEXE'); // oder so ähnlich - bin mir grad nich sicher
Es klappt auch nicht ganz und ich denke schon, dass es ddiese Zeile da sein könnte. Denn er findet die Resource nicht und ich bin mir eigtl. sicher, dass ich da keien Tippfehler drin hab.




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!
Malte
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#6

Re: Problem mit FileRead

  Alt 8. Jul 2005, 09:02
RT_RCDATA wars ^^ tschuldigung
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz