vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Datei > 2GB öffnen 
Autor: TheNukeduke
Datum: 30.09.06 00:47

Lange ists her, doch gestern fiel mir plötzlich dieser Thread wieder ein...
Also habe ich ein bisschen die MSDN durchwühlt, und herausgekommen ist
nach etwas Getüftel eine kleine Klasse:
clsFile.cls


Kleines Beispiel zur Verwendung:
Private Sub ReadFile(ByVal Filename As String)
Dim Bytes() As Byte
Dim X As clsFile
Dim curPacketSize As Currency
Dim curArraySize As Currency
Dim curSize As Currency
Dim curReadPos As Currency
 
   Set X = New clsFile
   X.Filename = Filename ' Dateinamen zuweisen
   If X.OpenFile(accRead, , opnNeverCreate) Then ' Datei mit Lesezugriff 
   ' öffnen, Datei nicht erstellen wenn sie nicht existiert
      curSize = X.Size ' Dateigröße ermitteln
      curPacketSize = 0
      curArraySize = 0
      curReadPos = 0
      Do Until X.EOF ' Schleife, bis Dateiende erreicht ist
         curPacketSize = curSize - curReadPos
         If curPacketSize > 4096 Then ' Datei in 4KiB Paketen lesen
            curPacketSize = 4096
         End If
         If curPacketSize <> curArraySize Then ' Array "redimen" wenn nötig
            ReDim Bytes(1 To curPacketSize)
         End If
         curArraySize = X.GetData(Bytes) ' Daten lesen
         ' Der 2. optinale Parameter von GetData gibt an, von welcher Position 
         ' an in der Datei gelesen werden soll
         ' Bytes() enthält nun die Daten ....
         curReadPos = curReadPos + curArraySize
      Loop
      X.CloseFile ' Datei schließen
      MsgBox CStr(curReadPos) & " von " & CStr(curSize) & " Bytes gelesen."
   End If
 
End Sub
(Datei wird einfach nur komplett eingelesen)


Habe die Klasse noch nicht auf Herz und Nieren prüfen können, ein paar
schnelle Tests mit Herumkopierei waren jedoch erfolgreich. Die Klasse
funktioniert nicht unter Win9xME und ist in erster Linie nur geeignet um
Dateien im Binärmodus zu lesen/schreiben. (Einen wirklichen Sinn sehe ich in
5GiB großen Textdateien auch nicht

Über Feedback würde ich mich freuen, wenn keine Fehler mehr auftauchen
werde ich das wohl als Tipp einsenden...

Gru?,
Nukeduke

if (youAreHappyAndYouKnowIt) {
???ClapYourHands();
}

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datei > 2GB öffnen2.109NewPiper31.01.06 12:35
Re: Datei > 2GB öffnen1.611OldMan31.01.06 14:11
Re: Datei > 2GB öffnen1.702NewPiper31.01.06 15:50
Re: Datei > 2GB öffnen1.604That31.01.06 15:49
Na Klar, Mach ich, insofern ich was rausbekomme1.793NewPiper31.01.06 15:53
Re: Datei > 2GB öffnen1.592Joerg02.02.06 13:40
Re: Datei > 2GB öffnen1.533That02.02.06 13:45
Re: Datei > 2GB öffnen1.530Joerg02.02.06 13:55
Re: Datei > 2GB öffnen1.539TheNukeduke02.02.06 14:58
Re: Datei > 2GB öffnen1.584Joerg02.02.06 16:28
Re: Datei > 2GB öffnen1.554TheNukeduke02.02.06 16:45
Re: Datei > 2GB öffnen1.834TheNukeduke30.09.06 00:47
Re: Datei > 2GB öffnen1.523Fex02.10.06 21:18
Datei > 2GB öffnen1.561NewPiper03.10.06 13:36
Re: Datei > 2GB öffnen1.564Fex03.10.06 14:51
Re: Datei > 2GB öffnen1.615TheNukeduke03.10.06 16:14
clsFile.cls1.674NewPiper03.10.06 17:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel