Update Script

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Bobo2040

Betreff: Update Script

BeitragMi, Jul 23, 2014 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu Smile
Ich würde gerne ein "Update" Programm schreiben, welches mein Spiel falls
ein Update vorhanden ist downloadet..Problem ist nun aber wenn ich eine .exe Datei
downloade und diese Zeile für Zeile auslese und anschließend als .exe Abspeichere funktioniert das Programm nicht :/ das liegt denke daran weil er unteranderem auch nicht lesbare Zeichen ausliest
die dann für Blitzbasic keinen Sinn ergeben und es ein anderes Zeichen dafür einsetzt (Nur eine Vermutung).

Also nun meine Frage Smile Wie kann ich mit Blitzbasic eine Datei im ganzen downloaden ohne sie Zeile für Zeile auszulesen?

Ist das überhaupt möglich? Oder muss ich da zu einer anderen Sprache für den Updater wechseln?

Mfg
bitro.de

Eingeproggt

BeitragMi, Jul 23, 2014 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach Byte für Byte arbeiten, dann sollte es klappen.
Siehe dazu ReadByte und WriteByte.

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

count-doku

BeitragMi, Jul 23, 2014 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

um Eingeproggt noch zu ergänzen:
Eventuell solltest du dir auch WriteBytes und ReadBytes ansehen,
damit kannst du immer gleich ganze ByteBlöcke übertragen, dass geht schneller als jedes Byte einzeln.

Das ganze könnte dann in Pseudocode so aussehen:
BlitzBasic: [AUSKLAPPEN]
updatefile = ReadFile(fileName)
bank = CreateBank(FileSize)
ReadBytes(bank,updatefile,0,FileSize)

i=0
Repeat
Bytes2Write = FileSize-i ; Rest berechnen
If Bytes2Write > 5000 Then Bytes2Write=5000 ; Speed begrenzen
WriteBytes(bank,net_stream,i,Bytes2Write)
i=i+Bytes2Write
Until i=>FileSize

FreeBank bank
CloseFile updatefile


Bzw. auf der Gegenseite dann halt:
BlitzBasic: [AUSKLAPPEN]
bank = CreateBank(FileSize)
i=0
While i < FileSize
If Eof(fStream) <> 0 Then RuntimeError "EOF"
Bytes2Read = ReadAvail(net_stream)
If Bytes2Read Then
If i - Bytes2Read - FileSize < 0 Then Bytes2Read = cSize - sSize
ReadBytes(bank,net_stream,i,Bytes2Read)
i = i + Bytes2Read
EndIf
Wend
file=WriteFile(fileName)
WriteBytes(bank,file,0,FileSize)


lg,
count-doku

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group