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:

mehrere fragen
Gehe zu Seite Zurück  1, 2
 
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
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 07.05.2006, 09:02    Titel: Antworten mit Zitat

@MisterD:
Ich habe ja probiert, direkt auf das File zu verlinken, aber das hat irgendwie nicht geklappt, so habe ich nur allgemein auf ytwinky verwiesen verwundert
Exist.Bas ist als 'Programmsammlung' zu verstehen, um zu zeigen, was damit möglich ist.
Wer die Funktionen braucht, kann sie raustrennen und eine .Bi davon machen..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 07.05.2006, 13:20    Titel: Antworten mit Zitat

hi ich habs jetzt so probiert :
Code:
screen 18
locate 0,25
Print "***HDSM - Rohstoffrechner***"
print
n$ = "c:\pkg.dat"
OPEN n$ FOR BINARY AS #1:L = LOF(1):CLOSE #1
IF L = 0 then
    kill n$
    OPEN "c:\pkg.dat" FOR OUTPUT AS #1
    print "Fuege deine Gebaeudestufen ein !"
    input "Goldmine   : ",x
    input "Steinbruch : ",y
    input "Saegewerk  : ",z
    input "Farm       : ",q
    input "Anzahl der Stunden : ",e
    write #1 ,x
    write #1 ,y
    write #1 ,z
    write #1 ,q
else
    input "Gebaeudestufen verändern (j/n):",k
    if k=j then
        OPEN "c:\pkg.dat" FOR OUTPUT AS #1
        print "Fuege deine Gebaeudestufen ein !"
        input "Goldmine   : ",x
        input "Steinbruch : ",y
        input "Saegewerk  : ",z
        input "Farm       : ",q
        input "Anzahl der Stunden : ",e
        write #1 ,x
        write #1 ,y
        write #1 ,z
        write #1 ,q
    end if
    if k=n then
        open "c:\pkg.dat" For input as #1
        input "Anzahl der Stunden : ",e
    end if
end if
cls
if x=0 then
    ergebnis=9*e
end if
if x=1 then
    ergebnis=10*e

dann kommt dann halt noch oft if und zuletzt :

locate 0,25
Print "***HDSM - Rohstoffrechner***"
Print
if x>25 then
    print "Error : Du hast eine zu hohe Gebaeudestufe eigegeben !"
else
    Print "In";e%;" Stunde/n produzierst du";ergebnis%;" Gold !"
end if
if y>25 then
    print "Error : Du hast eine zu hohe Gebaeudestufe eigegeben !"
else
    Print "In";e%;" Stunde/n produzierst du";ergebnis2%;" Stein !"
end if
if z>25 then
    print "Error : Du hast eine zu hohe Gebaeudestufe eigegeben !"
else
    Print "In";e%;" Stunde/n produzierst du";ergebnis3%;" Holz !"
end if
if q>25 then
    print "Error : Du hast eine zu hohe Gebaeudestufe eigegeben !"
else
    Print "In";e%;" Stunde/n produzierst du";ergebnis4%;" Nahrung !"
end if
Print
print "(druecke eine Taste zum Schliessen)"
print
print
print
locate 0,27
print "HDSM - Rohstoffrechner V0.1"
locate 0,33
print "by L!te][Mark"
close #1
sleep


so aber irgendwie funzt das net . wenn ich ne datei dann erstellt habe dann kommt ja beim programmstart die frage :
Gebaeudestufen verändern (j/n):
und wenn ich dann n eingebe fragt der trozdem die gebäudestufen ab .
und anders herum wenn ich j eingebe fragt der mich ja nätürlich die gebäudestufen ab aber 2x die anzahl der stunden ?????
ich dreh durch mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 07.05.2006, 13:29    Titel: Antworten mit Zitat

achso der fragt beidemal die gebäudestufen ab . also beidesmal das selbe .

und er nimmt die stunde vom 2. eintrag .
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 07.05.2006, 15:31    Titel: Antworten mit Zitat

Code:
    input "Gebaeudestufen verändern (j/n):",k
    if k=j then
        OPEN "c:\pkg.dat" FOR OUTPUT AS #1
        print "Fuege deine Gebaeudestufen ein !"
        input "Goldmine   : ",x
        input "Steinbruch : ",y
        input "Saegewerk  : ",z
        input "Farm       : ",q
        input "Anzahl der Stunden : ",e
        write #1 ,x
        write #1 ,y
        write #1 ,z
        write #1 ,q
    end if
    if k=n then
        open "c:\pkg.dat" For input as #1
        input "Anzahl der Stunden : ",e
    end if

