"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Frage zu Visual Basic und binärem Dateizugriff

COLOSSUS 23.06.2003 - 17:50 535 7
Posts

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12071
Also, es geht darum, dem Anfang einer binären Datei Daten voranzustellen, bzw. allen Bytes einer Datei einen gewissen Wert modulo 255 hinzuzuaddieren. Wie aber lese ich eine ganze Datei in einen String respektive in eine (Rich)Textbox (sollte ja die gleiche Operation bedingen). Mit Open [datei] for binary as FreeFile sollte die Datei im richtigen Modus geöffnet werden, aber wie lese ich ihren ganzen Inhalt, so wie in PHP z.B. mit readfile()?

Wäre wirklich supertoll, wenn mir wer helfen könnte.

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12071
Niemand eine Idee?

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Binaries würde ich nicht in Textboxen bearbeiten (geht vermutlich auch gar nicht), aber zu VB kann ich dir leider nix sagen.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
Zitat von that
Binaries würde ich nicht in Textboxen bearbeiten (geht vermutlich auch gar nicht), aber zu VB kann ich dir leider nix sagen.
ack, wenn es wirklich eine binärdatei ist, eignet sie sich wohl auch schlecht für die anzeige.
was willst du durchs byteweise addieren ohne überlauf erreichen ?

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12071
Keine der dort aufgezählten Methoden funktioniert wirklich :(

Entweder kriege ich einen String der Länge 0 zurück, oder lediglich die erste Zeile der Datei. Mit dem FileSystemObject habe ich es mittlerweile geschafft, eine Datei vollständig einzulesen, allerdings sieht mir der Rückgabewert der Methode nicht nach dem wirklichen Inhalt der Datei aus. O_o

Ich will eigentlich nur einen kleinen Verschlüsselungsalgorithmus schreiben, mehr nicht.

JC

Administrator
Disruptor
Avatar
Registered: Feb 2001
Location: Katratzi
Posts: 9067
@COLOSSUS
Code:
[i]Neues Projekt, Textbox und Commandbutton zeichnen, folgenden Code einfügen:[/i]

    Dim intFreeFileNum As Integer
    Dim strBuffer As String

    intFreeFileNum = FreeFile
    Open "C:\test.dat" For Binary Access Read As #intFreeFileNum
    strBuffer = Space(LOF(intFreeFileNum))
    Get #intFreeFileNum, , strBuffer
    Close #intFreeFileNum
    Text1.Text = strBuffer
So bekommst du den Inhalt in eine Textbox. Für jedwede weitere Information rate ich die Get-Anweisung in der MSDN-Library näher zu studieren.

//edit
Hier findet sich ein nettes Beispiel, wo eine Datei Byte für Byte eingelesen und verschlüsselt wird.
Bearbeitet von JC am 24.06.2003, 17:11 (supplementary info added)

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12071
Zitat von JC
@COLOSSUS
Code:
[i]Neues Projekt, Textbox und Commandbutton zeichnen, folgenden Code einfügen:[/i]

    Dim intFreeFileNum As Integer
    Dim strBuffer As String

    intFreeFileNum = FreeFile
    Open "C:\test.dat" For Binary Access Read As #intFreeFileNum
    strBuffer = Space(LOF(intFreeFileNum))
    Get #intFreeFileNum, , strBuffer
    Close #intFreeFileNum
    Text1.Text = strBuffer
So bekommst du den Inhalt in eine Textbox. Für jedwede weitere Information rate ich die Get-Anweisung in der MSDN-Library näher zu studieren.

//edit
Hier findet sich ein nettes Beispiel, wo eine Datei Byte für Byte eingelesen und verschlüsselt wird.

Danke! Endlich eine Methode die funktioniert :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz