Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 17.05.2006, 19:19 Titel: Variablen in eine Datei speichen |
|
|
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 |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 17.05.2006, 19:23 Titel: |
|
|
so:
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
 |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 17.05.2006, 19:26 Titel: |
|
|
Das will ich aber meinen
@otti: Ich würde her PRINT #1 empfehlen, da dann keine Anführungszeichen um den String stehen
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 17.05.2006, 19:28 Titel: |
|
|
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 17.05.2006, 19:31 Titel: |
|
|
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.
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 17.05.2006, 19:41 Titel: |
|
|
Ok. Danke. Jetzt weiß ichs  _________________ Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an) |
|
Nach oben |
|
 |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 17.05.2006, 19:55 Titel: |
|
|
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 |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 17.05.2006, 21:13 Titel: |
|
|
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
 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 17.05.2006, 21:19 Titel: |
|
|
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 |
|
 |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 17.05.2006, 21:21 Titel: |
|
|
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
1) Wie macht man das?
(Ich will eine Verwaltung programmieren) _________________ Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an) |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 17.05.2006, 21:26 Titel: |
|
|
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 |
|
 |
Charly2
Anmeldungsdatum: 28.11.2004 Beiträge: 29 Wohnort: Mittelfranken
|
Verfasst am: 18.05.2006, 09:23 Titel: |
|
|
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 |
|
 |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 18.05.2006, 14:06 Titel: |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.05.2006, 14:16 Titel: |
|
|
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 |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 18.05.2006, 18:52 Titel: |
|
|
was mached shared in dim shared bla$(1000) ? |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.05.2006, 18:56 Titel: |
|
|
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 |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 18.05.2006, 18:59 Titel: |
|
|
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 |
|
 |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 21.05.2006, 18:04 Titel: |
|
|
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 |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 21.05.2006, 19:10 Titel: |
|
|
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
 |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 21.05.2006, 19:26 Titel: |
|
|
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
@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 |
|
 |
|