Zähler einbauen

Anfängerfragen zum Programmieren mit PureBasic.
tipyo
Beiträge: 20
Registriert: 07.07.2007 09:50

Beitrag von tipyo »

Hallo,

danke noch mal für Eure Hilfe!

Noch zu diesem Beispiel eine Frage:

Wie kann ich hier das so verarbeiten das es eine Wahlmöglichkeit gibt
damit die
1 Zahl von 1 - 44
2 Zahl von 2 - 45
3 Zahl von 3 - 46
4 Zahl von 4 - 47
5 Zahl von 5 - 48
6 Zahl von 6 - 49
sein kann - je nach dem was man möchte. Also man kann sich immer
vor Rechenbeginn diese 6 Optionen einstellen. Nach Lust und Laune.

danke Euch

tipyo

Code: Alles auswählen

;Vollsysteme für Lotto 6 aus 49
SysZahlen.l = Val(InputRequester("Vollsystem","Bitte Systemzahlen (7-49) eingeben:","7"))
If SysZahlen <7> 49
  MessageRequester("Abgebrochen","Nur Vollsysteme von 7 bis 49 Zahlen möglich!")
  End
EndIf
DateiName.s = SaveFileRequester("Vollsystem speichern...","vollsys"+RSet(Str(SysZahlen),3,"0")+".txt","Text (*.txt)|*.txt|Alle Dateien (*.*)|*.*",0)
If OpenFile(0,DateiName)
  For A = 1 To SysZahlen: z1.s = RSet(Str(A),2,"0")
  For B = A + 1 To SysZahlen: z2.s = " " + RSet(Str(B),2,"0")
  For C = B + 1 To SysZahlen: z3.s = " " + RSet(Str(C),2,"0")
  For D = C + 1 To SysZahlen: z4.s = " " + RSet(Str(D),2,"0")
  For E = D + 1 To SysZahlen: z5.s = " " + RSet(Str(E),2,"0")
  For F = E + 1 To SysZahlen: z6.s = " " + RSet(Str(F),2,"0")
    WriteStringN(0,z1+z2+z3+z4+z5+z6)
  Next F: Next E: Next D: Next C: Next B: Next A
  CloseFile(0)
Else
  MessageRequester("Abgebrochen","Das Vollsystem "+RSet(Str(SysZahlen),3,"0")+" wurde nicht gespeichert!")
  End
EndIf
MessageRequester("Fertig","Das Vollsystem "+RSet(Str(SysZahlen),3,"0")+" wurde gespeichert!")
; Beginn Zähler
Zaehler =0
ReadFile(0, DateiName)
If Eof(0)
  CloseFile(0)