Das sollte so, wie ich das sehe, so aussehen:
Code:
    input "Gebaeudestufen verändern (j/n):",k$
    if k$="j" then
        OPEN "c:\pkg.dat" FOR OUTPUT AS #1
        print "Fuege deine Gebaeudestufen ein !"
        input "Goldmine   : ",x
        input "Steinbruch : ",y
        input "Saegewerk  : ",z
        input "Farm       : ",q
        input "Anzahl der Stunden : ",e
        write #1 ,x
        write #1 ,y
        write #1 ,z
        write #1 ,q
        close #1
    elseif k$="n" then
        open "c:\pkg.dat" For input as #1
         input #1 ,x
         input #1 ,y
         input #1 ,z
         input #1 ,q
         close #1
    end if

_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

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

ah juhu !!!!!!!!! es geht.....
Danke !! happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 07.05.2006, 16:36    Titel: Antworten mit Zitat

..und wenn du mal mehr als zwei Möglichkeiten auswerten mußt, bietet sich
Select Case an
Code:
Select Case UCase(k$)
  Case "J"
    's.o.
  Case "N"
    's.o.
  Case Else
    ?"Diese Option ist noch nicht eingebaut.."
End Select
Ein Case jür jeden Fall zwinkern
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 07.05.2006, 16:49    Titel: Antworten mit Zitat

ah danke . wer ich warscheinlich einbauen . em noch eine frage :
was ist der command womit sich das programm einfach wieder von vorne anfängt , so als wenn es neu gestartet wurde ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 07.05.2006, 18:47    Titel: Antworten mit Zitat

Gibt es an sich nicht, aber du könntest vor dein Programm ein Label namens Start setzen,
und dann an der Stelle, wo es wieder von vorne anfangen soll, ein GOTO Start schreiben.
Ich weiß, ist nicht der tollste Stil, aber hier bietet es sich an.

Anmerkung: Das ist dann aber kein richtiger Neustart. Variablen haben dann noch die alten Werte, ist ja logisch.

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



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 07.05.2006, 20:12    Titel: Antworten mit Zitat

Da ich gegen vermeidbare Goto's bin:
Do
'..
'..dein programm..
'..
Loop Until 1=0
Die Schleife läuft bis 1=0 ist oder du aus der Schleife rausspringst grinsen
Aber da bleiben die Variablen-Werte auch erhalten traurig
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 07.05.2006, 20:24    Titel: Antworten mit Zitat

Das 1 = 0 kannst du dir sparen Zunge rausstrecken zwinkern

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 07.05.2006, 20:27    Titel: Antworten mit Zitat

jb hat Folgendes geschrieben:
Das 1 = 0 kannst du dir sparen Zunge rausstrecken zwinkern

jb


Wird das nicht auch schneller, wenn man nur Do:Loop schreibt? Denn dann muss ja nicht mehr überprüft werden, ob 1=0 ist, oder sonstwas.happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 07.05.2006, 20:43    Titel: Antworten mit Zitat

die variablen sollen ja erhalten bleiben . wie geht denn das mit dem label ? also wenn ich label eintippe wird das net dick .

Danke erstmal für die antworten .
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anistasius



Anmeldungsdatum: 18.01.2006
Beiträge: 37

BeitragVerfasst am: 07.05.2006, 21:20    Titel: Antworten mit Zitat

Setze einfach das an den Anfang vom Programm:

FUNCTION ifFileDirExist (weg$) as integer
IF dir(weg$,1+2+4+16+32) <> "" THEN
RETURN (-1)
ELSE
RETURN (0)
END IF
END FUNCTION

dann kannst du später dieses tippen:

if ifFileDirExist ("c:\meineDaten\meineDatei.dat") then print "gefunden"

Viele Grüße
Anistasius(.de)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 07.05.2006, 21:48    Titel: Antworten mit Zitat

danke aber zum schluss hatte ich nen ganz anderes prob .
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 07.05.2006, 22:11    Titel: Antworten mit Zitat

juhu !!! habs mit goto geschafft !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 08.05.2006, 14:58    Titel: Antworten mit Zitat

ytwinky hat Folgendes geschrieben:
..und wenn du mal mehr als zwei Möglichkeiten auswerten mußt, bietet sich
Select Case an
Code:
Select Case UCase(k$)
  Case "J"
    's.o.
  Case "N"
    's.o.
  Case Else
    ?"Diese Option ist noch nicht eingebaut.."
End Select
Ein Case jür jeden Fall zwinkern
Gruß
ytwinky


em das geht doch auch mit if wenn man einfach dann else eingibt oder ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 08.05.2006, 17:03    Titel: Antworten mit Zitat

Ja genau es geht auch mit IF:
Code:
If UCase(k$)="J" then
    's.o.
Elseif UCase(k$)="N" then
    's.o.
Else
    ?"Diese Option ist noch nicht eingebaut.."
End If

Was man besser findet ist in dem Fall geschmackssache.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mark



Anmeldungsdatum: 02.05.2006
Beiträge: 37

BeitragVerfasst am: 08.05.2006, 21:31    Titel: Antworten mit Zitat

aha . danke .
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 FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 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