| |
|
|
| Hallo, hab grad die Syntax-Erweiterungen in der xpse-Beschreibung getestet, komme aber mit dem beschriebenen For ... to... step .. do nicht klar. Oder war das eine Ankündigung für die nächste Version? Es wird ein fehlendes Begin angemotzt... Wo gehört das hin, und wie beende ich den Block? EndFor ?? |
|
|
| |
|
|
|
| for x=0 to 200 do begin blub end
oder
for x=0 to 200 step 20 do begin blub end
for x=200 downto 0 do begin blub end
... |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.08.2008 ▲ |
|
|
|
|
Frank Abbing | Ja, deren Schreibweise viel kürzer und simpler ist... ... auch wenn zum Schluss besser ein EndWhile dort stände! |
|
|
| |
|
|
|
| ähm... danke, aber mit einem nackten X geht da garnix, lässt sich auch nicht declaren. Es geht bei mir aber aus anderen Gründen auch nicht, zumindest nicht oft:
{$iq} declare x& for x& = 0 to 200 step 20 do begin print "0"; end for x& = 0 to 200 step 20 do begin print "1"; end waitinput end
...liefert eine Fehlermeldung in der .xpia Datei, die ein undeclaretes INC betrifft. Vielleicht mag der Precompiler das Semikolon nicht - aber wie bitte bring ich dann die Ziffern aneinander ran, ohne erst kompliziert einen Sammelstring mit + aufzubauen? Inzwischen kenn ich zwar den MkStr$()-Befehl, aber es geht um die prinzipielle Anwendung von ";" wie im guten alten BASIC Gruss P. Specht |
|
|
| |
|
|
|
| XPSE macht da überhaupt gar keine WhileLoop-Schleifen draus. Wie sollte man denn damit mit einer Variable (z.B. X) zählen können, und das auch verschachtelt. "Wegen" XProfan11 hat XPSE im Bezug auf die ForSchleifen grad einen BUG, diese "INC-Meldung" die Du dort ansprichst muss ich erst korrigieren. Das Semikolon ist kein Problem. Siehe [...] bzw. [...]
Wenn ich wieder zurück bin, so hab ichs ja versprochen, gibts natürlich zeitnah ein Update. (Aber erst nach Auspacken meiner Zahnbürste.) |
|
|
| |
|
|
|
Jörg Sellmeyer | Wie man hier schön sieht, sind die beiden letzten WhileLoop-Varianten schneller. Dagegen ist die einfache WhileLoop-Schleife langsamer als die von XPSE erzeugt While-Schleife. Ich hätte eher das Gegenteil vermutet. KompilierenMarkierenSeparieren $IFNDEF INTERPRETER
{$cleq}
$ENDIF
ClearClip
Set("Decimals", 0)
Declare x&
Cls
Sleep 3000
Var c& = &GetTickCount
for x&=0 to 10000 do begin
Locate 1,1:print x&
end
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount
for x&=0 to 10000 step 1 do begin
Locate 4,1:print x&
end
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount
for x&=10000 downto 0 do begin
Locate 7,1:print x&
end
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
Print "###############################"
c& = &GetTickCount
WhileLoop x&, 10000
Locate 10,1:print &Loop
Wend
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount
WhileLoop x&,10000,1
Locate 13,1:print &Loop
Wend
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount
WhileLoop 10000,x&,-1
Locate 16,1:print &Loop
Wend
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
WaitInput
| Ergebnisse: 1922 2578 2578 2484 2469 2484
| |
Die Greenbox wollte ich doch auch mal anbringen
[offtopic] | Warum sieht die denn so seltsam aus? | |
[/offtopic]
| Ergebnisse: 1922 2578 2578 2484 2469 2484
| |
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.08.2008 ▲ |
|
|
|
|
Frank Abbing | Das Testprogramm sollte zuerst alle Laufwerksaktivitäten abwarten, wobei ein vorangestelltes Sleep 3000 ungemein hilft. Hier mein (abweichendes) Ergebnis, wobei alle XPSE-Schleifen langsamer arbeiten:
1140 1110 1093 #### 1047 1094 1047 |
|
|
| |
|
|
|
Jörg Sellmeyer | Wow! Was hast Du denn für einen Rechner. Ich dachte mein neuer Intel Dualcore 4600 @2.4GH wäre schnell. Meine Ergebnisse jetzt:
2547 2578 2547 2468 2469 2453
Sind aber einige Schwankungen drin:
2578
1859
2531
2469
2453
2469
Besonders iFs erste Schleife wird langsamer, wenn das Hauptfenster vor dem ersten Print schon da ist. Hätte ich auch nicht mit gerechnet... Ich hab Sleep und Cls mal eingebaut. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.08.2008 ▲ |
|
|
|
|
Frank Abbing | Hüstel, mein oller AMD Athlon 64 mit 2.2 GHz und 1 GB RAM ist schon fast antique... |
|
|
| |
|
|
|
| Weiss nicht, warum meine Mühle heute so langsam ist... Von 3,4 GHz HT ist jedenfalls nix zu merken: 2907 2906 2891 #### 2797 2812 2813
Also die ENDs der BEGIN blöcke gefallen mir gar nicht. Bei END denke ich stets an den letzten compilierten Befehl. Wie wärs mit FEND bei For-Schleifen? oder BEND für BLOCK-END? Gibts andere Einsatzmöglichkeiten für BEGIN, oder gehört der zur FOR-Schleife?
Gruss |
|
|
| |
|
|
|
Frank Abbing | Naheliegender wäre vielleicht Next gewesen... |
|
|
| |
|
|