.exe in welchen Datentyp laden?

lorcan

Grünschnabel
Hallo,

ich möchte eine .exe datei in einer Variablen speichern, so dass sie mir hinterher zur Verfügung steht. Zum testen hab ich den Code hier probioert, der allerdings nicht funktioniert.

Es würde mir auch sehr weiterhelfen wenn ich wüsste wie ich eine .exe-datei in einen string umwandle..

hier erstmal mein Versuch:

Private Sub Command1_Click()
Dim hilf As Variant
Dim arraynr As Integer
arraynr = 1
Open "c:\test.exe" For Input As #1
Open "c:\test2.exe" For Output As #2

While Not EOF(1) 'Schleife bis Dateiende erreicht
arraynr = arraynr + 1
Input #1, hilf(arraynr) 'Einlesen
Print #2, hilf(arraynr)
Wend

Close #1
Close #2
End Sub

Ich bin noch Anfänger in VB deshalb für jede Hilfe besonders dankbar...

Vielen Dank und Grüße

Lorcan
 
Hallo,

tut mir leid, das Ganze war etwas unverständlich formuliert.

Ersteinmal würde es mich interessieren wie ich den inhalt einer .exe-Datei in einer Variablen unterbringe. Müsste diese dann ein String sein?

Und die andere Frage ist ob man eine .exe in einen String umwandeln kann. Eine .exe besteht doch aus binärdaten? Also open as binary?

Ich möchte eben diese Datei über winsock versenden. Dafür müsste ich sie jedoch in eine Variable laden und evtl sogar noch stückeln bzw. bearbeiten können.
 
Hallo..

Ein String kann ein paar tausend Zeichen speichern (Leider auch nicht alles), also wenn du es regelmäßig splittest (teilst), ginge es schon.

ich habe es auch schon einmal versucht, habe aber nie herausgefunden, wie man Daten per Winsock versendet, habe aber schon einmal ein Beispiel gefunden, suche einfach mal in Google "VB Winsock Datei".

mfg

Philipp9494
 
Eine EXE-Datei kannst du nur als Binary einlesen, sonst übernimmst du die Daten nicht. Mal ein Beispielcode:
Visual Basic:
Private Sub Command1_Click()
 Dim sInhalt As String, fFile As Integer

 'Das Einlesen
 fFile = FreeFile
 sInhalt = Space(FileLen("c:\test.exe"))
 Open "c:\test.exe" For Binary As fFile
  Get #fFile, , sInhalt 'Einlesen
 Close fFile

 'Das Schreiben:
 fFile = FreeFile
 Open "c:\test2.exe" For Binary As fFile
  Put #fFile, , sInhalt 'Schreiben
 Close fFile
End Sub
Wieviel du in eine Stringvariable reinbekommst, hängt von deinem Hauptspeicher ab, wie Philipp9494 aber schon gesagt hat ist es besser, wenn du die Datei z.B. in 64k-Schritten einliest und schreibst.


Der Doc!
 
Zurück