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:

Fragen...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 01.03.2008, 20:03    Titel: Fragen... Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 01.03.2008, 20:09    Titel: Antworten mit Zitat

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. zwinkern 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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 02.03.2008, 15:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 02.03.2008, 21:23    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 03.03.2008, 12:36    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.03.2008, 12:55    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 03.03.2008, 17:13    Titel: Antworten mit Zitat

Vielen Dank, jetzt versteh ich langsam die Zusammenhänge!

Vielen Vielen Dank für dich schnelle Hilfe.

MfG: eriX
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. 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