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 abspeichern
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
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 25.03.2006, 02:56    Titel: variablen abspeichern Antworten mit Zitat

hallo,

ich habe ein Programm geschrieben in dem einige Variablen (ca 20) eingegeben/bestimmt werden. (STRG, INT, REAL - alles mögliche).
Diese sollen nun in einer TXT-Datei gespeihert werden, aber das ganze soll geordnet geschehen sodass ich es hinterher drucken kann.
also in tabellarischer Form
Ich stell mir das ganze so vor:

Name : "Name$"
Menge: "Menge"
etc...

Das programm ist schon geschrieben nur das abspeichern muss ich noch realisiert werden.

Ich möchte die txt dann noch öffnen um sie zu verändern und einige variablen hinzufügen.

Das ganze sollte so einfach wie möglich gehalten werden.

Weis jemand ne einfache lösugng???

MFG Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

BeitragVerfasst am: 25.03.2006, 03:01    Titel: Antworten mit Zitat

schau dir mal die befehle OPEN und WRITE an zwinkern (und CLOSE happy )
_________________
"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
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 25.03.2006, 13:15    Titel: Antworten mit Zitat

Schau dir hier mal das erste Beispiel an, das bietet dir in etwa, was du suchst lächeln

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



Anmeldungsdatum: 12.12.2004
Beiträge: 142
Wohnort: Heinsberg

BeitragVerfasst am: 26.03.2006, 11:29    Titel: Antworten mit Zitat

Nach sooo langer Zeit melde ich mich auch nochmal

Ich würde das, wenn es ja tabellarisch sein soll, mit PRINT # oder PRINT # USING machen

Mit PRINT # USING legt man ein Format an, so in etwa wie benutzerdefinierte Zahlenformate in Excel.
Die Syntax ist (ungefähr ) Folgende:
Code:
PRINT #[Dateinummer] USING "Datenformat"; Variable 1; Variable 2; ...; Variable n


Für alle "abgetrennten" formatierten Bereiche wird dann eine Variable eingesetzt. Beispiel:
Code:
a% = 32 : b% = 106 : c% = 7
PRINT #1 USING "### ### ###"; a%; b%; c%
' sollte in der Datei, die als #1 geöffnet wurde ergeben:
_32 106 __7

Unterstriche werden so nicht angezeigt.

Hier noch, aus der QBasic-Hilfe kopiert, die Zeichen, die eine Bedeutung bei der Formatierung haben:

Code:
+---------------- HILFE: USING-Schlüsselwort Hilfebildschirm --------------¦+-+
¦------Zeichen, die benutzt werden, um einen numerischen Ausdruck zu-------    ¦
¦                                  formatieren                                 ¦
¦ #   Ziffernposition                    ¦ -     Plaziert nach der Ziffern-    ¦
¦ .   Dezimalpunktposition               ¦       position, druckt führendes    ¦
¦ ,   Links vom Dezimalpunkt plaziert,   ¦       Vorzeichen nur für negative   ¦
¦     druckt ein Komma alle drei Ziffern ¦       Zahlen                        ¦
¦ +   Position der Zahlenvorzeichen      ¦ $$    Druckt die führenden $        ¦
¦^^^^ Druckt die Zahl in Exponential-    ¦ **    Füllt die führenden Leer-     ¦
¦     Format                             ¦       zeichen mit * aus.            ¦
¦                                        ¦ **$   Verbindet ** und $            ¦
¦--Zeichen, die verwendet werden, um Zeichenkettenausdrücke zu formatieren--   ¦
¦ &   Druckt die gesamte Zeichenkette.   ¦ \  \  Druckt die ersten 'n' Zeichen,¦
¦ !   Druckt nur das erste Zeichen von   ¦       wobei n die Anzahl von Leer-  ¦
¦     der Zeichenkette                   ¦       zeichen zwischen den Schräg-  ¦
¦                                        ¦       strichen + 2 ist              ¦
¦---------------------Zeichen, die als Literale verwendet werden------------   ¦
¦ _   Druckt das folgende formatierte    ¦       Alle Zeichen, die nicht in    ¦
¦     Zeichen als Literal                ¦       dieser Tabelle sind, werden   ¦
¦                                        ¦       als Literale gedruckt         ¦


