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

  • Май 21, 2013, 22:06:01 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:


Последняя финальная версия AutoIt: 3.3.8.1 (Скачать)
Последняя Beta версия AutoIt: 3.3.9.4 (Скачать)

Реклама

Автор Тема: [Данные, строки] изменить конец строки в файле тхт  (Прочитано 3803 раз)

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

tenitii [?]

помогите написать скрипт который может переписывать значение в конце строки
пример файла
нужно в 5 строчке в конце 0 заменить на 2

R:001:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:002:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:003:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:004:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:005:00:000:00:000000:000000:000000:000000:0000:0062:0144:02
R:006:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:007:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:008:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:009:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:010:00:000:00:000000:000000:000000:000000:0000:0062:0144:00
R:011:00:000:00:000000:000000:000000:000000:0000:0062:0144:00




  Записан

madmasles [?]

  • Глобальный модератор
  • *
  • *****
  • Репутация: 1838
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 4719
  • Версия AutoIt: 3.3.8.1
    • Награды
tenitii
Попробуйте так:
Код: AutoIt [Выделить]
#include <File.au3>

$sFile = @ScriptDir & '\test.txt'
$iString = 5
$sReplase = '2'

$hFile = FileOpen($sFile, 0)
$sFindText = FileReadLine($hFile, $iString)
FileClose($hFile)
$sReplaseText = StringTrimRight($sFindText, 1) & $sReplase
$retval = _ReplaceStringInFile($sFile, $sFindText, $sReplaseText, 0, 0)
If $retval = -1 Then
    MsgBox(0, "ERROR", "The pattern could not be replaced in file: " & $sFile & " Error: " & @error)
    Exit
Else
    MsgBox(0, "INFO", "Found " & $retval & " occurances of the pattern: " & $sFindText & " in the file: " & $sFile)
EndIf

tenitii [?]

все работает отлично

спасибо !




  Записан

madmasles [?]

  • Глобальный модератор
  • *
  • *****
  • Репутация: 1838
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 4719
  • Версия AutoIt: 3.3.8.1
    • Награды
tenitii
Единственный нюанс: если есть одинаковые строки вместе с искомой и одна из них не 5-ая, а, например, 2-ая, то, в моем скрипте заменит 2-ую строку, а не 5-ую. Если заменить:
Код: AutoIt [Выделить]
;...
$retval = _ReplaceStringInFile($sFile, $sFindText, $sReplaseText, 0, 0)
;...
; на
;...
$retval = _ReplaceStringInFile($sFile, $sFindText, $sReplaseText)
;...
то заменит все одинаковые строки. Т.е., если есть одинаковые строки вместе с искомой и менять нужно будет только одну конкретную, то надо скрипт переписывать. Если Вам надо, могу переписать.




  Записан

tenitii [?]

нет спасибо все работает как я и хотел
я для каждой строчки сделал отдельный скрипт
и установил на компютерах в сети каждый под своим номером.

все работает отлично!




  Записан

gregaz [?]

  • AutoIt Гуру
  • *****
  • Репутация: 283
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 1091
  • Версия AutoIt: 3.3.8.1
    • Награды
Вот еще один простенький вариант :
Код: AutoIt [Выделить]
#include<File.au3>
$sFile = @ScriptDir & '\test.txt'
$sText=FileRead($sFile)
MsgBox(0,'$sText',$sText)

$sReplaceString= StringRegExpReplace($sText,"(?s)(?:.+?[\r\n]){4}[\r\n](.+?):\d\d[\r\n].+","\1:02" )

_FileWriteToLine($sFile, 5, $sReplaceString, 1)
$sText=FileRead($sFile)
MsgBox(0,'$sText',$sText)
 


Добавлено: Ноябрь 03, 2010, 20:07:57
Или еще проще :
Код: AutoIt [Выделить]
#include<File.au3>
$sFile = @ScriptDir & '\test.txt'

