Entpack Problem !!!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

Entpack Problem !!!

Beitrag von Pure-r-Freak »

ich habe gestern angefangen einen Packer zu proggen. funzt auch bis auf das entpacken!
kann mir jemand ein simples Beispiel geben, wie man jetzt eine exe enpacken kann????? :roll:

ps: PB Hilfe kenn ich schon!
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von FISCHAUGE »

Hier das findest du aber auch im code arichv!

Code: Alles auswählen

NewList DateienEntpacken.s() ;Liste zum Entpacken erstellen 
Pfad$ = "C:\" 

;Auswahlfenster für die gepackte Datei 
PackDatei$ = OpenFileRequester("Dateien auswählen", Pfad$, "Gepackte Dateien (*.pac)|*.pac", 0) 
If OpenPack(PackDatei$)                                 ;Gepackte Datei öffnen. 
  *SpeicherAdresse = NextPackFile()                     ;Die erste Datei in eine Speicheadresse schreiben. 
  Groesse = PackFileSize()                              ;Die Groesse der Datei feststellen. 
  ;Die Datei auslesen lassen, damit man die Namen der gepackten Dateien erhält und in die Liste schreiben. 
  For Schleife = 1 To Groesse                            
    String$ = PeekS(*SpeicherAdresse, Groesse) 
    Position = FindString(String$, Chr(13), Schleife) 
    AddElement(DateienEntpacken()) 
    Laenge = Position - Schleife 
    DateienEntpacken() = Mid(String$, Schleife, Laenge) 
    Schleife = Schleife + Laenge + 1 
  Next Schleife    
Else 
  End 
EndIf 


If CreateDirectory("C:\Entpackt") :EndIf ;Ein Verzeichnis wird erstellt, in welches die Dateien entpackt werden sollen. 

ResetList(DateienEntpacken()) 
While NextElement(DateienEntpacken()) 
  *GepackteDatei = NextPackFile() 
  Groesse = PackFileSize() 
  If CreateFile(0, "C:\Entpackt\"+DateienEntpacken()) ;Eine Datei mit einem Namen aus der Liste wird erstellt. 
    WriteData(*GepackteDatei, Groesse)                ;Die Datein werden in die Datei geschrieben. 
  EndIf 
  CloseFile(0)                                        ;Datei schließen, damit eine neue erstellt werden kann. 
Wend 
Wichtig ist nur das du beim Packen der Dateien auch eine Liste mit in die Datei packst damit du die Dateien wieder entpacken kannst sonst läuft es net 8)
EDIT: In der liste müssen die Dateinamen stehen!!
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

Beitrag von Pure-r-Freak »

ja genau
eine liste mit den dateinamen mit packen.

nur das bsp verstehe ich net ganz :roll:
If OpenPack(PackDatei$) ;Gepackte Datei öffnen.
*SpeicherAdresse = NextPackFile() ;Die erste Datei in eine Speicheadresse schreiben.
Groesse = PackFileSize() ;Die Groesse der Datei feststellen.
;Die Datei auslesen lassen, damit man die Namen der gepackten Dateien erhält und in die Liste schreiben.
For Schleife = 1 To Groesse
String$ = PeekS(*SpeicherAdresse, Groesse)
Position = FindString(String$, Chr(13), Schleife)
AddElement(DateienEntpacken())
Laenge = Position - Schleife
DateienEntpacken() = Mid(String$, Schleife, Laenge)
Schleife = Schleife + Laenge + 1
Next Schleife
Else
End
EndIf
kann das bitte jemand etwas erläutern, oder besser ein einfaches bsp posten ?>?>?>?
:coderselixir:
Antworten