Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] редактирование файла

Ответить
Настройки темы
[решено] редактирование файла

Аватара для .:TimoXa:.

Пользователь


Сообщения: 77
Благодарности: 20


Конфигурация

Профиль | Отправить PM | Цитировать


Подскажите есть ли возможность редактирование файла в бинарном режиме не в текствой (допустим exe файл какойнибудь, а в нем изменить с смещением какойто байт)?
Подскажите пожалуйста!

Отправлено: 22:04, 24-03-2009

 

Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата:
FileOpen ( "filename", mode )
mode=16 - принудительное бинарное (по байтам) чтение и запись с помощью FileRead и FileWrite
это?

Код: Выделить весь код
#region: - Option
    Opt('MustDeclareVars',      1)
    Opt('TrayIconHide',         0)
    Opt('TrayIconDebug',        1)
#endregion

#region: - Global
    Global  $sNotepadRealPath = 'c:\WINDOWS\NOTEPAD.EXE'
    Global  $hFile
    Global  $sBinaryText
#endregion

$hFile = FileOpen($sNotepadRealPath, 16)
$sBinaryText = FileRead($hFile)

MsgBox(0, '', $sBinaryText)

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:22, 25-03-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для .:TimoXa:.

Пользователь


Сообщения: 77
Благодарности: 20

Профиль | Отправить PM | Цитировать


proxy, спсибо большое, а не подскажешь как делать так чтоб файл полностью читался, а то у меня в файле 290 тысяч символов а autoit открывает только 10 тысяч (

Отправлено: 09:07, 26-03-2009 | #3


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#region: - Option
    Opt('MustDeclareVars',      1)
    Opt('TrayIconHide',         0)
    Opt('TrayIconDebug',        1)
#endregion

#region: - Include
#endregion

#region: - Global, Local
    Global  $iCountReadChar = 9000

    Local   $sFilePath = @SystemDir & '\tapi.dll'
    Local   $aBinaryText
#endregion

$aBinaryText = _File_Read_Binary($sFilePath)
If $aBinaryText <> -1 Then _
    MsgBox(0, 'Последний результат чтения: ' & $aBinaryText[0], $aBinaryText[$aBinaryText[0]])

Func _File_Read_Binary($sFilePath)
    Local   $hFile, $sString, $aBinaryText[1], $i
            $aBinaryText[0] = 0
            $i = 1

    $hFile = FileOpen($sFilePath, 16)
    If $hFile == -1 Then
        MsgBox(32, 'Внимание', 'Невозможно открыть файл:' & @CRLF & $sFilePath & @CRLF & 'Ошибка:' & $hFile)
        Return -1
    EndIf

    While 1
        $sString = FileRead($hFile, $iCountReadChar)
        If @error == -1 Then ExitLoop

        $aBinaryText[0] += 1
        ReDim $aBinaryText[$aBinaryText[0]+1]
        $aBinaryText[$i] = $sString

    ;~  MsgBox(0, 'Результат чтения: ' & $i, $aBinaryText[$i])
        $i += 1
    Wend

    FileClose($hFile)
;~  MsgBox(0, 'Последний результат чтения: ' & $aBinaryText[0], $aBinaryText[$aBinaryText[0]])
    Return $aBinaryText
EndFunc

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:38, 26-03-2009 | #4


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата .:TimoXa:.:
как делать так чтоб файл полностью читался, а то у меня в файле 290 тысяч символов а autoit открывает только 10 тысяч »
чего-то не то говорите - согласно справки размер строки ограничен аж 2Gb = 2147483648 байт
Код: Выделить весь код
$sFile = @SystemDir &"\oembios.bin"
$hFile = FileOpen($sFile, 16)

$bin = FileRead($hFile, FileGetSize($sFile))
ConsoleWrite(BinaryLen($bin) &@CRLF)
к сожалению, штатными средствами поддерживается только поседовательный доступ к файлам - чтобы прочитать байт в любом месте большого файла, приходится полностью прочитывать его от начала файла до нужного места

Отправлено: 08:29, 27-03-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] редактирование файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Недоступно редактирование реестра systeman Хочу все знать 3 30-10-2009 15:15
Доступ - [решено] редактирование реестра texas999 Лечение систем от вредоносных программ 4 26-05-2009 07:17
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28
Условие кодировки. Редактирование файла из cmd. Mss Автоматическая установка Windows 2000/XP/2003 4 19-05-2005 23:25
Редактирование EXE файла FoxPro Giorgievich Программирование и базы данных 7 21-08-2004 22:48




 
Переход