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:

Variablen in eine Datei speichen
Gehe zu Seite 1, 2  Weiter
 
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
Bad_King
gesperrt


Anmeldungsdatum: 15.04.2006
Beiträge: 455
Wohnort: nähe Stuttgart

BeitragVerfasst am: 17.05.2006, 19:19    Titel: Variablen in eine Datei speichen Antworten mit Zitat

Hallo,

wie kann man mehrere String-Variablen hintereinander in eine Datei abspeichen?
Ich weiß zwar wie man da einen String abspeichen kann, aber wenn man dann nochmal was in der Datei abspeichert, ist dann das alte weg, oder?
Wie kann ich es jetzt machen dass die Daten der reihe nach in einer Datei abgespeichert werden?
_________________
Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
otti



Anmeldungsdatum: 28.02.2005
Beiträge: 112
Wohnort: Wildberg

BeitragVerfasst am: 17.05.2006, 19:23    Titel: Antworten mit Zitat

so: peinlich
Code:

input file$
open file$ for output as #1
write #1,var1$,var2$,var3$
close #1


so kannst mehrer variablen auf einmal einschreiben

grüße otti

PS: da steht doch was in der QBMONFAQ?
_________________
Gute Musik lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 17.05.2006, 19:26    Titel: Antworten mit Zitat

Das will ich aber meinen peinlich

@otti: Ich würde her PRINT #1 empfehlen, da dann keine Anführungszeichen um den String stehen lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Bad_King
gesperrt


Anmeldungsdatum: 15.04.2006
Beiträge: 455
Wohnort: nähe Stuttgart

BeitragVerfasst am: 17.05.2006, 19:28    Titel: Antworten mit Zitat

Ja, ich weiß. Aber wenn man z.B erst die eine Variable abspeichen muss
und z.B. nach einem Programmneustart die Andere Variable reinschreiben muss (ohne dass man die Variablen gleichzeitig abspeichert).
_________________
Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 17.05.2006, 19:31    Titel: Antworten mit Zitat

Dann öffne die Datei ffor append:
Code:

OPEN Datei$ FOR APPEND AS #1
PRINT #1, var1$
CLOSE #1

Dann wird der Inhalt einfach an die bereits existierende Datei angehängt. lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Bad_King
gesperrt


Anmeldungsdatum: 15.04.2006
Beiträge: 455
Wohnort: nähe Stuttgart

BeitragVerfasst am: 17.05.2006, 19:41    Titel: Antworten mit Zitat

Ok. Danke. Jetzt weiß ichs grinsen
_________________
Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Bad_King
gesperrt


Anmeldungsdatum: 15.04.2006
Beiträge: 455
Wohnort: nähe Stuttgart

BeitragVerfasst am: 17.05.2006, 19:55    Titel: Antworten mit Zitat

Und wie kann man die Daten danach wieder auslesen? (Also nicht alle auf einmal, sondern die einzelnen daten, die man ja eingegeben hat.

Ach und noch was.
Wie kann ich mit eingegebener Nummer, einen String-Array
auslesen (hat jetzt nix mit dem Thema zu tun), ohne Case zu verwenden.
Warum gehts nicht so:

Code:

dim daten$(1000)

input "Bitte eine Nummer eingeben: ", nummer
print "Die Variable zur Nummer: ", daten$(nummer)

_________________
Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
otti



Anmeldungsdatum: 28.02.2005
Beiträge: 112
Wohnort: Wildberg

BeitragVerfasst am: 17.05.2006, 21:13    Titel: Antworten mit Zitat

zu 1)
du musst halt alle daten auslesen und in variablen oder ein feld speichern und dann nur die gesuchten anzeigen.

zu 2)
ich seh kein grund warums net klappen sollte,und: wo willst du da denn select case verwenden?


grüße otti
_________________
Gute Musik lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
MisterD



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

BeitragVerfasst am: 17.05.2006, 21:19    Titel: Antworten mit Zitat

eventuell sind 1000 zu viel für qbasic.. aber ansonsten funktioniert das sicherlich.
_________________
"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
Bad_King
gesperrt


Anmeldungsdatum: 15.04.2006
Beiträge: 455
Wohnort: nähe Stuttgart

BeitragVerfasst am: 17.05.2006, 21:21    Titel: Antworten mit Zitat

2) Mit Select Case währe es so:

Code:


dim daten$(1000)

select case
case 1
   daten$(1) = "Hallo, dies ist 1"
case 2
  daten$(2) = "Hallo, dies ist 2"
case 3
  daten$(3) = "3"

.....


Mit select case währe es zu lang bei 1000 Daten missbilligen

1) Wie macht man das?
(Ich will eine Verwaltung programmieren)
_________________
Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
MisterD



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

