Problem mit Endlosschleife...
-
Bitnugger -
13. Juni 2017 um 23:47 -
Erledigt
-
-
-
Meine Frage war eigentlich als kleiner Scherz gedacht... aber mal gut, dass ich es getan habe... so habe ich wieder was Neues gelernt... 9e999... hm!
-
Meine Frage war eigentlich als kleiner Scherz gedacht
Ich weiß, aber du hast es in H&Ü gepostet also kriegst du trotzdem von mir eine ernstgemeinte Antwort.
-
also kriegst du trotzdem von mir eine ernstgemeinte Antwort.
die ich auch zu schätzen weiß...
PS: Ob ich die Ausgabe von ConsoleWrite zu meinen Lebzeiten noch sehen werde, ist aber fraglich?!
-
Ich habe das gerade mal getestet... und zu meinem Erstaunen hat es NICHT wie erwartet funktioniert!
Es ist aber definitiv eine Endlosschleife, denn $i bleibt einfach bei 9e307 stehen bleibt...
AutoItConsoleWrite('Bitte warten... bin gleich fertig...' & @CRLF) ; lol For $i = 9e307 To 9e999 Step 1 If $i > 9e307 Then ConsoleWrite('$i > ' & $i & @CRLF) If $i < 9e307 Then ConsoleWrite('$i < ' & $i & @CRLF) If $i = 9e307 Then ConsoleWrite('$i = ' & $i & @CRLF) Next ConsoleWrite('Ich bin der Größte!!! ;-)' & @CRLF)
-
- Offizieller Beitrag
Interessantes Phänomen!
Du hast die Grenze von AutoIt entdeckt!
Man kann das Ganze sogar noch weiter eingrenzen:AutoIt
Alles anzeigenHotKeySet('{ESC}', '_Exit') ConsoleWrite('Bitte warten... bin gleich fertig...' & @CRLF) ; lol Global $iOld = 0, $iTimer = TimerInit(), $iDiff = 0 For $i = 9.007199254e+15 To 2^53 If $i = $iOld Then ConsoleWrite('Größte Zahl = ' & $i & @CRLF) ExitLoop EndIf If TimerDiff($iTimer) - $iDiff > 250 Then ToolTip($i) $iDiff = TimerDiff($iTimer) EndIf $iOld = $i Next ConsoleWrite('Ich bin der Größte!!! ;-)' & @CRLF) Func _Exit() Exit EndFunc
-
Hehe, sehr schön... aber nun stimmt ja die Aussage nicht mehr, dass ich der Größte bin.
Da ich bei mir in SciTE nur noch mit "UTF-8 mit BOM" hantiere, musste ich noch eine kleine Änderung vornehmen, damit die Umlaute in der Console korrekt dargestellt wird...
AutoIt
Alles anzeigen#include <WinAPI.au3> HotKeySet('{ESC}', '_Exit') _CW('Bitte warten... bin gleich fertig...' & @CRLF) ; lol Global $iOld = 0, $iTimer = TimerInit(), $iDiff = 0 For $i = 9.007199254e+15 To 2^53 If $i = $iOld Then _CW('Größte Zahl = ' & $i & @CRLF) ExitLoop EndIf If TimerDiff($iTimer) - $iDiff > 250 Then $iDiff = (ToolTip($i) -1) + TimerDiff($iTimer) $iOld = $i Next _CW('Ich bin der Größte!!! ;-)' & @CRLF) Func _CW($sText) ConsoleWrite(_WinAPI_WideCharToMultiByte($sText, 65001) & @CRLF) EndFunc Func _Exit() Exit EndFunc
-
Hallo @Bitnugger,
Ich glaube ich hatte wegen der Umlaute mal folgenden Tipp von hier befolgt und die Einstellungen bearbeitet. https://www.autoitscript.com/forum/topic/17…ding-to-v33140/
Jedenfalls werden Umlaute bei mir mit UTF8 mit BOM richtig dargestellt. -
Danke, aber das habe ich bereits gemacht... nicht wie fälschlicherweise auf der Seite beschrieben, in der Datei SciTEGlobal.properties, sondern in der Datei SciTEUser.properties.
Ich habe die SciTE Version 3.7.3 installiert...
AutoIt
Alles anzeigen#include <WinAPI.au3> HotKeySet('{ESC}', '_Exit') _CW('Bitte warten... bin gleich fertig...' & @CRLF) ; lol Global $iOld = 0, $iTimer = TimerInit(), $iDiff = 0 For $i = 9.007199254e+15 To 2^53 If $i = $iOld Then _CW('Größte Zahl = ' & $i & @CRLF) ExitLoop EndIf If TimerDiff($iTimer) - $iDiff > 250 Then $iDiff = (ToolTip($i) -1) + TimerDiff($iTimer) $iOld = $i Next _CW('Ich bin der Größte!!! ;-)' & @CRLF) Func _CW($sText) If @Compiled Then ConsoleWrite(_WinAPI_WideCharToMultiByte($sText, 1) & @CRLF) ; Ausgabe in der CMD mit OEM 850 Codepage Else ConsoleWrite(_WinAPI_WideCharToMultiByte($sText, 65001) & @CRLF) ; Ausgabe in SciTE mit UTF-8 Codepage EndIf EndFunc Func _Exit() Exit EndFunc
-
Hm, dann habe ich wohl noch etwas anderes geändert. Da schaue ich später mal nach.
Jedenfalls ist bei mir die Konsolenausgabe gut. Wenn ich dein Beispiel nutze zerhackt mir _WinAPI_WideCharToMultiByte($sText, 65001) die Ausgabe. -
Wenn du das Script mit der Codepage 65001 (UTF8 mit BOM) gespeichert hast und SciTE so eingestellt ist, dass Ein-/Ausgaben mit eben dieser Codepage gemacht werden sollen, muss du den Text zumindest für die Ausgabe in der CMD konvertieren (OEM 850). In SciTE sollte das aber eigentlich ohne funktionieren, was es bei mir aber nicht tut....
Edit: Jetzt habe ich die Einstellungen in der Datei SciTEUser.properties deaktiviert und siehe da... für die Ausgabe in SciTE geht es nun ohne mein Zutun... dann muss ich nur noch für die Ausgabe in der CMD, wenn das Script kompiliert ist, konvertieren. Die Scite-Console kann demach also nichts mit UTF-8 anfangen...