Bin ich mal wieder unübersichtlich
_________________
Tja, hier konnte ihre Werbung stehen.
Pech gehabt. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 26.03.2006, 23:15    Titel: Antworten mit Zitat

ok - das mit open etc.. hab ich ja verstanden.
aber wofür ist das using für mich relevant?
Das hab ich nicht wirklich verstanden.

Wie kann ich denn in der txt-Datei einzelne Zeilen anwählen.
also oben soll dann ne überschrift drüber
und wie gesagt soll in den folgenden Zeilen dann immer erst z.b.:
Name :Thomas
Alter :25
Größe :180cm

wobei in der Variable in der die Größe übermittelt wird nur 180 steht und cm dann dahinter gechrieben werden muss.

Die Werte (Thomas, 25, 180) muss ich aber auch wieder auslesen können.
Vielen Dank
Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gremlin



Anmeldungsdatum: 12.12.2004
Beiträge: 142
Wohnort: Heinsberg

BeitragVerfasst am: 27.03.2006, 17:47    Titel: Antworten mit Zitat

Das USING gibt das Format vor.
Anschauliches Beispiel:

# steht ja für eine Ziffernposition.

Code:
Name$ = "Thomas"
Alter% = 25
Groesse% = 180
' Den Variablen Werte zuordnen, der Übersichtlichkeit halber auf diesem Wege...

PRINT USING "Name: &   |   Alter: ### Jahre   |   Größe: ###cm"; Name$; Alter%; Groesse%
' Ausgabe mittels Formatvorgabe durch USING
' Das Speichern in eine Datei habe ich bewusst weggelassen.
' USING setzt jetzt nacheinander ein:
' & steht für "STRING ausgeben", also "Thomas"
' ### gibt das Alter aus, mit 3 möglichen Ziffern, also " 25" (Leerstelle!)
' das 2. Mal ### gibt dann die Größe aus, wie gehabt, also "180" (jetzt ohne Leerstelle!)


Ich weiß ja nicht genau, wie du die Daten abspeichern willst, aber wenn es gedruckt werden soll, dachte ich, soll es auch halbwegs vernünftig aussehen. zwinkern

EDIT: Hier noch eben ausführlich die Ausgabe:
Code:
Name: Thomas   |   Alter:  25   |   Größe: 180



EDIT 2: Habe die Wiederauslesbarkeit überlesen...
Dann würde ich das tatsächlich einfach so speichern, also ohne USING.
So, dass dann in der Datei einfach

Thomas
25
180

steht, die Formatierung würde ich dann nach dem Wiedereinlesen der Daten machen, wenn gewünscht. Aber bei USB-Druckern würde das wohl eh nichts mehr bringen, das von QB drucken zu lassen.
_________________
Tja, hier konnte ihre Werbung stehen.
Pech gehabt. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 27.03.2006, 21:37    Titel: Antworten mit Zitat

Gut -
Ich denke das brint mich schon SEHR viel weiter!

Also hab ich das richtig verstanden? - um mehrere Zeilen in die TXT zu schreiben sieht das ganze dann so aus:

PRINT #1 "ÜBERSCHRIFT"
PRINT #1 "" (für leerzeile)
PRINT #1 USING "etc..."
??

Aber eie kann ich die Werte nun aus der Datei wieder auslesen?

Vielen Dank (auch für Eure Geduld mit mir)

MFG Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gremlin



Anmeldungsdatum: 12.12.2004
Beiträge: 142
Wohnort: Heinsberg

BeitragVerfasst am: 27.03.2006, 21:45    Titel: Antworten mit Zitat

Wie gesagt, wenn du die Werte einfach rücklesen willst, ist es von Vorteil, wenn du die erst nach dem wieder Laden formatierst.

Also (Schemabeispiel):
Code:
INPUT ...
' Werte eingeben
OPEN "*.txt" ... AS #1
' Datei öffnen
PRINT #1, Wert%
' Werte in Datei speichern
CLOSE #1: OPEN "*.txt" ... AS #1
' Datei schließen und neu öffnen
INPUT #1, Wert%
' Dateien rücklesen
PRINT USING "Format..."; Wert%
' Ausgabe mit Formatierung