MessageRequester("T I P Y O (1.0)                        I N F O !", "Es wurden keine Spiele berechnet!", #PB_MessageRequester_Ok)
  Goto fertig
EndIf
Repeat
  buffers$ = ReadString(0)
  Zaehler = Zaehler + 1
Until Eof(0)
CloseFile(0)
; Ende Zähler

;Ausgabe Ergebnis des Zählers
MessageRequester("T I P Y O (1.0)                        I N F O !", "Es wurde(n)  "   + Str(Zaehler) +  "  Spiel(e) berechnet!", #PB_MessageRequester_Ok)

fertig:
End 
tipyo
Beiträge: 20
Registriert: 07.07.2007 09:50

Beitrag von tipyo »

Hallo nochmals,

also damit man das nicht falsch versteht.

1 Zahl von 1 - 44
2 Zahl von 2 - 45
3 Zahl von 3 - 46
4 Zahl von 4 - 47
5 Zahl von 5 - 48
6 Zahl von 6 - 49

Beispiel:
Stelle ich die 1 Zahl auf 5 und lasse die Optionen 2.Zahl-6.Zahl unverändert
werden nur die Kombis übernommen, die mit der 5 anfangen.

Lasse ich die Optionen 1.Zahl 2.Zahl 5.Zahl
und stelle die Option 3.Zahl auf 4 und Option 6.Zahl auf 47 dann
werden nur die Kombis übernommen, die alle als 3. Zahl eine 4 und
als 6.Zahl eine 47 haben.

Ich hoffe das man das so versteht.

mfg

tipyo
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Hallo tipyo,

kleiner Hinweis noch:
tipyo hat geschrieben:

Code: Alles auswählen

If OpenFile(0,DateiName)
nimm statt OpenFile() lieber CreateFile() um eine neue Datei zu erstellen.

Wenn Du nämlich via OpenFile() beispielsweise mit einer 300 Byte-Datei eine
bereits bestehende Datei mit 500 Bytes überschreiben willst, so bleiben die
letzten 200 Bytes der alten Datei bestehen und könnten bei wiedereinlesen
der Datei zu Problemen führen.

CreateFile() indes erzeugt eine neue leere Datei, in die Du dann Deine Daten
schreiben kannst.

Ausserdem: Versuch mal, ob Du Deinen Code auch ohne Goto hinbekommst ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Stimmt Kiffi...

Da der obere Teil von mir stammt hier verbessert und schön eingerückt: :wink:

Code: Alles auswählen

;Vollsystem für Lotto 6 aus 49
SysZahlen.l = Val(InputRequester("Vollsystem", "Bitte Systemzahlen (7-49) eingeben:", "7"))
If SysZahlen < 7 Or SysZahlen > 49
  MessageRequester("Abgebrochen", "Nur Vollsysteme von 7 bis 49 Zahlen möglich!")
  End
EndIf
DateiName.s = SaveFileRequester("Vollsystem speichern...", "vollsys" + RSet(Str(SysZahlen), 3, "0") + ".txt", "Text (*.txt)|*.txt|Alle Dateien (*.*)|*.*", 0)
If CreateFile(0, DateiName)
  For A = 1 To SysZahlen
    z1.s = RSet(Str(A), 2, "0")
    For B = A + 1 To SysZahlen
      z2.s = " " + RSet(Str(B), 2, "0")
      For C = B + 1 To SysZahlen
        z3.s = " " + RSet(Str(C), 2, "0")
        For D = C + 1 To SysZahlen
          z4.s = " " + RSet(Str(D), 2, "0")
          For E = D + 1 To SysZahlen
            z5.s = " " + RSet(Str(E), 2, "0")
            For F = E + 1 To SysZahlen
              z6.s = " " + RSet(Str(F), 2, "0")
              WriteStringN(0, z1 + z2 + z3 + z4 + z5 + z6)
            Next F
          Next E
        Next D
      Next C
    Next B
  Next A
  CloseFile(0)
Else
  MessageRequester("Abgebrochen", "Das Vollsystem " + RSet(Str(SysZahlen), 3, "0") + " wurde nicht gespeichert!")
  End
EndIf
MessageRequester("Fertig", "Das Vollsystem " + RSet(Str(SysZahlen), 3, "0") + " wurde gespeichert!")
End
@tipyo: ohne goto geht (z.B.) so:

Code: Alles auswählen

Zaehler = 0
ReadFile(0, DateiName)
Repeat
  buf$ = ReadString(0)
  If buf$ <> "": Zaehler = Zaehler + 1: EndIf
Until Eof(0)
CloseFile(0)
If Zaehler > 1
  MessageRequester("TipYo 1.0", "Es wurden " + Str(Zaehler) + " Spiele berechnet!", 64)
ElseIf Zaehler = 1
  MessageRequester("TipYo 1.0", "Es wurde 1 Spiel berechnet!", 64)
Else
  MessageRequester("TipYo 1.0", "Es wurden keine Spiele berechnet!", 64)
EndIf
End
:::: WIN 10 :: PB 5.73 :: (x64) ::::
tipyo
Beiträge: 20
Registriert: 07.07.2007 09:50

Beitrag von tipyo »

Hallo,

hat keiner eine Idee - wie ich das realisieren kann?
:oops:

danke vorab

tipyo
ms
Beiträge: 26
Registriert: 24.08.2006 21:56

Beitrag von ms »

Sieh Dir bei meinem Programm Zeile 1446-1459 an. Den Anfangszähler musst Du nur durch die entsprechenden vorher gewählten Werte ersetzen.

Gruß
ms
no name, no woman, no job, no money, no worries - just tired
Antworten