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:

eingaben speichern in Data? Geht das??

 
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
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 02.01.2005, 18:47    Titel: eingaben speichern in Data? Geht das?? Antworten mit Zitat

Hallo an Euch!!!

Ich möchte gerne so eine art CD Verwaltung machen, nach dem Namen und Ausgabe der CD fragen, und dann nach dem Inhalt. Das soll gespeichert werden, und bei jedem Start sollte das das Prog noch wissen.
In der online hilfe hab ich bei Data nicht das richtige gefunden...
Wie geht es, dass sich das Programm die Eingabe merkt, und als Data anlegt?
Mit:
? "Wie ist der Name der CD?"
input nameuausg$
data nameuausg$

geht es nicht... irgendwie verstehe ich das es nicht gehen kann, weil ja nameuausg$ erst mal gespeichert werden muß, und sich nicht jedesmal ändert, oder weil auch noch was dazukommt... wie macht man das wieder? Wie heißt das Schlüsselwort dazu??
Ich seh schon wieder den Wald vor lauter Bäumen nicht...
Tut mir Leid, wenn ich Euch mit solchen Fragen quäle....
Aber ich danke Euch schon jetzt für Eure Hilfe!
Alles Gute
und viele Grüße
Helli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 02.01.2005, 19:45    Titel: Antworten mit Zitat

Hi Helli lächeln

Na, also ich würde das nicht mit DATA lösen, weil du dann die BAS-Datei selbst umschreiben lassen müsstest.
Speicher doch einfach in eine externe Datei:

Code:
'Deine Bisherigen Eingaben aus der Datei einlesen:
DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for input as #1
do until eof(1)
  nr = nr +1
  input #1, TrackName$(nr), TrackAutor$(nr)
loop
close #1

'Damit liest du die Daten aus der Datei in ein Array.


'Und so schreibst du sie wieder rein (speichern)
'TrackAnzahl festlegen nicht vergessen

DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for output as #1
For Nr = 1 TO TrackAnzahl
 Write #1, TrackName$(nr), TrackAutor$(nr)
Next
close #1


Der Text-Dateiinhalt sieht dann so aus, dass es 2 Spalten gibt, diese werden durch ein Komma getrennt und der Inhalt der "Spalten" steht in Anführungszeichen. Beispiel:
Code:
"BaBaBanküberfall", "Erste Allgemeine Verunsicherung"
"Flugzeug (Liebste Mein)", "Erste Allgemeine Verunsicherung"
"Blinded by the night", "unbekannt (sagen wir mal ;-) )"


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
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 03.01.2005, 19:29    Titel: Antworten mit Zitat

Hallo Mecki!!!

Ich habe gleich ausprobiert (ehrlich gesagt, nur abgeschrieben), was Du mir gezeigt hast!!
Aber er sucht die Datei, die er OPEN soll...
Wie lege ich so eine Datei an, die leer ist, aber in der alles rein kommen soll??
ICh dachte das ist schon OPEN???
Du hast die Endung .txt geschrieben, wo ist diese "Index.txt" Datei??
Das ist ja die Endung die der MS Editor hat??
Jetzt hast Du mich aber völlig verwirrt....Muß ich diese "Index.txt" auch mit DIM anlegen?
Als ich Deine Antwort zum ersten mal gelesen habe, hab ich mich gefreut, dass ich einmal alles auf Anhieb verstanden habe, da bin ich aber schnell aufgewacht... verwundert
Tut mir echt Leid, dass ich es (noch) nicht verstehe!!!
Ich danke Dir jedenfalls für Deine Geduld mit meinen kleinen, großen Problemen!!!
Liebe Grüße
Helli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 03.01.2005, 19:36    Titel: Antworten mit Zitat

Hi Helli

Ja klar, die gibt es noch nicht. Erstellen tust du eine Datei erst mit OPEN... FOR OUTPUT

Daher erstellst du am Besten einmal die Index.TXT mit 0 Bytes und fügst dann entweder manuell eine Zeile mit den "" usw ein, wie oben beschrieben, oder du lässt mit einem Programm die Variabeln speichern.

Grüßle,
Helli

