Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

selbstmodifizierender code

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
REZK



Anmeldungsdatum: 28.10.2004
Beiträge: 109
Wohnort: Stuttgart

BeitragVerfasst am: 02.11.2004, 20:58    Titel: selbstmodifizierender code Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 02.11.2004, 21:15    Titel: Antworten mit Zitat

zu 1: Ganz einfach: Verwende ASM in QB! lächeln


zu 2: z.B. so:


Code:
DIM Array (200)

open "Save.txt" for output as #1
 for a=0 to 199
  write #1, a, Array(a)
 next
close #1


natürlich musst du das "a" nicht mitspeichern, wenn du exakt die gleiche Methode zum erneuten Einlesen des Arrays benutzt.

Grüßle,
Mecki
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 02.11.2004, 21:34    Titel: Antworten mit Zitat

grinsen da hat wohl jemand lang kein QB mehr gecodet!

muss heißen a = 0 to 200 wenn du alle haben willst zwinkern


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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 02.11.2004, 22:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz