Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 07.05.2006, 09:02 Titel: |
|
|
@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
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 |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 13:20 Titel: |
|
|
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  |
|
Nach oben |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 13:29 Titel: |
|
|
achso der fragt beidemal die gebäudestufen ab . also beidesmal das selbe .
und er nimmt die stunde vom 2. eintrag . |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 07.05.2006, 15:31 Titel: |
|
|
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 |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 16:11 Titel: |
|
|
ah juhu !!!!!!!!! es geht.....
Danke !!  |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 07.05.2006, 16:36 Titel: |
|
|
..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
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 |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 16:49 Titel: |
|
|
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 07.05.2006, 18:47 Titel: |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 07.05.2006, 20:12 Titel: |
|
|
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
Aber da bleiben die Variablen-Werte auch erhalten
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 07.05.2006, 20:27 Titel: |
|
|
jb hat Folgendes geschrieben: | Das 1 = 0 kannst du dir sparen
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. |
|
Nach oben |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 20:43 Titel: |
|
|
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 |
|
 |
Anistasius
Anmeldungsdatum: 18.01.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 21:20 Titel: |
|
|
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 |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 21:48 Titel: |
|
|
danke aber zum schluss hatte ich nen ganz anderes prob . |
|
Nach oben |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 07.05.2006, 22:11 Titel: |
|
|
juhu !!! habs mit goto geschafft !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|
Nach oben |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 08.05.2006, 14:58 Titel: |
|
|
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
Gruß
ytwinky |
em das geht doch auch mit if wenn man einfach dann else eingibt oder ? |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 08.05.2006, 17:03 Titel: |
|
|
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 |
|
 |
Mark
Anmeldungsdatum: 02.05.2006 Beiträge: 37
|
Verfasst am: 08.05.2006, 21:31 Titel: |
|
|
aha . danke . |
|
Nach oben |
|
 |
|