Zähler einbauen

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

Beitrag von tipyo »

Hallo,

ich muss doch noch mal stören.

Ich bekomme es nicht hin, das der Inhalt des Zählers in die MessageRequester mit genommen wird / angezeigt wird.

Code: Alles auswählen

Beginn Zähler
Zaehler =0
ReadFile(0, Dateiname+".txt")
If Eof(0)
  CloseFile(0)
MessageRequester("Information", "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

*******Hier kommt mein Problem********
;Ausgabe Ergebnis des Zählers
MessageRequester("Information", "Es wurde(n) " & Zaehler & " Spiel(e) berechnet", #PB_MessageRequester_Ok)
fertig:
Bitte nochmals um Anfänger-Hilfe

mfg

typyo

code-tags gesetzt. nächstes mal bitte selber machen - Kaeru fecit
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

MessageRequester("Information", "Es wurde(n) " + str(Zaehler) + " Spiel(e) berechnet", #PB_MessageRequester_Ok)

Und steck den Sand nicht gleich in den Kopf. Bei PB ist vieles sehr ähnlich wie VB, aber die Hilfe hilft fast immer. :mrgreen:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
tipyo
Beiträge: 20
Registriert: 07.07.2007 09:50

Beitrag von tipyo »

Hallo,

danke danke Dir - es geht!


mfg

tipyo :lol:
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Etwas eleganter:

Code: Alles auswählen

If Zaehler > 1
  Message.s = "Es wurden " + Str(Zaehler) + " Spiele berechnet!"
ElseIf Zaehler = 1
  Message.s = "Es wurde 1 Spiel berechnet!"
Else
  Message.s = "Es wurde nichts berechnet!"
EndIf

MessageRequester("Information", Message, 64)
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Falo hat geschrieben:

Code: Alles auswählen

MessageRequester("Information", Message, 64)
@tipyo: Für die 64 kann man folgendes einsetzen:

Code: Alles auswählen

#PB_MessageRequester_YesNo
#PB_MessageRequester_YesNoCancel
#PB_MessageRequester_Ok
Was das bedeutet, siehst du bestimmt in der Referenz oder kannst es dir zumindest vorstellen
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

PureBasic4.0 hat geschrieben:
Falo hat geschrieben:

Code: Alles auswählen

MessageRequester("Information", Message, 64)
@tipyo: Für die 64 kann man folgendes einsetzen:

Code: Alles auswählen

#PB_MessageRequester_YesNo
#PB_MessageRequester_YesNoCancel
#PB_MessageRequester_Ok
Was das bedeutet, siehst du bestimmt in der Referenz oder kannst es dir zumindest vorstellen
Oder die Summe aus folgenden Werten bilden:

Code: Alles auswählen

Konstante	Wert	Beschreibung
vbOKOnly	0	Nur die Schaltfläche OK anzeigen.
VbOKCancel	1	Schaltflächen OK und Abbrechen anzeigen.
VbAbortRetryIgnore	2	Schaltflächen Abbruch, Wiederholen und Ignorieren anzeigen.
VbYesNoCancel	3	Schaltflächen Ja, Nein und Abbrechen anzeigen.
VbYesNo	4	Schaltflächen Ja und Nein anzeigen.
VbRetryCancel	5	Schaltflächen Wiederholen und Abbrechen anzeigen.
VbCritical	16	Meldung mit Stop-Symbol anzeigen. 
VbQuestion	32	Meldung mit Fragezeichen-Symbol anzeigen.
VbExclamation	48	Meldung mit Ausrufezeichen-Symbol anzeigen.
VbInformation	64	Meldung mit Info-Symbol anzeigen.
VbDefaultButton1	0	Erste Schaltfläche ist Standardschaltfläche.
VbDefaultButton2	256	Zweite Schaltfläche ist Standardschaltfläche.
VbDefaultButton3	512	Dritte Schaltfläche ist Standardschaltfläche.
VbDefaultButton4	768	Vierte Schaltfläche ist Standardschaltfläche.
VbApplicationModal	0	An die Anwendung gebunden. Der Benutzer muß auf das Meldungsfeld reagieren, bevor er seine Arbeit mit der aktuellen Anwendung fortsetzen kann.
VbSystemModal	4096	An das System gebunden. Alle Anwendungen werden unterbrochen, bis der Benutzer auf das Meldungsfeld reagiert.
Ist aus der VB-Hilfe und dürfte ihm geläufig sein. :wink:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
tipyo
Beiträge: 20
Registriert: 07.07.2007 09:50

Beitrag von tipyo »

Hallo,

erstmal danke für die Zahlreichen Hilfe.
Das ist jetzt soweit endlich alles klar.

Nun noch ein paar andere Fragen zu diesem:

Procedure ErstellenVoll06()

If OpenFile(0, Dateiname+".txt")
For Zahl1= 1 To v - 5
For Zahl2=Zahl1+1 To v - 4
For Zahl3=Zahl2+1 To v - 3
For Zahl4=Zahl3+1 To v - 2
For Zahl5=Zahl4+1 To v - 1
For Zahl6=Zahl5+1 To v
i=i+1 : WriteStringN(0," " + RSet(Str(Zahl1),2,"0") + " " + RSet(Str(Zahl2),2,"0") + " " + RSet(Str(Zahl3),2,"0")+ " " +RSet(Str(Zahl4),2,"0") + " " + RSet(Str(Zahl5),2,"0") + " " + RSet(Str(Zahl6),2,"0"))
Next
Next
Next
Next
Next
Next
CloseFile(0) ; Datei schließen
EndIf


1. Frage:
Ist die Zahl4 eine 3 oder 4 dann ist die Reihe ok ansonsten geht es weiter

oder

2.Frage:
Die Zahl1 darf nicht >2 sein ansonsten Schleife beenden

3.Frage:
If OpenFile(0, Dateiname+".txt")

Hier hätte ich gerne das die Datei immer neu erstellt wird also egal ob sie bereits vorhanden oder nicht

Man ich habe ganz schön mit dem umstieg zu kämpfen!:oops:

Danke Euch

tipyo
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Ich nehme an du suchst was für Lotto-Vollsysteme, hier was aus meiner Code-Sammlung:

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 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 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!")
End
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag von D@nte »

Vorweg:
>code-tags gesetzt. nächstes mal bitte selber machen - Kaeru fecit
also einmal [ code ] [ /code ] (ohne Leerzeichen) um deinen obrigen Code

Dann:
Was genau sollen deine 6 verschachtelten For-Schleifen darstellen?!
Soll da nur eine Zahlenreihe rauskommen?
Was ist v?
Was ist i?

Zu den Fragen:
@1

Code: Alles auswählen

Wenn Zahl4 < 3 oder Zahl4 > 4
  Abbruch
Sonst
  Weiter
@2
s.o.

Code: Alles auswählen

Wenn Zahl1 > 2
@3
Ist immer so da WriteString immer von Zeile 1 an schreibt
tipyo
Beiträge: 20
Registriert: 07.07.2007 09:50

Beitrag von tipyo »

Hallo,

bei Deinem Programm gibt es in Zeile 15 eine Fehlermeldung

mfg

tipyo
Antworten