|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36569 |
Внимание! Тема переведена в архивное состояние Текущая тема http://forum.oszone.net/thread-98914.html (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Альтернатива подобной функции:
Func _FileReadToArray($sFilePath) ;============================================== ; Local Constant/Variable Declaration Section ;============================================== Local $hFile = FileOpen($sFilePath, 0) Local $RetArr[1], $Line, $i=1 If $hFile = -1 Then Return SetError(1) While 1 $Line = FileReadLine($hFile, $i) If @error = -1 Then ExitLoop If $Line <> "" Then ReDim $RetArr[UBound($RetArr)+1] $RetArr[UBound($RetArr)-1] = $Line EndIf $i += 1 WEnd $RetArr[0] = UBound($RetArr)-1 FileClose($hFile) Return $RetArr EndFunc ![]() |
------- Отправлено: 02:41, 22-06-2007 | #81 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Они туда попадают, потому что ты их с самого начала записываешь в текстовой файл. ![]() Пожалуй возьму эту функцию на вооружение... Но всё таки, мне кажется что я сделал всё правильно... |
Отправлено: 02:55, 22-06-2007 | #82 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond
Цитата:
![]() |
|
------- Отправлено: 02:56, 22-06-2007 | #83 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R, Diamond
Цитата:
![]() - считать ли пустой строкой промежуток между началом файла и разделителем (@LF/@CR); - считать ли пустой строкой промежуток между и спецсимволом и концом файла; - как разбивать на пустые строки произвольную последовательность разделителей. Обычно за разделитель считают именно @LF, а все вхождения @CR просто удаляют, соответственно последовательность @LF@LF будет означать "разделитель-пустая строка", при этом ответ на первые два вопроса чаще положительный... Можно договориться считать за разделители @CR и @LF, тогда последовательность @CRLF опять же вернет пустую строку (между ними). Мне представляется наиболее удобным следующий вариант: - ДА - НЕТ - разделители: пары @CRLF/@LFCR и в последнюю очередь одиночные @CR и @LF реализация через RegExp: P.S. Ктати, в RegExp метасимволы '^' и '$' по умолчанию различают только позиции в начале и конце файла (т.е. всей строки), а с модификатором '(?m)' указывают на позиции после- и перед- @LF соответственно... |
|
Последний раз редактировалось amel27, 22-06-2007 в 06:56. Отправлено: 06:50, 22-06-2007 | #84 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
#include <Array.au3> $TestFileHandle = FileOpen("Test.txt", 2) FileWrite($TestFileHandle, @CR & "Line1" & @LF & @CR & @LF & @CR & @LF & @CR & "Line2" & @CR & "Line3" & @LF & "Line4" & @CRLF) FileClose($TestFileHandle) Dim $Array _FileReadToArray("Test.txt", $Array) _ArrayDisplay($Array) Func _FileReadToArray($sFilePath, ByRef $RetArr) Local $hFile = FileOpen($sFilePath, 0) If $hFile = -1 Then Return SetError(1) $RetArr = StringRegExp(FileRead($hFile), '(?s)(.*?)(?:\n\r|\r\n|[\n\r])', 3) $RetArr[0] = UBound($RetArr)-1 FileClose($hFile) Return $RetArr EndFunc Кстати, я проверил скорость выполнения функции - С использованием RegExp, в 5-6 раз быстрее чем используя цикл, но зато при использовании цикла возвращаются только текстовые строки ![]() |
|
------- Отправлено: 08:05, 22-06-2007 | #85 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
|
|
Последний раз редактировалось amel27, 22-06-2007 в 13:38. Отправлено: 12:54, 22-06-2007 | #86 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать amel27
Цитата:
Цитата:
...Если общего правила не существует - то этот вариант, как мне кажется, наиболее подходит. -Да |
||
Отправлено: 00:43, 23-06-2007 | #87 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Цитата:
|
||
------- Отправлено: 01:18, 23-06-2007 | #88 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Diamond
Цитата:
Creat0R Цитата:
|
||
Отправлено: 05:11, 23-06-2007 | #89 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
Цитата:
![]() |
||
------- Отправлено: 07:42, 23-06-2007 | #90 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|