Wird halt so nicht funktionieren, aber ich will mir jetzt was zu Essen machen. zwinkern
_________________
Tja, hier konnte ihre Werbung stehen.
Pech gehabt. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 28.03.2006, 17:55    Titel: Antworten mit Zitat

Zum Speichern Variante 1:
Code:
Open file$ For Output As #1
Print #1, name1$
Print #1, Alter1%
Print #1, Groesse1%
Print #1, name2$
Print #1, Alter2%
Print #1, Groesse2%
CLOSE 1


Variante 2:
Code:
Open file$ For Output As #1
Print #1, name1$+","+str$(Alter1%)+","+str$(Groesse1%)
Print #1, name2$+","+str$(Alter2%)+","+str$(Groesse2%)
CLOSE 1

(diese Variante ist dann Gut, wenn die Datei in Programmen wie Notepad oder Excel weiterverarbeitet werden soll)

Zum öffnen:
Code:
Open file$ For Input As #1
Input #1, name1$
Input #1, Alter1%
Input #1, Groesse1%
Input #1, name2$
Input #1, Alter2%
Input #1, Groesse2%
CLOSE 1
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 29.03.2006, 23:31    Titel: Antworten mit Zitat

Hi,

ok - hat soweit alles keklappt!!

aber gibts für strings nicht auch irgendwelche platzhalter??
wenn ich nur "&" im in der USING-Anweisung benutze verschieben sich die nachfolgenden Zeichen was in Tabellenform sehr schlecht ist.
Mit dem Locate befehl kann ich da wohl nicht arbeiten.

MFG
Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 30.03.2006, 07:09    Titel: Antworten mit Zitat

Man könnte die Länge des Strings mit LEN (String) auslesen.
Die Maximallänge minus die Akutelle Länge rechnen und das Resultat SPACE$ (Anzahl) als Parameter geben.

Also etwa so:
Code:
text1$="HalloWelt!"
text2$="Test"
max=20 'Maximallänge
? #1, text1$+Space$(max-len(text1$))+","+text2$+Space$(max-len(text2$))

Wobei sich hier noch einiges Optimieren/anpassen lässt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 30.03.2006, 21:29    Titel: Antworten mit Zitat

SUPER - Vielen Dank
Guido

EDIT: Klappt aber nicht (unverträgliche dateitypen)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

BeitragVerfasst am: 30.03.2006, 23:31    Titel: Antworten mit Zitat

du musst zahlen vorher mit str$(zahl) zu strings umformen..
_________________
"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
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 31.03.2006, 15:16    Titel: Antworten mit Zitat

Hi,
wie kann ich den die anzahl der stellen einer String ausgeben lassen?
MFG Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 31.03.2006, 16:11    Titel: Antworten mit Zitat

Du meinst die Anzahl der Zeichen ?

Code:
Length = LEN(Variable$)

_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 24.04.2006, 22:59    Titel: Antworten mit Zitat

ok - mit open und so bin ich noch neuling - vielleicht bin ich ein bisschen begriffstutzig

hab das ganze jetzt abgespeichert:

Code:

Open File$ for output as #1
Print #1, using ....
Print #1, using ....
Print #1, using ....
Print #1, using ....


kann ich jetzt zum öffnen den ganzen bock kopieren und anstelle von output input schreiben?
geht das?

Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 25.04.2006, 17:37    Titel: Antworten mit Zitat

Nein, zum öffnen brauchst du Input statt Print.
Siehe z.B.
http://www.antonis.de/faq/QBMonFAQ-Dateien/574081610.html
http://www.antonis.de/faq/QBMonFAQ-Dateien/1777098252.html

Am schluss geht es etwa so:
Code:
Open File$ for Input as #1
Input #1, ....
Input #1, ....
Input #1, ....
Input #1, ....
close

Wobei die ..... die Variabeln darstellen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 25.04.2006, 20:25    Titel: Antworten mit Zitat

ups - das input bei print hab ich vergessen.