$sFindString = FileReadLine($sFile, 5)
$sReplaceString= StringRegExpReplace($sFindString,"(.+?):\d\d$","\1:02" )
_FileWriteToLine($sFile, 5, $sReplaceString, 1)
$sText=FileRead($sFile)
MsgBox(0,'$sText',$sText)
 
« Последнее редактирование: Ноябрь 03, 2010, 20:07:57 от gregaz, Причина: Объединение сообщений »



  Записан
Самая большая проблема – её сформулировать. 
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
[Данные, строки] Код AutoIt'a в *.ini файле - можно ли выполнить?
AutoIt для новичков
killbond 16 3861 Последний ответ Ноябрь 22, 2009, 23:42:32
от CreatoR
[Данные, строки] Как узнать количество строк в файле Excel
AutoIt для новичков
Atall 4 4234 Последний ответ Август 18, 2010, 14:29:07
от Atall
[Данные, строки] Изменить формат представления числа из двоичной системы в 10-ую
AutoIt для новичков
gregaz 8 1918 Последний ответ Сентябрь 06, 2010, 16:38:42
от gregaz
[Данные, строки] Поиск текста в файле и выдача номера строки
Стол заказов
Sky-WaLkeR 5 4110 Последний ответ Декабрь 05, 2012, 16:40:30
от AZJIO
[Данные, строки] Поиск данных в txt файле и добавление новой строки
AutoIt для новичков
redwert 2 2150 Последний ответ Декабрь 28, 2010, 09:19:53
от gregaz
[Данные, строки] Как в файле считать данные в переменные.
AutoIt для новичков
Maalik 4 2195 Последний ответ Март 12, 2011, 21:08:22
от Maalik
Перенесено: [Данные, строки] Как в файле считать данные в переменные.
Стол заказов
madmasles 0 1653 Последний ответ Март 13, 2011, 20:34:05
от madmasles
Как изменить файл добавив строки в конец файла?
AutoIt для новичков
c-n1x 4 1338 Последний ответ Июль 02, 2011, 12:20:07
от Kaster
[Данные, строки] Поиск и замена строки в текстовом файле.
Стол заказов
at 5 2322 Последний ответ Январь 05, 2012, 00:52:03
от at
[Данные, строки] Получить длину строки в пикселях.
AutoIt для новичков
gora 31 2501 Последний ответ Июнь 02, 2012, 20:57:25
от Yashied


Реклама

* Последние сообщения на форуме
post Re: GUICtrlSendToDummy для скрытых окон возможна замена на GUICtrlSendMsg?
[AutoIt для новичков] inververs Сегодня в 20:35:05
post Re: GUICtrlSendToDummy для скрытых окон возможна замена на GUICtrlSendMsg?
[AutoIt для новичков] Yashied Сегодня в 19:53:36
post Re: [Мышь, клавиатура] Функции по пикселю
[AutoIt для новичков] Goldenx Сегодня в 19:50:26
post Re: GUICtrlSendToDummy для скрытых окон возможна замена на GUICtrlSendMsg?
[AutoIt для новичков] inververs Сегодня в 19:01:42
post Re: GUICtrlSendToDummy для скрытых окон возможна замена на GUICtrlSendMsg?
[AutoIt для новичков] Yashied Сегодня в 18:56:11
post Re: GUICtrlSendToDummy для скрытых окон возможна замена на GUICtrlSendMsg?
[AutoIt для новичков] inververs Сегодня в 18:46:36
post Re: [Элементы GUI] Использование Image листа в кнопках
[AutoIt для новичков] CreatoR Сегодня в 18:12:55
post Re: Создание сводной таблицы в Экселе
[AutoIt для новичков] inververs Сегодня в 17:51:49
post Re: [Элементы GUI] Поле ввода в GUI (Input)
[AutoIt для новичков] MnM Сегодня в 17:51:40
post Re: GUICtrlSendToDummy для скрытых окон возможна замена на GUICtrlSendMsg?
[AutoIt для новичков] Yashied Сегодня в 17:35:39

* Пользователи онлайн
  • Dot Гостей: 114
  • Dot Скрыт: 0
  • Dot Пользователей: 21
  • Dot Пользователи Online: