Hallo Experten,
ich habe ein Problem.
Ich bin mit AutoIt nicht in der Lage ein ss von einem ß zu unterscheiden.
Außerdem habe ich Darstellungsprobleme in SciTE:
#include <Array.au3>
#include <File.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
Local $Array[6] = ["a_ausser", "a_außer", "b_ausser", "b_außer", "c_ausser", "c_außer"]
_ArraySort($Array, 0, 0)
For $i=0 to UBound($Array)-1
ConsoleWrite("Index " & $i & ": " & $Array[$i] & @CRLF)
Next
;BinarySearch
ConsoleWrite("BinarySearchIndex: " & _ArrayBinarySearch($Array, "b_außer", 0) & @CRLF)
ConsoleWrite("BinarySearchIndex: " & _ArrayBinarySearch($Array, "b_ausser", 0) & @CRLF)
;~ ConsoleWrite("_ArraySearchIndex: " & _ArraySearch($Array, "b_außer", 0) & @CRLF)
;~ ConsoleWrite("_ArraySearchIndex: " & _ArraySearch($Array, "b_ausser", 0) & @CRLF)
;Export und Import
ConsoleWrite("Export und Import" & @CRLF)
_FileWriteFromArray(FileOpen(@ScriptFullPath & ".array", $FO_OVERWRITE + $FO_ANSI), $Array, 0) ;Hier kann ich "ausser" suchen und finde auch nur "ausser" in einem Editor
;~ _FileWriteFromArray(FileOpen(@ScriptFullPath & ".array", $FO_OVERWRITE + $FO_UTF8_NOBOM), $Array, 0) ;IDENTISCH ;Hiermit kann ich nach "ausser" suchen und finde auch "außer" in einem Editor
;~ _FileWriteFromArray(FileOpen(@ScriptFullPath & ".array", $FO_OVERWRITE + $FO_UTF8), $Array, 0) ;IDENTISCH ;Hiermit kann ich nach "ausser" suchen und finde auch "außer" in einem Editor
;~ ConsoleWrite("FileEncoding: " & FileGetEncoding(@ScriptFullPath & ".array") & @CRLF)
ReDim $Array[0]
_FileReadToArray(@ScriptFullPath & ".array", $Array)
_ArraySort($Array, 0, 1)
For $i=0 to UBound($Array)-1
ConsoleWrite("Index " & $i & ": " & $Array[$i] & @CRLF)
Next
;BinarySearch
ConsoleWrite("BinarySearchIndex: " & _ArrayBinarySearch($Array, "b_außer", 1) & @CRLF)
ConsoleWrite("BinarySearchIndex: " & _ArrayBinarySearch($Array, "b_ausser", 1) & @CRLF)
;~ ConsoleWrite("_ArraySearchIndex: " & _ArraySearch($Array, "b_außer", 0) & @CRLF)
;~ ConsoleWrite("_ArraySearchIndex: " & _ArraySearch($Array, "b_ausser", 0) & @CRLF)
;Interessante Ausgaben:
ConsoleWrite("Interessante Ausgaben: ÄÖÜäöüß" & @CRLF)
Alles anzeigen
Hier einmal ein paar Ausgaben:
ScriptDatei: ANSI
Settings: #~ utf8.auto.check=4 # detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM
Ausgaben:
>Running AU3Check (3.3.14.2) from:S:\Programmierung\AutoIt\Programme\AutoIt3 input:S:\Programmierung\Scripte\_am Entwickeln\Movie DB Info\_GENUTZTES\ausser_außer.au3
+>10:26:41 AU3Check ended.rc:0
>Running:(3.3.14.2):S:\Programmierung\AutoIt\Programme\AutoIt3\autoit3_x64.exe "S:\Programmierung\Scripte\_am Entwickeln\Movie DB Info\_GENUTZTES\ausser_außer.au3"
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
Index 0: a_ausser
Index 1: a_außer
Index 2: b_ausser
Index 3: b_außer
Index 4: c_ausser
Index 5: c_außer
BinarySearchIndex: 2 <-- Hier sollte Index 3 mit b_außer gefunden werden
BinarySearchIndex: 2
Export und Import
Index 0: 6
Index 1: a_ausser
Index 2: a_außer
Index 3: b_ausser
Index 4: b_außer
Index 5: c_ausser
Index 6: c_außer
BinarySearchIndex: 3 <-- Hier sollte Index 4 mit b_außer gefunden werden
BinarySearchIndex: 3
Interessante Ausgaben: ÄÖÜäöüß
+>10:26:41 AutoIt3.exe ended.rc:0
Alles anzeigen
Hier nochmal:
ScriptDatei: UTF8 without BOM
Settings: utf8.auto.check=4 # detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM
Ausgaben:
>Running AU3Check (3.3.14.2) from:S:\Programmierung\AutoIt\Programme\AutoIt3 input:S:\Programmierung\Scripte\_am Entwickeln\Movie DB Info\_GENUTZTES\ausser_außer.au3
+>10:25:10 AU3Check ended.rc:0
>Running:(3.3.14.2):S:\Programmierung\AutoIt\Programme\AutoIt3\autoit3_x64.exe "S:\Programmierung\Scripte\_am Entwickeln\Movie DB Info\_GENUTZTES\ausser_außer.au3"
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
Index 0: a_ausser
Index 1: a_au?r
Index 2: b_ausser
Index 3: b_au?r
Index 4: c_ausser
Index 5: c_au?r
BinarySearchIndex: 2 <-- Hier sollte Index 3 mit b_außer gefunden werden
BinarySearchIndex: 2
Export und Import
Index 0: 6
Index 1: a_ausser
Index 2: a_au?r
Index 3: b_ausser
Index 4: b_au?r
Index 5: c_ausser
Index 6: c_au?r
BinarySearchIndex: 3 <-- Hier sollte Index 4 mit b_außer gefunden werden
BinarySearchIndex: 3
Interessante Ausgaben: R???
+>10:25:10 AutoIt3.exe ended.rc:0
Alles anzeigen
zu beachten sind hier die Unterschiede bei den ÄÖÜäöüß.
Bei dem einen wird das ß in den ersten Zeilen verändert:
>Running AU3Check (3.3.14.2) from:S:\Programmierung\AutoIt\Programme\AutoIt3 input:S:\Programmierung\Scripte\_am Entwickeln\Movie DB Info\_GENUTZTES\ausser_außer.au3
Bei dem anderen wird es in meinem Ausgaben geändert:
Interessante Ausgaben: R???
Aber das es in beiden Fällen richtig läuft bekomme ich nicht hin.
SciTE und AutoIt habe ich quasi frisch installiert.
Wenn ich mit einerm Editor die .array Datei öffne, dann kann ich ausser und außer nur bei der ANSI codierten Datei unterscheiden.
Was ich in der SciTE GlobalConfig gefunden habe:
SciTE GlobalSettings:
# Internationalisation
#NewFileEncoding=CodePage/UTF8BOM/UTF8/UTF16BE/UTF16LE # Only available in SciTE4AutoIt3 version
#~ Enhance function of auto checking utf8: providing two methods
#~ utf8.auto.check=1 # detect utf8 and add BOM automatically Credits to SciTE-RU
#~ utf8.auto.check=2 # detect utf8 and do not add BOM
#~ utf8.auto.check=3 # detect ascii high characters and if none found set default encoding to UTF8 and add BOM
#~ #~ #~ #~ #~ #~ #~ #~ #~ #~ utf8.auto.check=4 # detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM
#~ #~ #~ #~ #~ #~ #~ #~ #~ #~
# Japanese input code page 932 and ShiftJIS character set 128
#code.page=932
#character.set=128
# Unicode
#~ code.page=65001
code.page=0
#character.set=204
#command.discover.properties=python /home/user/FileDetect.py "$(FilePath)"
# Required for Unicode to work on GTK+:
#LC_CTYPE=en_US.UTF-8
if PLAT_GTK
output.code.page=65001
if PLAT_MAC
output.code.page=65001
Alles anzeigen
Ich denke ich habe ein Problem mit dem UTF8 und ANSI...