Binärer Datei I/O

B

Benedikt

Hoi!
Ich bin grad damit beschäftigt Dateien im binären Format einzulsen und wieder als funktionierende (wenns exen sind) abzuspeichern.
Also folgendes:
Ich hab ne Variable() As Byte und in diese wird dann Byte für Byte die Datei eingelesen. Dann hab ich auch ne möglichkeit gefunden (oda PSC um erlich zu sein...) aus dieser Variable die Datei wieder abzuspeichern.
Folgendes is mein Problem:
Wenn ich nun die Datei in der Variablen eingelsen habe, wie kann ich diese Variable dann sozusagen in eine andere übertragen?
Ich habe es mit
for i = 1 to VarGrösse
neueVar(i) = alteVar(i)
next i
versucht, und das scheint ja auch zu klappen.
Jedoch kann ich die neue Variable dann nichtmehr als eine funktionierende DAtei abspeichern...
Da ich das gefühl habe mich nicht genug verständlich ausgedrückt zu haben, hab ich auch die sources davon hier als rar beigefügt.

danke für eure Hilfe,
Benedikt
 

Anhänge

  • sources.rar
    1,9 KB · Aufrufe: 15
So ich hab mir mal deinen Source etwas angeschaut.
Gleich mal vorweg:
Gewöhn dir bitte beim schreiben von Code an, immer etwas enzurücken und Kommentare zu verwenden. Das wird dir später, wenn die Funktionen mal etwas länger werden helfen, den Code besser lesen zu können.

Teil deines Codes:
Code:
Private Sub Command2_Click()
  c.ShowOpen
  mHandle = FreeFile
  Open c.FileName For Binary As #mHandle
  mfilesize = LOF(mHandle)
  If mfilesize = 0 Then
    Close mHandle
    MsgBox "Leere Datei...", vbInformation
    Exit Sub
  End If
  ReDim arrByte(1 To mfilesize)
  Get #mHandle, , arrByte
  Close mHandle
  arraySize = myfilesize ' hier ist der entscheidende Fehler
End Sub
Tip: benutze bei Visual Basic immer am Anfang in der allgemeinen Deklaration von Global-Variablen die Anweisung "Option Explicit".
Dann passieren solche Fehler garnicht.
Außerdem empfehle ich dir, setz dich mal etwas mit dem Debugger von VB auseinander, denn dabei lässt sich solch ein Fehler recht schnell finden.

Ich habe mir erlaubt deinen Code etwas zu verändern, schau es dir einfach mal an.
Übrigens ich weiß nicht wie gut VB in Speicher-Dingen ist, aber in C würde sowas viel eleganter gehen mit Zeigern und Speichervergleich.


Gruss Homer
 

Anhänge

  • sources.zip
    2,4 KB · Aufrufe: 16
Zurück