Archiv verlassen und diese Seite im Standarddesign anzeigen : Zip datei binär einlesen
Hoi,
wie kann ich eine Zip datei von 2mb Grösse
in eine Variable einlesen
Mit Arrays oder so ich muss sich aber später wieder zusammensetzen können
Danke schonmal
Gizm0
fabian ackle
06.09.2002, 22:16
versuchs mal mit
Open "datei.zip" For Binary As #1 vieleicht hilft dir das weiter
greetz
fabian
Hoi,
jo das gleiche mache ich auch aber das Problem ist das eine 2mb grosse Zip datei nicht in einen String passt :(
Danke nochmal
Gizm0
Ich verstehe nicht ganz, welchen Sinn das überhaupt haben soll. Hintergrundinfos?
DarkTemplar
29.09.2002, 13:16
Hi!!
Also erst einmal würde ich mich Shooter anschließen und fragen, was für einen Sinn das haben soll, eine ganze Datei einzulesen, aber wenn du unbedingt möchtest habe ich vielleicht eine Möglichkeit, die dich diesem Ziel näher bringt:
Bekanntlich kann ein String ja die Größe von 64 kb annehmen (mußte auch erst nachscheuen *g*). Du müßtest dann also nur eine for Schleife schreiben, die beinhaltet, dass nach rund 64000 Zeichen in die nächste Variable des Arrays geschrieben wird. Ich stelle mir das wie folgt vor:
Private Sub Ausleseroutine(Dateiname as String)
Dim Dateiinhalt() As String * 65535
Dim Dateilänge as Long
Dim Durchläufe as Integer
Dim i As Long
Dim ZuLesendeZeichen As Long
Dateilänge = FileLen(Dateiname)
Durchläufe = Int(Dateilänge/65535 + 0.5)
If Durchläufe > 1 Then ZuLesendeZeichen = 65535
Redim Dateiinhalt(Durchläufe)
Open Dateiname For Binary As #1
For i= 1 to Durchläufe
Dateiinhalt(i) = Input(ZuLesendeZeichen,#1)
If i = durchläufe - 1 then _
ZuLesendeZeichen = Dateilänge - Loc(1)
Next i
Das müßte eigentlich funktionieren, bloß wäre mir das nicht nur eindeutig zu viel Aufwand sondern auch etwas Rechen- bzw. Arbeitsspeicheraufwändig. Ich würde an deiner Stelle überlegen, ob es nicht auch ginge, nur bestimmte Abschnitte der Datei einzulesen und zu verändern.
Bye,
DarkTemplar
Das Problem ist, dass irgendwann der Stapelspeicher voll ist. In C++ würd ich das daher auf dem freien Speicher anlegen (mit new oder malloc), aber in Visual Basic :( ...
DarkTemplar
03.10.2002, 21:02
Ich würde versuchen das Problem im Allgemeinen zu umgehen, denn aus meiner Sicht gibt es keinen vernünftigen Grund den Speicher mit 2 MB vollzuhauen anstatt das dynamisch zu machen und immer nur einen (oder ein paar wenige) Teil(e) der Datei zur Bearbeitung einzulesen.
Bye,
DarkTemplar
Abgesehen davon dass es eh keinen Sinn zu haben scheint. Wenn schon kann man die Datei doch auch direkt bearbeiten. Man muss ja nicht alles in den Speicher laden, wie DarkTemplar schon gesagt hat.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.