aber beim abspeichern habe ich um eine tabellarische form zu erhalten USING benutzt.
Wie bekomm ich denn jetzt nur die Variablen die ich zwischen den text gespeichert habe geladen?

also die zeile zum speichern sieht dann z.B. so aus:

Code:

Print #1 using, "Name      : ######       Alter         :###";Name$ ; alter

davon stehen dann ca 20 untereinander
wie bekomme ich denn jetzt nur die variablen Name$ und alter geladen?
MFG Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 26.04.2006, 19:16    Titel: Antworten mit Zitat

Mit Line Input einen String hollen
Du kannst mid$() so einstellen, das es die einzelnen Werte trennt. Dann wenn nötig mit Val umwandeln.
So sollte es dann etwa gehen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael



Anmeldungsdatum: 24.10.2004
Beiträge: 9
Wohnort: Manisa / Türkei

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

Hallole - mich hat es immer aufgeregt, wenn ich die Geburtstage von Freunden - Bekannten immer im Kopf hatte, Tage davor, aber wenn dann der Tag war, hatte ich es oft vergessen. Ich habe dann ein Program geschrieben, das einen 3 Tage vor dem Termin, und 2 Tage nach dem Termin mich noch daran erinnert.
Ich habe das ganze in den Start von Windows gepackt, so das es immer angezeigt wurde wenn der PC gestartet wurde - verlassen mit "0".

Dort siehst du dann auch wie ich es gemacht habe mit dem Speichern von den Daten - Ändern und Ausgeben von den Daten. Es könnte noch verfeinert werden - löschen ist nicht möglich ( ändern eben ) und bei Monatswechsel geht es auch nicht, da nach dem 30. oder 31. eben danach kein 1. kommt.
Aber das kann man ja noch machen wenn man will. Ich denke für das erste reicht es dir, wenn du siehst wie ich das mit den Daten gemacht habe.

Tschüssle
Michael


Code:
10 REM Terminprogramm
20 COLOR 15, 1: CLS
30 LOCATE 3, 1
40 PRINT "          ***********************************************************"
50 PRINT "          *                                                         *"
60 PRINT "          *                      TERMINDATEI                        *"
70 PRINT "          *                                                         *"
80 PRINT "          *      Eingabe der Termine                           1    *"
90 PRINT "          *      Anzeigen der ganzen Termindatei               2    *"
100 PRINT "          *      Anzeigen der Termine                          3    *"
110 PRINT "          *      Ändern der Termine                            4    *"
120 PRINT "          *                                                         *"
130 PRINT "          *                                                         *"
140 PRINT "          *      Weiter zu Windows                             0    *"
150 PRINT "          *                                                         *"
160 PRINT "          ***********************************************************"
170 PRINT
180 INPUT "                 Bitte auswählen!!!                          "; e$



300
310 DEFINT I
320 DIM termin$(1000, 2)

500 IF e$ = "1" THEN 1000
510 IF e$ = "2" THEN 5000
520 IF e$ = "3" THEN 6000
530 IF e$ = "4" THEN 7000
540 IF e$ = "0" THEN 10000

700 LOCATE 23, 1: COLOR 26, 4: BEEP
710 PRINT "                               FALSCHE  EINGABE                                 "
715 x$ = INKEY$: IF x$ = "" THEN 715
720 COLOR 15, 1
730 GOTO 10

1000 CLS : OPEN "R", #1, "termin.dat", 70
1010 FIELD #1, 10 AS termin$, 60 AS beschreibung$
1020 PRINT " ........ Eingabe der Daten ............": PRINT
1030 PRINT "Anzahl der Datensätze", LOF(1) / 70: PRINT
1040
1041 a = LOF(1) / 70 + 1: p = a + 0
1050 FOR i = a TO p
1060 LOCATE 6, 50
1070 PRINT "Eingabesatz ist:"; : PRINT USING "###"; i
1080 VIEW PRINT 7 TO 25: CLS : VIEW PRINT
1090 LOCATE 7, 1
1100 INPUT "Datum: "; termin$(i, 1)
1101 INPUT "Beschreibung: "; termin$(i, 2)
1130
1140 LOCATE 23, 1
1150 PRINT "Eingabe o.k. (J/N)?"
1160 x$ = INKEY$: IF x$ = "" THEN 1160
1170 IF x$ = "n" OR x$ = "N" THEN 1080
1180 NEXT i
1190 CLS


