|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36565 |
Внимание! Тема переведена в архивное состояние Текущая тема 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 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
![]() Цитата:
На всякий случай поясню: Допустим в одном файле могут встретится 3 различных типа завершения строки, с помощью StringRegExpReplace() я последовательно меняю все @CRLF на @CR, затем @LF на @CR, в конечном счёте в тексте остаётся только @CR который я использую в качестве разделителя. Но можно использовать и @LF - не вижу разницы... |
|||
Отправлено: 03:03, 21-06-2007 | #61 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать proxy
Цитата:
Хотя с другой стороны, кроме меня пока ещё никто не жаловался... #include <File.au3> Dim $FileArray _FileReadToArray("C:\1.txt",$FileArray) $hFile = FileOpen("C:\1.txt",2) $LineFeed = @CRLF For $i=1 To $FileArray[0] If $i = $FileArray[0] Then $LineFeed = '' If $FileArray[$i] <> "Ненужная строка" Then FileWrite($hFile, $FileArray[$i] & $LineFeed) EndIf Next FileClose($hFile) |
|
Отправлено: 04:42, 21-06-2007 | #62 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond
Цитата:
А на счёт изменения функции _FileReadToArray(), я так и не понял, зачем превращать все переводы строк и возврата каретки в символ возврата кареткми (или наоборот ![]() ![]() Так вроде правильнее: По поводу функции для замены текста в файле... Вот моя версия на подобную функцию: $Ret = ReplaceText("C:\test.txt", "Old Text", "New Text") ConsoleWrite($Ret & @LF & @extended) Func ReplaceText($FileName, $OldText, $NewText) If Not FileExists($FileName) Then Return SetError(1, 0, -1) If $OldText = "" Then Return SetError(2, 0, 0) $OldText = String($OldText) Local $hFile = FileOpen($FileName, 0) Local $VarToWrite = FileRead($hFile) FileClose($hFile) If Not StringInStr($VarToWrite, $OldText) Then Return SetError(3, 0, 0) Local $ReplStr = StringReplace($VarToWrite, $OldText, $NewText) Local $Extended = @extended Local $hFileW = FileOpen($FileName, 2) FileWrite($hFileW, $ReplStr) FileClose($hFileW) Return SetError(0, $Extended, 1) EndFunc |
|
------- Отправлено: 06:52, 21-06-2007 | #63 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond
Дааа, оказывается ты прав.... возьмём этот пример: #include <Array.au3> #include <File.au3> Dim $Array FileWrite("test.txt", "Line1" & @LF & "Line2" & @CR & "Line3" & @LF & "Line4") _FileReadToArray("test.txt", $Array) _ArrayDisplay($Array) Если применять этот же пример используя изменённую функцию _FileReadToArray(), то мы получаем “нормальный” массив (как и записи в файле) : Вот полная функция как она, имхо, должна быть построена: Func _FileReadToArray($sFilePath, ByRef $aArray) ;============================================== ; Local Constant/Variable Declaration Section ;============================================== Local $hFile = FileOpen($sFilePath, 0) If $hFile = -1 Then Return SetError(1) $aArray = StringSplit(StringRegExpReplace(FileRead($hFile),"\r|\n", @LF), @LF) FileClose($hFile) Return 1 EndFunc ;==>_FileReadToArray |
------- Отправлено: 07:13, 21-06-2007 | #64 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Но всё же остаётся одна проблема - если в файле содержатся промежуточные символы перевода строки (@LF), то гинерируется пустой элемент массива...
Получается это ошибка функции StringSplit() ? |
------- Отправлено: 07:35, 21-06-2007 | #65 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Diamond
Цитата:
Diamond, Creat0R ...по поводу _FileReadToArray(): - у StringSplit() есть флаг, позволяющий использовать более одного символа для разбиения: - уж коли зашла речь про StringRegExp(), то она вполне самодостаточна: Creat0R Цитата:
|
||
Последний раз редактировалось amel27, 21-06-2007 в 08:44. Отправлено: 08:36, 21-06-2007 | #66 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата:
![]() еще мысли есть у кого-нибудь? плз.. |
|
Отправлено: 09:40, 21-06-2007 | #67 |
![]() Ветеран Сообщения: 1073
|
Профиль | Отправить PM | Цитировать eNcub,
$Wtitle="Мастер новых подключений" $Wtext="Выберите, надо ли автоматически подключаться к Интернету" $Timeout=30 WinWait($Wtitle,$Wtext,$Timeout) If WinExists($Wtitle,$Wtext) Then If Not WinActive($Wtitle,$Wtext) Then WinActivate($Wtitle,$Wtext) If WinWaitActive($Wtitle,$Wtext,$Timeout) Then Send("{UP}{ENTER}") EndIf ![]() |
Отправлено: 10:59, 21-06-2007 | #68 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать XXXler
таак, а что с реестром? этот вариант тоже не прошел... |
Отправлено: 12:10, 21-06-2007 | #69 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать schel4ok
Цитата:
![]() Func _RunInfSection ($filepath, $section = 'DefaultInstall', $mode = 128) If Not(FileExists($filepath)) Then Return -1 Local $ret = RunWait ('rundll32 setupapi,InstallHinfSection '& $section &' '& $mode &' '& FileGetLongName($filepath,1), @SystemDir, @SW_HIDE) Return $ret EndFunc Цитата:
|
||
Отправлено: 12:17, 21-06-2007 | #70 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|