PS: Vielleicht musst du, um die Dateiendung unter Windows festzulegen erst noch in den Ordneroptionen die blöde Option abwählen, dass Windows bei "bekannten Dateitypen" die Endungen ausblendet.
_________________
» 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
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 04.01.2005, 18:31    Titel: Antworten mit Zitat

Hallo Mecki!!

Seit Gestern versuche ich weiterzukommen....
Alles was ich bekomme, ist das Meckern von QB....
Ich habe open "test.txt" for output as #1 angelegt.
Aber er sagt immer, er findet die Datei nicht....
In der Onlinehilfe steht auch keine andere Syntax...

Du schreibst, ich soll sie mit 0 Bites erstellen, wie geht denn das wieder??
Und was soll ich einfügen, und wohin??? Meinst Du die ""??
Ich dachte, diese Datei mit der Zeile (open "test.txt" for output as #1) ist schon mit 0 Bites erstellt???
Oh Mecki, Du glaubst gar nicht wie schwierig das ist, bis im Gehirn endlich mal die Neuralverbindungen hergestellt sind....Ich meine das schöne "AHA Erlebnis!!! zwinkern !!!!
Kannst Du mir weiterhelfen???
Vielen Dank
und liebe Grüße
Helli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 04.01.2005, 19:12    Titel: Antworten mit Zitat

Hi Helli lächeln

Also wenn du einfach schreibst
Code:
OPEN "Text.txt" FOR OUTPUT AS #1
CLOSE #1
muss die Datei erstellt werden - in der Verzeichnis, das gerade aktiv ist.
Vielleicht hast du das CLOSE vergessen?

Naja, 0 Bytes heißt einfach nur: ohne Inhalt lächeln

Jetzt kannst du die Datei mit dem Code von mir mit OPEN ... FOR INPUT einlesen und Zeile für Zeile auslesen. => die Datei hat 0 Zeilen => in der Variabeln is nix drin.

Aber: er meckert nicht mehr rum beim ersten OPEN.

Anschließend lässt du den Benutzer ein paar Variabeln eingeben und diese Speicherst du dann zur Datei hinzu mit der Methode, wie ich es weiter oben schon geschrieben habe (das Code-Beispiel)

Beim nächsten Start des Progamms ist dann beim OPEN .. FOR INPUT bereits eine Zeile einlesbar.

Eine andere Möglichkeit wäre noch, für den ersten Start manuell die Datei mit z.B. Notepad zu öffnen und eine Zeile selbst hineinzuschreiben, damit das Prorgamm was zum futtern hat lächeln
Da wäre der Dateiinhalt dann beispielsweise
Code:
"BaBaBanküberfall", "Erste Allgemeine Verunsicherung"
"Flugzeug (Liebste Mein)", "Erste Allgemeine Verunsicherung"
"Blinded by the night", "unbekannt (sagen wir mal ;-) )"

Dies würde aber auch drinstehen, wenn du schreibst

Code:
OPEN "datei.txt" FOR OUTPUT as #1
WRITE #1, "Bababanküberfall", "EAV"
WRITE #1, "Flugzeug", "EAV"
CLOSE #1

usw.
bzw. wenn du die Variabeln WRITEst.

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
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 06.01.2005, 01:49    Titel: Antworten mit Zitat

Hallo Mecki!!!

Ich weiß nicht, was ich falsch mach, es geht nicht...
Schau mal, was sagst Du? (Ich hab es so einfach wie möglich versucht, zum probieren)

cls
dim nam$ (10)
open "test.txt" for output as #1
close #1 'bringt eine neue Fehlermeldung, hab ich weggelassen
do until eof (1)
nr = nr+1
? "gib was ein"
input "name"; nam$
write #1, nam$
loop
close #1
.....
Und da meckert er immer bei der do Schleife, dass es ein falscher Dateimodus ist...wieso???
Wenn ich das do loop weglasse, dann geht es.

Hab ich das recht verstanden, dass das do loop ermöglichen soll, so oft was einzugeben wie man möchte??

Hach, ich will auch mal ein Erfolgserlebnis haben....die anderen denken nach, wie sie komplexe Probleme hinkriegen, und ich plag mich mit den Grundzügen herum.....

Tut mir leid, bin leicht frustriert mit dem Kopf durch die Mauer wollen
Ich bin schon neugierig, was ich jetzt wieder für Blödsinn gemacht hab..
Liebe Grüße
Helli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gremlin



Anmeldungsdatum: 12.12.2004
Beiträge: 142
Wohnort: Heinsberg

BeitragVerfasst am: 06.01.2005, 01:57    Titel: Antworten mit Zitat

QB-Hilfe hat Folgendes geschrieben:
Wenn das Ende einer sequentiellen Datei erreicht wurde, gibt die Funktion
EOF -1 (wahr) zurück. Benutzen Sie die EOF-Funktion, um auf Dateiende zu
prüfen, während Daten eingelesen werden. Auf diese Weise vermeiden Sie die
Fehlermeldung Eingabe nach dem Ende.


Wenn du jetzt was in die Datei reinschreibst, kannst du ja nicht ohne Daten aus der Datei dastehen.

Ich weiß leider nicht, wie du das nun handhaben willst (hab den thread jetzt nicht wirklich verfolgt). Danach versuch ich gerne weiterzuhelfen.
_________________
Tja, hier konnte ihre Werbung stehen.
Pech gehabt. zwinkern
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: 06.01.2005, 14:23    Titel: Antworten mit Zitat

Hi Helli,

na, ich hab dir doch oben schon einen Code geschrieben:
Code:
'Deine Bisherigen Eingaben aus der Datei einlesen:
DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for input as #1
do until eof(1)
  nr = nr +1
  input #1, TrackName$(nr), TrackAutor$(nr)
loop
close #1

'Damit liest du die Daten aus der Datei in ein Array.


* Stern (siehe unten die Erklärung)


'Und so schreibst du sie wieder rein (speichern)
'TrackAnzahl festlegen nicht vergessen

DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for output as #1
For Nr = 1 TO TrackAnzahl
 Write #1, TrackName$(nr), TrackAutor$(nr)
Next
close #1



Erklärung zum Stern:

An diese Stelle fügst du nun eine Routine, wo du sagst, welchen Eintrag du bearbeiten möchtest.
Vorher wurde alles aus der Datei in die beiden Arrays TrackName$() und Tracktitel$() eingelesen. Nach dem Eingeben wirds dann wieder gespeichert. Siehe Quellcode oben.
Ganz simpel kann die Editier-Routine so aussehen:
Code:
INPUT "Eintragsnummer",EditNr
?
?"Der gespeicherte Titel war: "; TrackName$(EditNr)
INPUT "Neuer Titel:", TrackName$(EditNr)
?
?"Der gespeicherte Autor war: "; , TrackAutor$(EditNr)
INPUT "Neuer Autor:", TrackAutor$(EditNr)
Natürlich kannst du noch hinzufügen, dass nichts geändert wird, wenn man einfach Enter drückt und sowas - ist ja klar.

Viel Erfolg,
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
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 08.01.2005, 19:32    Titel: Antworten mit Zitat

Hallo Mecki!!!

Vielen Dank, dass Du mir alles gemacht hast, ich komm mir echt blöd vor... Aber jetzt glaub ich, fängt es an, bei mir zu "sickern".... happy
Ich bekomme schön langsam eine Vorstellung, wie es sein müsste!!
Hoffentlich geht "der Knopf bald auf", bei mir!!! lachen
Wenn ich es vor mir sehe, kommt es mir so logisch vor, wieso kann ich es mir dann nicht vorher vorstellen???
Also, nochmals vielen Dank!!!!
Liebe Grüße
Helli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Helli M.



Anmeldungsdatum: 20.12.2004
Beiträge: 29
Wohnort: Burgenland in Österreich

BeitragVerfasst am: 08.01.2005, 19:35    Titel: @ Gremblin!! Antworten mit Zitat

Hallo Gremblin!!!

Vielen Dank für die Erklärung!!
Ich werde mich wirklich an Dich wenden, wenn ich noch Hilfe brauche, hoffentlich bereust Du Dein Hilfeangebot nicht??? zwinkern
Liebe Grüße
Helli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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