Alexey_A
Новичок
- Сообщения
- 8
- Репутация
- 0
Есть карточка контакта, выгруженная из телефона, которая представляет собой обычный текстовый файл. Файл отлично открывается всем: Far, Word, Notepad, TextPad, Notepad++, а при чтении в AutoIt получается неведомо что. FileRead воспринимает файл как бинарный (похоже).
Проблема, как удалось установить, в самом последнем символе. Если его удалить, файл начинает читаться самым обычным образом.
Что помогает: если в FileOpen поставить флаг 16 (принудительное чтение в бинарном режиме), а потом выполнить BinaryToString, то удаётся получить нормальные данные, не удаляя этот символ.
Код, чтобы увидеть ерунду:
Код, который позволяет увидеть нормальные данные:
Файл прикладываю.
Вопросы:
1) Можно ли заставить AutoIt читать файл принудительно как текстовый (или игнорировать не-ASCII символы), как противоположность флагу 16, который включает принудительный бинарный режим?
2) Можете ли подсказать, что не так с этим последним символом, и почему он делает файл в представлении AutoIt не текстовым?
Проблема, как удалось установить, в самом последнем символе. Если его удалить, файл начинает читаться самым обычным образом.
Что помогает: если в FileOpen поставить флаг 16 (принудительное чтение в бинарном режиме), а потом выполнить BinaryToString, то удаётся получить нормальные данные, не удаляя этот символ.
Код, чтобы увидеть ерунду:
Код:
$fFile = FileOpen('sample.txt', 0)
$sFileData = FileRead($fFile)
FileClose($fFile)
MsgBox(0, 'File data', $sFileData)
Код, который позволяет увидеть нормальные данные:
Код:
$fFile = FileOpen('sample.txt', 16)
$sFileData = FileRead($fFile)
FileClose($fFile)
MsgBox(0, 'File data', BinaryToString($sFileData))
Файл прикладываю.
Вопросы:
1) Можно ли заставить AutoIt читать файл принудительно как текстовый (или игнорировать не-ASCII символы), как противоположность флагу 16, который включает принудительный бинарный режим?
2) Можете ли подсказать, что не так с этим последним символом, и почему он делает файл в представлении AutoIt не текстовым?