Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 30.01.2006, 22:03 Titel: speichern |
|
|
wie kann ich alle verwendeten variablen (mit einem befehl ?) in eine datei speichern.
es werden unter anderem die varaiblen wo%, ene% und waf$ benutzt.
und wie kann ich sie laden ?
und wie kann ich das programm zu einem abschnitt springen lassen der in der datei gespeichet wurde (textadventure)?
also z.b. der raum wird in einer variable gespeichert. nun soll das programm sofort zu diesem raum springen wenn die datei geladen wurde.
antworten bitte mit ' kommentare pro programmzeile (wenn es nicht zu umständlich ist) da ich bisher das mit dem laden und speichern nicht ganz gecheckt habe (verschiedene hilfeseiten)
vielen dank im vorraus |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 30.01.2006, 22:23 Titel: |
|
|
Was an deiner Frage wird hier
http://forum.qbasic.at/viewtopic.php?t=2125
nicht beantwortet?
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 30.01.2006, 22:39 Titel: |
|
|
nicht wirklich. nun ich bräcuhte es detailrweicher erklärt |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 31.01.2006, 18:09 Titel: |
|
|
Also ich erklärs dir nochmal:
Einschreiben
Du brauchst natürlich eine Datei in die du deine Variablen einschreiben kannst:
Code: | OPEN "C:\save1.sav" FOR OUTPUT AS #1 |
Dieser Code öffnet lediglich die Datei "save1.sav" als Dateinnummer #1
und im "Reinschreib " - Modus (FOR OUTPUT).
So als nächstes musst du die Daten in die Datei einschreiben:
Code: | WRITE #1,variable1,variable2,variable3 |
Jetzt schließt du die Datei:(wird nicht gelöscht,nur als dateinummer 1 geschlossen)
Rausholen
Jatzt öffnest du wieder die Datei ,aber diesmal im "Raushol"-Modus(FOR INPUT)
Code: | OPEN "C:\save1.sav" FOR INPUT AS #1 |
Jetzt holst du dir die Variablen wieder raus:
Code: | INPUT #1 ,variable1,variable2,variable3 |
Nun hast du die Werte der Variablen wieder
Vergiss nicht die Datei zu schließen
Dass mit den Räumen machst du am besten so:
-Jeder Raum ist eine eigene SUB-Prozedur
-Alle Variablen und Datenfelder werden als "DIM SHARED" deklariert
-Wenn der Spieler das Spiel laden will, dann wird der Spielstand "rausgeholt" und dann ist variable1 zum beispiel die Nummer des Raumes:
Code: | IF eingabe$="laden" THEN 'wenn der Spieler das Spiel laden will
OPEN "C:\save1.sav" FOR INPUT AS #1 'Datei öffnn
INPUT #1,variable1%,variable2%,variable3% 'daten rausholen
CLOSE #1 'Datei schließen
SELECT CASE variable1% 'Raum abfragen
CASE "1" : CALL Raum1
CASE "2": CALL Raum2
...
END SELECT
|
Achtung der Code ist nicht erprobt!
grüße otti |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 31.01.2006, 21:23 Titel: |
|
|
vielen vielen dank. das ist mir echt eine große hilfe  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.01.2006, 21:33 Titel: |
|
|
Nein nein nein!
Wieso machen hier diverse leute immer pfadangaben wie C:\ ? Das schräkt das programm enorm ein, schon weil manche leute das schreiben in das wurzelverzeichnis gesperrt haben.
mache einfach OPen "Save1.sav" ........, dann wird die datei im aktuellen verzeichnis erstellt! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 31.01.2006, 23:29 Titel: |
|
|
@otti:
Bravo, Engelsgeduld( :applaus: )
@jojo:
1. Kein Mensch zwingt dich "C:\" in das Programm einzutippen..
(Mancheiner hat aber auch nur Lw C: und dann ??? )
2. Was, wenn er das Verzeichnis im Spiel wechselt(warum auch immer.. )
3. Eine komfortable Ordnerauswahl wäre, bei DEM Stand der Dinge,
mit Sicherheit eine Überforderung(Es ging um das WIE wird gespeichert,
nicht WO.. )
Ansonsten teile ich natürlich deine Sicherheitsbedenken.
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 01.02.2006, 01:05 Titel: |
|
|
bei freebasic sollte man zum speichern grundsätzlich
OPEN EXEPATH+"\datei.dat" FOR .....
nehmen. damit ist die datei immer in dem verzeichnis wo auch die exe ist, das problem mit einfach nur OPEN "datei.dat" ist halt, dass das vom ausführungspfad abhängig ist und das ist nicht immer selbe verzeichnis wie die exe (wer mal ne verknüpfung erstellt hat: da gibts die Option "Ausführen in" und das ist das, was dann als anfangs-CURDIR im programm landet. deswegen ist die EXEPATH+"datei.dat"-Version am besten _________________ "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 |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 01.02.2006, 16:56 Titel: |
|
|
@Jojo: Ich find einfach leichter weil ich dann genau weiß wo alle sachen,die ich irgendwann in QB abgespeichert hab sind: In C:\
Achja : auf dem pc mit dem ich programmier gibts im verzeichnis c:\ ungefähr 30 .txt dateien von mit
grüße otti |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 01.02.2006, 17:30 Titel: |
|
|
Servus!
Also, ich bin ja auch so ne faule Socke, und wenn ich mal schnell nen Logfile speichern soll hab ich da meißtens auch meine "D:\bla.txt" da. Allerdings speicher ich das schonmal net auf C:\ (...Dateien im Stammverzeichnis von C leben bei mir nicht lang, das versprech ich Dir *g*), und ich hab mir jetzt auch das exepath-en angewöhnt, weil mir das Problem des curdir != exepath auch schon mehr als einmal begegnet ist.
Alternativ hau dir mit nem "subst B: C:\Programme\FreeBasic" ein Pseudolaufwerk in den Verzeichnissbaum, dann sind die Daten am richtigen Platz, aber Du kannst trotzdem das kurze "B:\meinedaten.txt" verwenden.
Gruß
Lutz Ifer
ps: im zweifelsfall ist exepath + "\datei.dat" die beste Lösung
edit: jaaaaaaaaa.... ytwinky hat recht...
Zuletzt bearbeitet von Lutz Ifer am 01.02.2006, 18:53, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 01.02.2006, 18:13 Titel: |
|
|
Lutz Ifer hat Folgendes geschrieben: | Alternativ hau dir mit nem "subst C:\Programme\FreeBasic B:" ein Pseudolaufwerk in den Verzeichnissbaum | .. bist du sicher, daß deine Syntax richtig ist? Denn
Subst /? hat Folgendes geschrieben: | C:\>Subst /?
Weist einem Pfad eine Laufwerkbezeichnung zu.
SUBST [Laufwerk1: [Laufwerk2:]Pfad]
SUBST Laufwerk1: /D
Laufwerk1: Laufwerkbezeichnung, die dem Pfad zugewiesen werden soll.
[Laufwerk2:]Pfad Laufwerk und Pfad, die durch Laufwerk1: angesprochen
werden sollen.
/D Hebt die Zuordnung für das (virtuelle) Laufwerk1 wieder auf.
SUBST ohne Parameter zeigt die mit SUBST erstellten, virtuellen Laufwerke an. | ..dann klappt' auch mit dem Erstellen von Laufwerk B:
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|