1300 LOCATE 12, 20: PRINT "Die Termindaten werden gespeichert"
1310 x$ = INKEY$: IF x$ = "" THEN 1310
1320
1330
1340 FOR i = a TO p
1350     LOCATE 5, 50
1360     PRINT "Speichern des Satzes: "; : PRINT USING "###"; i
1370     LSET termin$ = termin$(i, 1)
1371     LSET beschreibung$ = termin$(i, 2)


1390
1400     PUT #1, i
1410 NEXT i
1420 CLOSE
1430 GOTO 10



5000 OPEN "R", #1, "termin.dat", 70
5010 FIELD #1, 10 AS termin$, 60 AS beschreibung$
5020 satznr = 1
5030
5031 CLS
5032 PRINT "  Anzeigen der ganzen Termindaten"
5033 PRINT
5034 PRINT "  Termin            Beschreibung                                     Satznummer"
5035
5040 WHILE NOT EOF(1)
5045


5130 GET #1, satznr
5140
5150 PRINT termin$; "    "; beschreibung$; " "; satznr

5155 REM Zeilenumbruch bei einer grösseren Anzahl von Terminen
5160 IF satznr = 18 OR satznr = 36 OR satznr = 54 OR satznr = 72 THEN GOTO 5180 ELSE GOTO 5161
5161 IF satznr = 90 OR satznr = 108 OR satznr = 126 OR satznr = 144 THEN GOTO 5180 ELSE GOTO 5162
5162 IF satznr = 162 OR satznr = 180 OR satznr = 198 OR satznr = 216 THEN GOTO 5180 ELSE GOTO 5163
5163 IF satznr = 234 OR satznr = 252 OR satznr = 270 OR satznr = 288 THEN GOTO 5180 ELSE GOTO 5164
5164 IF satznr = 306 OR satznr = 324 OR satznr = 342 OR satznr = 360 THEN GOTO 5180 ELSE GOTO 5165
5165 IF satznr = 378 OR satznr = 396 OR satznr = 414 OR satznr = 432 THEN GOTO 5180 ELSE GOTO 5166
5166 IF satznr = 450 OR satznr = 468 OR satznr = 486 OR satznr = 504 THEN GOTO 5180 ELSE GOTO 5167
5167 IF satznr = 522 OR satznr = 540 OR satznr = 558 OR satznr = 576 THEN GOTO 5180 ELSE GOTO 5168
5168 IF satznr = 594 OR satznr = 612 OR satznr = 630 OR satznr = 648 THEN GOTO 5180 ELSE GOTO 5169
5169 IF satznr = 666 OR satznr = 684 OR satznr = 702 OR satznr = 720 THEN GOTO 5180 ELSE GOTO 5170
5170 IF satznr = 738 OR satznr = 756 OR satznr = 774 OR satznr = 792 THEN GOTO 5180 ELSE GOTO 5171
5171 IF satznr = 810 OR satznr = 828 OR satznr = 846 OR satznr = 864 THEN GOTO 5180 ELSE GOTO 5172
5172 IF satznr = 882 OR satznr = 900 OR satznr = 918 OR satznr = 936 THEN GOTO 5180 ELSE GOTO 5173
5173 IF satznr = 954 OR satznr = 972 OR satznr = 990 OR satznr = 1008 THEN GOTO 5180 ELSE GOTO 5200


5180 LOCATE 23, 1: PRINT "Weiter durch drücken einer Taste"
5185 x$ = INKEY$: IF x$ = "" THEN 5185
5190 VIEW PRINT 4 TO 25: CLS
   
5200 satznr = satznr + 1
5210 WEND
5220 CLOSE
5230 x$ = INKEY$: IF x$ = "" THEN 5230
5240 CLS
5250 VIEW PRINT
5260
5270 GOTO 10

           
6000 OPEN "R", #1, "termin.dat", 70
6010 FIELD #1, 10 AS termin$, 60 AS beschreibung$
6020 satznr = 1
6022 monatheute$ = LEFT$(DATE$, 2)
6024 tagheute$ = MID$(DATE$, 4, 2)
6026 jahrheute$ = RIGHT$(DATE$, 4)

