 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 01.03.2008, 20:03 Titel: Fragen... |
|
|
Hallo, ich bin neu hier.
Ich hab mich schon ein wenig in der Sprache eingefunden, aber das ein oder andere kann ich absolut nicht lößen.
Ich hoffe ihr könnt mir helfen, es würde mich sehr freuen, wenn ihr den Quelltext posten könntet.
Frage 1
Der Benutzer soll Text, Zahlen etc. eingeben können, nach der bestätigung mit ENTER soll dies in eine datei geschrieben werden.
Mit dem Text aus der Befehlsreferenz geht dies nicht, der Compiler bringt andauernd fehlermeldungen:
Code: | DIM Tmp AS STRING
OPEN "Adressen.txt" FOR APPEND AS #1
WRITE #1, "Karl Mustermann", "12345", "Oberhausen", "Rottstraße 2"
WRITE #1, "Eva Mustermann", "12345", "Oberhausen", "Rottstraße 2"
WRITE #1, "Andrea Müller", "12346", "Unterhausen", "Wendeweg 17"
CLOSE #1
OPEN "Adressen.txt" FOR INPUT AS #1
DO
FOR Satz As Integer = 1 TO 4
INPUT #1, tmp
PRINT tmp;
NEXT
PRINT
LOOP UNTIL EOF(1)
|
So gut, wie mache ich das jetzt mit dem Input? Könnte jemand mir den funktionierenden Quelltext posten?
Problem 2:
Wenn jetzt das mit der eingabe funktioniert hat, soll man irgendwann einmal das eingeben, was in die datei geschrieben wurde, das soll mit der datei verglichen werden, wenn das richtig ist, soll er zu richtig: springen, wenn falsch zu falsch:
Also am ende sollte das ungefähr so aussehen:
Bitte geben Sie Text ein (bitte merken!):
Bitte geben Sie Text ein (bitte merken!):beispieltext
Programm-> write in text.txt
cls
Bitte geben sie den Text, den sie vorhin eingegeben haben erneut ein!:
Bitte geben sie den Text, den sie vorhin eingegeben haben erneut ein!:beispieltext
Programm -> If Input = text.txt goto richtig
If Input not = text.txt goto falsch
Danke für evtl. Hilfe!
MfG: eriX |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 01.03.2008, 20:09 Titel: |
|
|
Hallo.
Zur ersten Frage: Du musst mit INPUT natürlich wieder so viele Variablen einlesen, wie du vorher mit WRITE in die Datei geschrieben hast. Wenn du also
Code: | WRITE #1, "Max Muster", "12345", "Teststadt" |
schreiben lässt, musst du auch
Code: | INPUT #1, VollerName, PLZ, Wohnort |
einlesen.
Bei Frage 2 erschließt sich mir das Problem noch nicht so ganz. Was von dem, was du da beschreibst, funktioniert nicht, wie es soll? Du solltest übrigens versuchen, ohne GOTO auszukommen. Da gibt es bessere Möglichkeiten.
Ich verschiebe das Thema übrigens auch ins Forum für allgemeine FreeBasic-Fragen, weil mit "Windows-spezifisch" eher WinAPI-Fragen gemeint sind. Das hier besprochene Thema würde unter Linux genauso aussehen, ist also nicht Windows-spezifisch.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 02.03.2008, 15:30 Titel: |
|
|
Ich möchte, dass er die Eingabe des Benutzers in die Datei schreibt.
Der Benutzer soll nocheinmal das Eingeben, was in die Datei geschrieben wurde.
Stimmt das überein (Eingabe mit Dateitext), soll er zu richtig: gehen, worin zB. RICHTIG! Steht, sollte das nicht übereinstimmen, soll er zu falsch:, es soll ausgegeben werden: FALSCH!
Mit dem GOTO - Ich habe jetzt lange Zeit viel mit BATCH gemacht, da mir das aber zu einfach war (wegen Quelltext sehen), hab ich mich für FB entschieden. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 02.03.2008, 21:23 Titel: |
|
|
Hallo,
das könntest du wie folgt machen:
Code: | 'Unterprogramm "FragBenutzerAb"
FUNCTION FragBenutzerAb () As Integer
DIM AS STRING Eingabe, Inhalt
INPUT "Gib was ein: ", Eingabe
OPEN EXEPATH+"\Datei.txt" FOR OUTPUT AS #1
WRITE #1, Eingabe
CLOSE #1
'...
INPUT "Gib das nochmal ein: ", Eingabe
OPEN EXEPATH+"\Datei.txt" FOR INPUT AS #1
INPUT #1, Inhalt
CLOSE #1
IF Inhalt = Eingabe Then
RETURN 1
ELSE
RETURN 0
END IF
END FUNCTION
'Hauptprogramm
If FragBenutzerAb() Then
'Richtig
PRINT "Der Benutzer hat es richtig gemacht."
Else
'Falsch
PRINT "Der Benutzer hat es falsch gemacht."
END IF
SLEEP: END |
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 03.03.2008, 12:36 Titel: |
|
|
Vielen Dank!
Das funktioniert!
Kannst du mir jetzt noch eine Frage beantworten:
Ich möchte, dass ein Befehl vorgefertigt ist:
C:\Windows\System32\Shutdown.exe -s -t 1234
für 1234 Soll der Benutzer eine Zahl eingeben können. die dann als Parameter mit gestartet wird. Wie geht das?
Danke, eriX. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 03.03.2008, 12:55 Titel: |
|
|
Code: | Dim Zeit as integer
Input Zeit
SHELL "shutdown -s -t " & Zeit |
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.

Zuletzt bearbeitet von Jojo am 03.03.2008, 17:15, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 03.03.2008, 17:13 Titel: |
|
|
Vielen Dank, jetzt versteh ich langsam die Zusammenhänge!
Vielen Vielen Dank für dich schnelle Hilfe.
MfG: eriX |
|
Nach oben |
|
 |
|
|
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.
|
|