Автор Тема: [Баг] Работа FileOpen() в версии 3.3.2.0 и 3.3.4.0 и выше.  (Прочитано 7069 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Вопрос у меня по версии 3.3.4.0.
В 3.3.2.0. для записи в файл новых данных я использовал связку
Код: AutoIt [Выделить]
FileOpen($file, 2)
FileWrite($file, "Line1")

В изменениях в 3.3.4.0.сказано
Цитировать
-Убрано: Режим чтения "RAW" из FileOpen().
Больше изменений по FileOpen() я не нашел.
Тем не менее я столкнулся с тем, что в 3.3.4.0 и выше при использовании
Код: AutoIt [Выделить]
FileOpen($file, 2)
FileWrite($file, "Line1")

запись в файл не происходит. Если убрать FileOpen(), то все в порядке - пишет. Столкнулся с этим здесь:
Работа с текстом (сравнить строки в файле)
Как теперь правильно произвести запись в файл?

PS
Может быть я не там, где надо, создал тему. В этом случае, господа модераторы, перенесите ее, пожалуйста туда, где она должна быть.
« Последнее редактирование: Февраль 14, 2010, 01:31:45 от CreatoR, Причина: Изменён префикс »

Русское сообщество AutoIt

[Баг] Работа FileOpen() в версии 3.3.2.0 и 3.3.4.0 и выше.
« Отправлен: Февраль 14, 2010, 00:01:57 »

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
$file = 'Path to the file'
$hFile = FileOpen($file, 2)
FileWrite($hFile, "Line1")

если файл открыт для чтения, то в дальнейшем нужно записывать через хендл, а не через путь


Добавлено: Февраль 14, 2010, 00:19:58
просто, по всей видимости, раньше AutoIt не запрещал записывать файл, даже если хендл был у другой функции. теперь же ограничения стали более жесткими.
Конференция посвященная AutoIt на jabber.ru - [email protected]
Как попасть на конференцию читаем тут


Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790

  • Автор темы
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Kaster
Я ничего не понимаю. Специально скачал zip-архив 3.3.4.0 и посмотрел справку по FileOpen():
Цитировать
2 = Write mode (erase previous contents)
по FileWrite():
Цитировать
Remarks
The file must be opened in write mode or the FileWrite command will fail
То есть изменений, по сравнению с предыдущей версией(3.3.2.0) нет. А записывает только через "handle". Почему?

Русское сообщество AutoIt

Re: [Данные, строки] Работа FileOpen() в версии 3.3.2.0 и 3.3.4.0 и выше.
« Ответ #2 Отправлен: Февраль 14, 2010, 00:41:47 »

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
madmasles  [?]
Цитировать
А записывает только через "handle"
не только. просто если открыт файл через FileOpen, то дальнейший доступ к файлу блокируется. только через хендл. либо через функции WinAPI

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790

  • Автор темы
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Kaster
Но ведь FileOpen() mode 2 - открыть файл для записи и удалить содержимое. Получается, что 3.3.4.0 сам себе противоречит. Сам открывает файл для записи и сам же его блокирует и не дает ничего записать.

Русское сообщество AutoIt

Re: [Данные, строки] Работа FileOpen() в версии 3.3.2.0 и 3.3.4.0 и выше.
« Ответ #4 Отправлен: Февраль 14, 2010, 00:54:44 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8075
  • Репутация: 2313
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.14.0
madmasles
Не нужно всё усложнять. Файл раньше мог быть открыт и при этом в него можно было писать используя FileWrite("file", ""), теперь это нельзя делать, т.к залатали эту багу (запись в открытый файл без дескриптера).

P.S
Похожая тема уже есть: http://autoit-script.ru/index.php?topic=1048.0


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
madmasles  [?]
Цитировать
Сам открывает файл для записи и сам же его блокирует и не дает ничего записать
не дает записать напрямую через FileWrite($path) или через любой другой хендл. а через свой же - записать можно.

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790

  • Автор темы
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
CreatoR
Kaster
Цитировать
залатали эту багу...
Залатали - слава Богу. Просто информации об этом нет.

Русское сообщество AutoIt

Re: [Баг] Работа FileOpen() в версии 3.3.2.0 и 3.3.4.0 и выше.
« Ответ #7 Отправлен: Февраль 14, 2010, 01:41:16 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8075
  • Репутация: 2313
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.14.0
madmasles  [?]
Цитировать
информации об этом нет
Есть, просто ту версию я не переводил, оно есть тут (англ.).

И кстати это вроде "исправили" в бете:

Цитировать
Исправлено: Регрессия в FileOpen() которая не позволяла открывать файлы в режиме чтения в том случае если файлы уже были открыты в режиме записи

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790

  • Автор темы
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
CreatoR  [?]
Цитировать
оно есть тут (англ.).
"Тут" нет об этом информации. У Вас полный перевод AutoIt 3.3.4.0 - Финал..

CreatoR  [?]
Цитировать
И кстати это вроде "исправили"
У кого бета установлена, проверьте, пожалуйста.

Оффлайн SyDr [?]

  • Локальный модератор
  • *
  • Сообщений: 650
  • Репутация: 157
  • Пол: Мужской
  • Сидра
    • Награды
  • Версия AutoIt: 3.3.12.0
Исправили

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790

  • Автор темы
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
SyDr
Слава Богу! :)

Русское сообщество AutoIt

Re: [Баг] Работа FileOpen() в версии 3.3.2.0 и 3.3.4.0 и выше.
« Ответ #11 Отправлен: Февраль 14, 2010, 11:13:13 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
1747 Просмотров
Последний ответ Май 06, 2015, 21:25:08
от Tapok
2 Ответов
1166 Просмотров
Последний ответ Май 13, 2015, 20:51:08
от Tapok
1 Ответов
1035 Просмотров
Последний ответ Июнь 15, 2015, 17:03:32
от madmasles
6 Ответов
2030 Просмотров
Последний ответ Март 30, 2016, 16:53:24
от InnI
7 Ответов
805 Просмотров
Последний ответ Октябрь 12, 2018, 18:50:57
от InnI
4 Ответов
655 Просмотров
Последний ответ Декабрь 22, 2017, 05:05:59
от Jeikob
2 Ответов
239 Просмотров
Последний ответ Октябрь 08, 2018, 21:41:27
от DR_ALF
3 Ответов
150 Просмотров
Последний ответ Март 19, 2019, 20:47:10
от ЭйчЭйч
0 Ответов
382 Просмотров
Последний ответ Март 25, 2019, 00:38:17
от CreatoR
9 Ответов
526 Просмотров
Последний ответ Май 20, 2019, 16:36:04
от saraconor