6031 CLS
6032 PRINT "  Anzeigen der Termine von gestern, heute ("; tagheute$; "."; monatheute$; "."; jahrheute$; ") , morgen und ?bermorgen"
6033 PRINT
6034 PRINT "   Termin               Beschreibung "
6035 PRINT

6040 WHILE NOT EOF(1)
6050 GET #1, satznr
6060
6070 monatheute = VAL(monatheute$)
6075 tagheute = VAL(tagheute$)

6080 tagheutetermin$ = LEFT$(termin$, 2)
6085 monatheutetermin$ = MID$(termin$, 4, 2)
6090 monatheutetermin = VAL(monatheutetermin$)
6095 tagheutetermin = VAL(tagheutetermin$)
6100
6120 IF monatheutetermin = monatheute THEN 6130 ELSE 6600
6130
6150
6200 IF tagheutetermin + 1 = tagheute OR tagheutetermin = tagheute OR tagheutetermin - 1 = tagheute OR tagheutetermin - 2 = tagheute THEN 6210 ELSE 6600
6210 PRINT " "; termin$; "    "; beschreibung$

6600 satznr = satznr + 1
6610 WEND


6820 CLOSE
6830 x$ = INKEY$: IF x$ = "" THEN 6830
6840 CLS
6850
6870 GOTO 10


7000 REM Änderung der Termindatei

7100 COLOR 15, 1: CLS
7110 PRINT "          ***********************************************************"
7120 PRINT "          *                                                         *"
7130 PRINT "          *           Ändern von Daten in der Termindatei           *"
7140 PRINT "          *                                                         *"
7150 PRINT "          ***********************************************************"
7160

7400 KEY OFF
7500 DEFINT I
7600 DIM aenderung$(400, 2)

8000 COLOR 15, 1: CLS
8010
8020 PRINT
8030 OPEN "R", #1, "termin.dat", 70
8040 FIELD #1, 10 AS termin$, 60 AS beschreibung$
8050 LOCATE 22, 1
8060 INPUT "Satznummer der Adresse: "; satznr$
8065 saetze = LOF(1) / 70
8070 IF VAL(satznr$) < 1 OR VAL(satznr$) > saetze THEN GOTO 8080 ELSE 8090
8080 COLOR 26, 4: PRINT "             Falsche Eingabe. Wert muss zwischen 1 und "; : PRINT saetze; : PRINT " liegen!            "
8082 x$ = INKEY$: IF x$ = "" THEN 8082
8085 CLOSE : GOTO 8000
8090 GET #1, VAL(satznr$)
8100 LOCATE 7, 1
8110 PRINT "Satznummer der Adresse: ", satznr$
8120 PRINT
8130 PRINT "Termin         : "; termin$
8140 PRINT "Beschreibung   : "; beschreibung$
8150 PRINT
8160
8170 VIEW PRINT 15 TO 25: CLS : VIEW PRINT
8180
8190 LOCATE 12, 1
8200 PRINT "Bitte neue Daten eingeben"
8210 PRINT



8360 LOCATE 14, 1

8380 INPUT "Neuer Termin: "; aenderung$(i, 1)
8390 INPUT "Neue Beschreibung: "; aenderung$(i, 2)

8410 LOCATE 23, 1
8420 INPUT "Eingabe o.k. (J/N)"; ent$
8430
8440 IF ent$ = "J" OR ent$ = "j" THEN GOTO 8810 ELSE 8500

8500 VIEW PRINT 14 TO 25: CLS : VIEW PRINT
8510 GOTO 8360

8810 LSET termin$ = aenderung$(i, 1)
8820 LSET beschreibung$ = aenderung$(i, 2)

9000 PUT #1, VAL(satznr$)
9010 CLOSE
9020 CLS
9030 LOCATE 10, 1
9040 PRINT "                Datensatz          wurde          geändert"
9050 x$ = INKEY$: IF x$ = "" THEN 9050

9060 GOTO 10






10000 SYSTEM
10010 END
   
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
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