| |
|
|
- Seite 1 - |
|
| Hier werden Wünsche geäußert.
[box:174b705055]Ich wünsche mir für XProfan10:[/box:174b705055] isset(a&) zum Prüfen ob a& declariert ist unset(a&) zum undeklarieren von a& sort(array[&|$]) / Sortierbefehle für Arrays Startpaint -1 benötigt kein %hwnd mehr, und/oder %hwnd (Hauptfenster) kann erzeugt werden ohne in der Taskbar zu erscheinen hiword und loword im Sprachschatz clearlist mit Handle als Parameter löscht Listboxinhalt .
Salve. |
|
|
| |
|
|
| |
|
- Seite 11 - |
|
|
RGH | [quote:a42ef0fa07=Jacob Liebeck]Aber ist es nicht irgendwie verwirrend, dass du PutChar verwendest um einen String, und nicht ein einzelnes Zeichen (Char) zu schreiben? Jac [/quote:a42ef0fa07] Neben dem von Dir genannten Grund gibt es noch einen Weiteren: Die Ähnlichkeit mit dem Befehl Char, bzw. der Funktion Char$(), um Zeichen in eine Bereichsvariable zu schreiben, bzw. aus dieser zu lesen: Auch da liest Char$() eine bestimmte Anzahl von Zeichen und eben nicht bis zu einem Stringende, bzw. schreibt die Zeichen des Strings ohne abschließendes Nullbyte,
BTW: Ich hatte natürlich oben noch einen Fehler drin: Die Funktion heißt natürlich GetChar$ (mit Dollarzeichen), da das Ergebnis ja eine Zeichenkette ist.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 03.05.2006 ▲ |
|
|
|
|
Jac de Lad | Hm, stimmt auch wieder...! |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 04.05.2006 ▲ |
|
|
|
|
GDL | Hallo Roland
da ich immer sehr viele Messdaten auswerten muss, würde ich mir die select case Routine aus Powerbasic in Xprofan wünschen.
Beispiel aus PowerBasic
select case messwert case < 10 ......... .......... case 11,15,20,27,30,....... ........ ......... case 12,13,14,16,..... .......... case > 100
caseelse
endselect
Vielleicht ist es möglich. Servus Georg |
|
|
| |
|
|
|
| @Georgs: Hier kann ich die Switch-Syntax empfehlen: [...]
Ich würde mir wünschen wenn es mit XProfan10 möglich wäre einem Scrollbalken zu erklären wie gross er sein soll. (PageSize) |
|
|
| |
|
|
|
RGH | [quote:ea08a5d93b=iF]@Georgs: Hier kann ich die Switch-Syntax empfehlen: [...]
Nicht ganz, denn das Schlüsselwort Case gibt es ja schon.
Gruß Roland (bastelt gerade an 3D-Sprites für OpenGL) |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 05.05.2006 ▲ |
|
|
|
|
Jac de Lad | Hallo Roland!
Bis jetzt macht XProfan 10 ja schon einen prächtigen Eindruck! Hab aber noch einen Vorschlag:
Kannste eventuell die WhileLoop-Schleife mit Floats erweitern und dann entsprechend mit !Loop? Das lässt sich zwar auch anders realisieren, aber wäre, meiner Meinung nach, eine sinnvolle Erweiterung (wenns nicht allzu viele Umstände macht).
Schönes Wochenende an alle! Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 05.05.2006 ▲ |
|
|
|
|
| |
|
| |
|
|
|
RGH | [quote:328077703a=RGH]Gruß Roland (bastelt gerade an 3D-Sprites für OpenGL)[/quote:328077703a] ... und jetzt sind sie fertig: [...]
Alle Subscriptionskunden haben um Mitternacht herum bereitrs die 8. Subscriptionslieferung mit den Sprites erhalten!
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 08.05.2006 ▲ |
|
|
|
|
Michael Wodrich | (wod)
Ich habe mal kurz eine mögliche Switch-Kontrollstruktur gebastelt. Da Case (Fall) schon belegt ist habe ich mich für Decide entschieden.
Bei einfachem Wertvergleich mit der Variablen ist es ja noch einfach, auch die Ersetzung der Variablen gegen TRUE und dann intern TRUE/FALSE Entscheidungen ist noch klar.
Aber wie geht das mit komplizierteren Bedingungen (siehe: Balance!)? KompilierenMarkierenSeparieren!
Break verläßt die Switch-Kontrollstruktur
Switch month_name$
Decide "Jan"
Decide "Januar"
month% = 1
Break
...
EndSwitch
Switch i%
Decide 0
Print i%,"ist gleich 0"
Break
Decide 1
Print i%,"ist gleich 1"
Break
Decide 2
Print i%,"ist gleich 2"
Break
Else
Print i%,"ist weder 0, 1 noch 2"
EndSwitch
Switch i%
Decide 14
Decide 21
Decide 22
Print i%,"ist Teil der Menge [14,21,22]"
Break
Decide 7
Decide 9
Decide 11
Decide 12
Decide 99
Print i%,"ist Teil der Menge: [7,9,11,12,99]"
Break
Decide 13
Print i%,"ist gleich 13"
Break
Else
Print i%
EndSwitch
Switch Balance!
hier soll "~var" den Zugriff auf "Balance!" darstellen
Decide ~var <= 0
Print Balance!,"kleiner gleich Null"
Break
Decide (~var >= 1) and (~var <= 10)
Print Balance!,"zwischen 1 und 10"
Break
Else
Print Balance!
EndSwitch
Switch 1
hier sind es einfache TRUE/FALSE Entscheidungen
Decide InList(Albert, hUserList&)
HomeDir$ = "finanz_home"
break
Decide InList(Timo, hUserList&)
Supervisor% = 1
Decide InList(Carlo, hUserList&)
Decide InList(Erwin, hUserList&)
HomeDir$ = "progr_home"
break
Else
HomeDir$ = "gast_home"
EndSwitch
*****************************************************
** und das Ganze noch mal mit dem internen Ablauf: **
*****************************************************
Switch month_name$
Decide "Jan"
implizit: Goto "weiter000"
Decide "Januar"
implizit: weiter000:
month% = 1
Break
EndSwitch
Switch i%
Decide 0
Print i%,"ist gleich 0"
Break
implizit: Goto "weiter000"
Decide 1
implizit: weiter000:
Print i%,"ist gleich 1"
Break
implizit: Goto "weiter001"
Decide 2
implizit: weiter001:
Print i%,"ist gleich 2"
Break
implizit: Goto "weiter002"
Else
implizit: weiter002:
Print i%,"ist weder 0, 1 noch 2"
EndSwitch
Switch i%
Decide 14
implizit: Goto "weiter000"
Decide 21
implizit: weiter000:
implizit: Goto "weiter001"
Decide 22
implizit: weiter001:
Print i%,"ist Teil der Menge [14,21,22]"
Break
implizit: Goto "weiter002"
Decide 7
implizit: weiter002:
implizit: Goto "weiter003"
Decide 9
implizit: weiter003:
implizit: Goto "weiter004"
Decide 11
implizit: weiter004:
implizit: Goto "weiter005"
Decide 12
implizit: weiter005:
implizit: Goto "weiter006"
Decide 99
implizit: weiter006:
Print i%,"ist Teil der Menge: [7,9,11,12,99]"
Break
implizit: Goto "weiter007"
Decide 13
implizit: weiter007:
Print i%,"ist gleich 13"
Break
implizit: Goto "weiter008"
Else
implizit: weiter008:
Print i%
EndSwitch
Switch Balance!
hier soll "~var" den Zugriff auf "Balance!" darstellen
Decide ~var <= 0
Print Balance!,"kleiner gleich Null"
Break
implizit: Goto "weiter000"
Decide (~var >= 1) and (~var <= 10)
implizit: weiter000:
Print Balance!,"zwischen 1 und 10"
Break
implizit: Goto "weiter001"
Else
implizit: weiter001:
Print Balance!
EndSwitch
Switch 1
hier sind es einfache TRUE/FALSE Entscheidungen
Decide InList(Albert, hUserList&)
HomeDir$ = "finanz_home"
break
implizit: Goto "weiter000"
Decide InList(Timo, hUserList&)
implizit: weiter000:
Supervisor% = 1
implizit: Goto "weiter001"
Decide InList(Carlo, hUserList&)
implizit: weiter001:
implizit: Goto "weiter002"
Decide InList(Erwin, hUserList&)
implizit: weiter002:
HomeDir$ = "progr_home"
break
implizit: Goto "weiter003"
Else
implizit: weiter003:
HomeDir$ = "gast_home"
EndSwitch
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 08.05.2006 ▲ |
|
|
|
|
RGH | Wie wäre es mit folgender Syntax: KompilierenMarkierenSeparieren!
Break wird nicht gebraucht
Select month_name$
CaseOf "Jan", "Januar"
month% = 1
CaseOf "Feb", "Februar"
month% = 2
...
EndSelect
Select i%
CaseOf 0
Print i%,"ist gleich 0"
CaseOf 1
Print i%,"ist gleich 1"
CaseOf 2
Print i%,"ist gleich 2"
Otherwise
Print i%,"ist weder 0, 1 noch 2"
EndSelect
Select i%
CaseOf 14, 21, 22
Print i%,"ist Teil der Menge [14,21,22]"
CaseOf 7, 9, 11,12, 99
Print i%,"ist Teil der Menge: [7,9,11,12,99]"
CaseOf 13
Print i%,"ist gleich 13"
Otherwise
Print i%
EndSelect
Das mit Balance geht nicht mit Select,
ist mit traditionellem ElseIf aber auch nicht länger
If Balance! <= 0
Print Balance!,"kleiner gleich Null"
ElseIf (Balance! >= 1) and (Balance! <= 10)
Print Balance!,"zwischen 1 und 10"
Else
Print Balance!
EndIf
Gruß Roland (Diese Syntax funktioniert bei mit nämlich bereits!)
Nachtrag Ich habe mich anstelle des TEST jetzt für CASEOF entschieden. Das erinnert entfernt an die Delphi-Syntax und sollte auch für englisch sprechende Profaner kein sprachliches Problem darstellen. |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 08.05.2006 ▲ |
|
|
|
|
GDL | Hallo Roland,
wäre echt super,da mein derzeitiges Projekt ca. 9000 8byte Datentelegramme pro zyklus ausfiltern und zuordnen muss.
Servus Georg |
|
|
| |
|
|
|
RGH | [quote:35ec1f9b95=GDL]Hallo Roland,
wäre echt super,da mein derzeitiges Projekt ca. 9000 8byte Datentelegramme pro zyklus ausfiltern und zuordnen muss.
Servus Georg[/quote:35ec1f9b95] Hallo Georg,
drin sein wird das SELECT sicher. Nur über die Syntax bin ich mir noch nicht 100%ig im Klaren. Mit dem Keyword TEST kann ich mich noch nicht so recht anfreunden. Außerdem schweben mir zwei Testmodi vor: Einmal so wie jetzt (und in den meisten BASIC- und PASCAL-Varianten), daß nach einem erfolgreichen TEST keine weiteren mehr folgen und ein zweiter Modus, bei dem (wie etwa in C) nach einem erfolreichen Abschnitt trotzdem weiter getestet wird. Dann bräuchte ich statt des TEST also zwei passende Befehlswörter, etwa TRY und RETRY: Ein TRY wird nur dann ausgeführt, wenn noch kein vorhergehendes TRY oder RETRY erfolgreich war, ein RETRY wird immer ausgeführt. Ich werde mal drüber nachdenken ...
Ich denke aber, daß die SELECT-Geschichte in der nächsten Subscriptionsversion in der einen oder anderen Form drin ist.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 09.05.2006 ▲ |
|
|
|