Kezdőoldal » Számítástechnika » Programozás » Van egy delphis alkalmazás...

Van egy delphis alkalmazás ami annyit tud hogy exe-be ment egy fájl majd ki tudja menteni az exeből. Hogyan lehetne 2 fájlosra megcsinálni?

Figyelt kérdés

(A 2 fájl tömörítése majd 1 fájlként való beírás nem játszik az én esetemben)


Nekem mindig csak az egyiket sikerült megoldani akármivel is próbálkoztam.

Forrás: [link]



2012. febr. 4. 05:13
 1/3 coopper ***** válasza:

Szia.


1. Lehet hogy én nem értek hozzá, de nem vágom mit szeretnél Miaz hogy 2 fájlos megoldás ?. Ha lehetne egy kicsit konkrétabban, szájbarágósabban....


2. Az hogy egy EXE programból kiments valamit ami benne van, az megoldható (Gondolom ez az a rész ami megy).


3. A másik része igy nem is fog sikerülni, soha sem. Miért ?

Mert az EXE programot (amibe irni szretnél, maga Windows Rendszer fogja) nem tudsz bele irni. Alap tétél, még System jogosultságokkal sem megy (törölni sem tudod addig amig fut a program)


4. Esetlegesen, ugy tudod megoldani, hogyha a programoddal lemásoltatod saját magát, adsz neki egy nevet, és beleirod amit beleszeretnél irni, majd elinditod a másik programból.


konkrétan : Program.EXE -> Kiment valamit, majd elmenti magát Program1.Exe néven, és beirja a Program1.EXE-be azt amit szretnél, majd elinditja a Program1.EXE-t.

A Program1.Exe kitörli a Program.EXE-t.


Elég bonyolultnak tünik, de sajnos szerintem csak igy lehet megoldani, mivel futó process-t nem tudsz irni csak olvasni.


Sok sikert.

Üdv.


Ui.:


Egyébként mi a konkrét feladat ? Nem lehet máshogy megoldani ?

2012. febr. 4. 10:37
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
nyilván lemásolom az exet és úgy írom bele. A feladat az hogy az exebe legyen tárolva egyszer 1 szövegfájl utána meg egy tetszőleges kiterjesztésű fájl és ezeket ki is lehessen írni az exeből.
2012. febr. 4. 17:22
 3/3 coopper ***** válasza:

Szia.


Az megoldás-e, ha azt a két fájl reurce-ként van az EXE-ben ?


Vagy úgy kell az Exe mögé rakni (másolni) ?


A második megoldás esetén :


El kell késziteni az EXE programot. Megirni a Kimentő rutint is.


A programban felvenni Kettő vagy Három longint tipusú változót és értéket is adni neki. (pl POZ1 - ezek lesznek a két fájl poziciói : Első fájl kezdete, Vége, illetve Második Fájl kezdete vége.) (Ha stringként veszed fel a poziciókat akkor hexa editorral módosithatod análkül, hogy a ujra kellene a progit forditani : Pozstr1:= '00123244'; - Ezt mármint a 00123244 megtalálod valahol az Exében, és csak át kell irni a jó számra.)


Leforditani az exe-t. Megnézni mekkora a mérete.


Ezt most beirni a POZ1 változóba ujra leforditani az ExEt.


Most a következő parancsal hozzáadni az első fájlt :

copy /b Prognev.exe+elsőfaljneve.kit Prognev.exe


Megnézni a méretet, beirni a POZ2 változóba, ujra forditani az EXE-t, hozzátennia második filét is a következő képpen :


copy /b Prognev.exe+elsőfile.kit+másodikfile.kit Prognev.exe


A mostani méretet is be lehet irni a harmadik poz változóba, de ez nem fontos mert a program méretét megtudod határozni igy megvan a poz3 értéke.


Ennek a három változónak a segitségével ki tudod menteni a két fájlt. (plusz még tudnod kell a fájlok neveit és utvonalát).



Az első megoldásra itt egy rutin, de googléban rákeresel a resource kimentése vagy angolul save szavakra és válogathatsz a rutinok közül :


SaveResource ('RESURCEID',UTVONALFILENEV);


Procedure SaveResource (ResurceId,Filenev:String);

Var ResurceStream1 : TResourceStream ;

Filestream1 : TFileStream;

Begin

ResurceStream1:=TResourceStream.Create(hInstance,ResurceId,RT_RCDATA);

try

Filestream1:=TFileStream.Create(Filenev,fmCreate) ;

try

Filestream1.CopyFrom(ResurceStream1,0) ;

finally

Filestream1.Free;

end;

finally

ResurceStream1.Free;

end;

End ;



Elismerem a második megoldás egy kicsit bonyolult, de ez is müködik.


Sok sikert.

Üdv.

2012. febr. 4. 19:24
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!