Funktionen für Cabinetarchive (.cab)

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Willi die Rübe

Betreff: Funktionen für Cabinetarchive (.cab)

BeitragMi, Sep 13, 2006 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
angeregt durch DWs DLL zum Extrahieren von Cabinet Archiven hab ich nun ein paar Funktionen geschrieben, die keine DLL benötigen(nicht böse meinen DW Wink):

Archiv erstellen:
Code: [AUSKLAPPEN]
CAB_SetNmbrOfFiles(1)
CAB_ADDFile( "file0.dat" )
CAB_ADDFile( "file1.dat" )
CAB_Create( "test.cab" )


Archiv entpacken:
Code: [AUSKLAPPEN]
CAB_Extract("test.cab", "entpackt\")


Ich denke eigentlich, dass die Code sich von selbst erklären. Aber trotzdem hier noch eine Beschreibung:

CAB_SetNmbrOfFiles( anz_files% )
Dieser Befehl legt die Anzahl an Dateien fest, die archivriert werden sollen.
Beispiel:
CAB_SetNmbrOfFiles(2)

CAB_AddFile( path$ )
Dieser Befehl fügt eine Datei zur Liste hinzu.
Beispiel:
CAB_AddFile( "file1.dat" )

CAB_Create( path$ )
Dieser Befehl erstellt das Archiv mit den Dateien, die sich auf der Liste befinden.
Beispiel:
CAB_Create( "test.cab" )

CAB_Extract( input$, output$ )
Dieser Befehl extrahiert das Archiv in dem Ordner output$. Falls die Dateien in das aktuelle Verzeichniss kopiert werden sollen, so gebe als Parameter "." an.
Beispiel:
CAB_Create( "test.cab", "entpackt\")


Die Funktionen:

Code: [AUSKLAPPEN]

Function CAB_SetNmbrOfFiles( anz% )
   Dim CAB_filelist$(anz%)
   CAB_counter=0
End Function

Function CAB_AddFile(path$)
   CAB_filelist$(CAB_counter)=path$
   CAB_counter=CAB_counter+1
End Function

Function CAB_Create(output$)
   Local tmp=Writefile("tmp.ddf")


   WriteLine tmp, ".Set CabinetNameTemplate="+output$     
   WriteLine tmp, ".set DiskDirectoryTemplate=CDROM"
   WriteLine tmp, ".Set CompressionType=MSZIP"
   WriteLine tmp, ".Set UniqueFiles="+chr$(34)+"ON"+chr$(34)
   WriteLine tmp, ".Set Cabinet=on"
   WriteLine tmp, ".Set DiskDirectory1=."
   
   For a=0 To CAB_Counter%-1
      WriteLine tmp, CAB_Filelist$(a)
   Next
      
   CloseFile tmp
   
   tmp2=WriteFile("tmp.bat")
   WriteLine tmp2, "makecab /F tmp.ddf"
   WriteLine tmp2, "DEL tmp.ddf"
   WriteLine tmp2, "DEL setup.inf"
   WriteLine tmp2, "DEL setup.rpt"
   WriteLine tmp2, "DEL tmp.bat"
   
   CloseFile tmp2
   
   ExecFile( "tmp.bat" )

   
End Function

Function CAB_Extract(path$, dir$)
   ExecFile( "extrac32 /E /L "+chr$(34)+dir$+chr$(34)+" "+chr$(34)+path$ +chr$(34) )
End Function



Diese Funktionen benutzten die Systemprogramme MakeCab.exe und Extrac32.exe, die es erst ab Windows 2000 gibt!


Mfg
Willi
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage

BlitzChecker

BeitragDo, Sep 14, 2006 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
thx, darauf hab ich all die jahre gewartet!
www.xairro.com

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group