If ReadFile(0,"1.exe")
length=Lof()
*MemoryID=AllocateMemory(length)
bytes=ReadData(*MemoryID,length)
CloseFile(0)
EndIf
If CreateFile(0,"2.exe")
WriteData(*MemoryID,length)
CloseFile(0)
EndIf
So vielleicht? Ohne PeekS, denn als Rückgabe bekommst du einen String und der endet mit einem 0-Byte.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Wie Daniel bereits sagte, wollte nur hinzufügen, das jeder Allocierte Speicher zu prüfen ist !!!!
Ansonsten Invalid Memory Access
If *MemorID
; bla blub
endif
Nach Gebrauch freigeben halte ich für Sinnvoll, ist aber nicht unbedingt
erforderlich.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
ts-soft hat geschrieben:Wie Daniel bereits sagte, wollte nur hinzufügen, das jeder Allocierte Speicher zu prüfen ist !!!!
Ansonsten Invalid Memory Access
If *MemorID
; bla blub
endif
Stimmt, aber wenn PeekS schon klappt, dann dürfte dort eigentlich nicht der Fehler liegen. Es gehört sich aber das zu prüfen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Hat es nen besonderen Grund, das die Routine alles Byteweise macht, weil so
wie es da genutzt wird, wäre ReadData und WriteData ein vielfaches
schneller mit demselben Ergebnis.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Hat es nen besonderen Grund, das die Routine alles Byteweise macht, weil so
wie es da genutzt wird, wäre ReadData und WriteData ein vielfaches
schneller mit demselben Ergebnis.
Ich wusste, das du darauf antworten würdest.
>>If *Buffer ; habs auch nach langer Zeit nicht wieder angesehen
Sicher ist das Andere schneller. Vielleicht will man ja auch einzelne Bytes (Buchstaben, Zahlen) ändern. Dann ist es auch im Speicher praktisch.
Ist ja auch nur ein weiterer Tip. An einem Wettbewerb will ich mich absolut nicht beteiligen