Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
REZK
Anmeldungsdatum: 28.10.2004 Beiträge: 109 Wohnort: Stuttgart
|
Verfasst am: 02.11.2004, 21:58 Titel: selbstmodifizierender code |
|
|
Ich habe folgende 2 Fragen:
1.) Wie erstelle ich ein Programm in QB, das sich (als EXE kompiliert) während der Laufzeit verändert, d.h wie kann ich etwas an dem sich im Arbeitsspeicher befindlichen Code verändern? (In ASM ging das, indem ich die Adresse des zu verändernden Codes in di schrieb und stosb ausführte)
Ist dies in QB überhaupt möglich?
Wäre es auch möglich die Exe Datei direkt oder indirekt durch das Programm zu ändern???
2.)Wie sichere ich ein Array in eine Datei? Gibt es da irgendeine fertige Funktion?
Danke im voraus _________________ Meine sämtlichen QB Projekte findet ihr hier |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 02.11.2004, 22:34 Titel: |
|
|
da hat wohl jemand lang kein QB mehr gecodet!
muss heißen a = 0 to 200 wenn du alle haben willst
ich würde anstatt write#1, a, array(a) eher print#1, array(a) schreiben, da der Index nachher beim einlesen wahrscheinlich eher stören wird... _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 02.11.2004, 23:08 Titel: |
|
|
Früher in GW-BASIC klappte dies auch noch unter Verwendung von CHAIN MERGE. Beispiel, dass ich früher einmal im Usenet unter comp.lang.basic.misc veröffentlicht habe:
Code: | 10 LINE INPUT "Expression: ";E$
20 OPEN ENVIRON$("TEMP")+"\~mrg.bas" FOR OUTPUT AS 1
30 PRINT#1,"60 r!=";E$
40 CLOSE 1
50 CHAIN MERGE ENVIRON$("TEMP")+"\~mrg", 60, ALL
60 R!=12+3*7 <= pay attention to this modified line!
70 KILL ENVIRON$("TEMP")+"\~mrg.bas"
80 PRINT "Result:";R! |
Ist ein primitiver Taschenrechner, wo man per INPUT einen Ausdruck eingibt. Dieser wird zur Laufzeit des Programms in Zeile 60 eingesetzt und dann ausgeführt (=berechnet) und Ergebnis ausgegeben. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|