BeitragVerfasst am: 17.05.2006, 21:26    Titel: Antworten mit Zitat

eventuell solltest du nummer vorher als integer deklarieren:
Code:
dim bla$(10) as string
do
  input "Welchen Eintrag möchten sie ändern";nummer%
  print "Der aktuelle Wert ist:"
  print bla$(nummer%)
  input "Neuer Wert (nichts = nicht ändern, 'ende!' = beenden)";wert$
  select case wert$
  case ""
  case "ende!": exit do
  case else: bla$(nummer%)=wert$
loop
end

das sollte funktionieren...
_________________
"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
Charly2



Anmeldungsdatum: 28.11.2004
Beiträge: 29
Wohnort: Mittelfranken

BeitragVerfasst am: 18.05.2006, 09:23    Titel: Antworten mit Zitat

Bei großen Datenmengen ist meiner Meinung nach eine Random-Datei
die beste Lösung.
Hier kann man die Daten mit PUT und Angabe einer Satz-Nr. speichern
und mit GET bei direkten Zugriff auf den Datensatz wieder einlesen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bad_King
gesperrt


Anmeldungsdatum: 15.04.2006
Beiträge: 455
Wohnort: nähe Stuttgart

BeitragVerfasst am: 18.05.2006, 14:06    Titel: Antworten mit Zitat

Es muss ein Array von 1000 Daten sein. (Das geht auch)

Diese Verwaltung oder Datenbank oder was auch immer ist in einem SUB.
Und der Array ist auserhalb des SUBs, also im Hauptprogramm, deklariert (oder wie man das nennt).
Nun bekomme ich eine Fehlermeldung. Wenn ich den Array im SUB deklariere gehts zwar, aber ich will den SUB im Hauptprogramm deklarieren, weil andere SUBs auf den Array zugraeifen können sollen.
_________________
Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
MisterD



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

BeitragVerfasst am: 18.05.2006, 14:16    Titel: Antworten mit Zitat

DIM SHARED bla$(1000)?
_________________
"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
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 18.05.2006, 18:52    Titel: Antworten mit Zitat

was mached shared in dim shared bla$(1000) ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
MisterD



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

BeitragVerfasst am: 18.05.2006, 18:56    Titel: Antworten mit Zitat

dim shared im hauptprogramm macht die deklarierte variable global gültig, die existiert dann überall im programm. dafür is dann auch der name eben überall belegt weshalb globale variablen besser nur in maßen zu benutzen sind.
_________________
"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
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 18.05.2006, 18:59    Titel: Antworten mit Zitat

hab meine Frage schon selbst mit ja beantwortet

"also kann man die variable dann auch in subs benutzen ohne spezifisch darauf hinzuweisen, oder als rueckgabewert in einem sub wenn eine function den zwech nicht erfuellt?"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Bad_King
gesperrt


Anmeldungsdatum: 15.04.2006
Beiträge: 455
Wohnort: nähe Stuttgart

BeitragVerfasst am: 21.05.2006, 18:04    Titel: Antworten mit Zitat

Wie kann man diese gespeicherten Daten während dem Speichern mit einer ID versehen, sodass der Anwender dann eine ID eingeben muss, und dann der passende Eintrag ausgelesen oder ausgegeben wird?
_________________
Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
otti



Anmeldungsdatum: 28.02.2005
Beiträge: 112
Wohnort: Wildberg

BeitragVerfasst am: 21.05.2006, 19:10    Titel: Antworten mit Zitat

wenn die ID nur ne zahl sein muss(INTEGER), dann mach seinfach so:

Code:


input "ID:";id%
open "daten.txt" for input as #1

do while i=id%+1
line input #1,data$
wend

print "Eintrag zu ID : ",data$
sleep




ich weis jetzt nich ob der code funktioniert ,kann ihn grad nich austesten...

grüße otti
_________________
Gute Musik lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 21.05.2006, 19:26    Titel: Antworten mit Zitat

Ich denke mal er funktioniert nicht, da id% niemals gleich id + 1 sein kann...
Bei C++ mit Postfix-Operatoren sieht es da schon anders aus, aber egal zwinkern

@king01: Speicher doch die ID gleich mit ab; somit entält eine Zeile in deiner Datendatei
dann immer genau zwei Einträge; der erste ist der Wert der Variablen, der zweite die ID.
Beispielcode:
Code:

CLS
INPUT "Geben Sie die ID ein: "; id%

f = FREEFILE
OPEN "c:\datei.dat" FOR INPUT AS #f
DO UNTIL EOF(f)
 INPUT #f, Variable%, VarID%
 IF VarID% = ID% THEN PRINT "ID gefunden: "; Variable%
LOOP
CLOSE #f


Ist nur die Grundidee, für einen anderen Datentyp musst du es halt noch modifizieren...

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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