Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Dateien und Laufwerke

kleiner zip lib wrapper

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.Mitgliedphpboxxx 05.03.2013

Ein kleiner wrapper um die Benutzung von zip lib zu vereinfachen.

#Include "zip.bi"
#INCLUDE "zlib.bi"

Type cZip
    _zip As zip Ptr
    _zipFile As zip_file Ptr
    _zipFileIndex As zip_uint64_t
    _zipFileSize As Integer
    _zipFileData As ZString Ptr
    _zipFileInfo As zip_stat_

    Declare Sub o(id As string)
    Declare Sub c()
    Declare Function getFile(id As string) As string
End Type

Sub cZip.o (id As string)
    this._zip = zip_open(ExePath & "/" & id,0,0)
End Sub

Sub cZip.c ()
    zip_close(this._zip)
End Sub

Function cZip.getFile(id As string) As String
    'Datei finden, Position und Grösse auslesen
    this._zipFileIndex = zip_name_locate(this._zip, id, 0)
    zip_stat_index(this._zip, this._zipFileIndex, 0, @this._zipFileInfo)
    this._zipFileSize = this._zipFileInfo.size

    'Datei zum Lesen öffnen
    this._zipFile = zip_fopen(this._zip, id, 0)
    this._zipFileData = Callocate(this._zipFileSize+1)

    'Datei lesen und inhalt in Ausgabe Variable packen
    zip_fread(this._zipFile, this._zipFileData, this._zipFileSize)
    Dim As String fileData = Str(*this._zipFileData)

    'Datei schliessen und pointer zerstören
    zip_fclose(this._zipFile)
    DeAllocate(this._zipFileData)

    'Ergebnis ausgeben
    Return fileData
End Function


'beispiel
Dim myZip As cZip

'test.zip öffnen
myZip.o("test.zip")

'inhalt von foo.txt ausgeben
Print myZip.getFile("foo.txt")

'inhalt von test/bar.txt ausgeben
Print myZip.getFile("test/bar.txt")

'zip datei schliessen
myZip.c()

Sleep

Was noch fehlt ist das Abfangen des Fehlers wenn auf eine Datei, die nicht existiert, zugeriffen wird.

Getestet mit windows XP.


Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 20.03.2012 von Mitgliedphpboxxx angelegt.
  • Die aktuellste Version wurde am 05.03.2013 von Mitgliedich_halt gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen