Автор Тема: Замена текста в txt по итоговой строке  (Прочитано 334 раз)

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

Оффлайн Nixon98 [?]

  • Новичок
  • *
  • Сообщений: 18
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
Добрый день.

Может кто нибудь подскажет возможно ли замена даты по строкам на дату по итоговой строке ?

Пример:
  12/03:2019 пород
  12/03/2029 ропоодоо
  12:03/2019 гарлпоогпо
=<%< 14/03/2019


Нужно заменить все даты на ту что после строк( 14/03/2019) разумеется строк и файлов много, по этому и интересна автоматизация.
Может подскажете в какую сторону думать. Заранее всем спасибо !

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

Замена текста в txt по итоговой строке
« Отправлен: Январь 28, 2019, 14:12:36 »

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 882
  • Репутация: 160
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Замена текста в txt по итоговой строке
« Ответ #1, Отправлен: Январь 28, 2019, 14:59:48 »
Дайте пример более расширенный (несколько блоков), лучше прикрепите один из файлов.

Оффлайн Nixon98 [?]

  • Новичок
  • *
  • Сообщений: 18

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Замена текста в txt по итоговой строке
« Ответ #2, Отправлен: Январь 28, 2019, 15:52:22 »
Дайте пример более расширенный (несколько блоков), лучше прикрепите один из файлов.
Прикрепляю файлы




Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 882
  • Репутация: 160
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Замена текста в txt по итоговой строке
« Ответ #3, Отправлен: Январь 28, 2019, 16:17:47 »
В одном файле все строки будут с одной датой (той, что в последней строке) ?
строка с нужной датой всегда начинается с '=' ?
Попробуйте так :
Код: AutoIt [Выделить]
While 1
    $File = FileOpenDialog('выберите файл для обработки', @ScriptDir & "\", "Текстовый файл (*.txt)", 1 + 2)
    If Not @error Then
        $Text = FileRead($File)
        $Date = StringRegExp($Text, '(?:;)(\d{2}-\d{2}-\d{4})(?:;)', 1)
        $Text = StringRegExpReplace($Text, '(\d{2}-\d{2}-\d{4})', $Date[0])
        $hFile = FileOpen($File, 2)
        FileWrite($hFile, $Text)
        FileClose($hFile)
    Else
        ExitLoop
    EndIf
WEnd

« Последнее редактирование: Январь 28, 2019, 16:48:59 от ra4o »

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

Re: Замена текста в txt по итоговой строке
« Ответ #3 Отправлен: Январь 28, 2019, 16:17:47 »

Оффлайн Nixon98 [?]

  • Новичок
  • *
  • Сообщений: 18

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Замена текста в txt по итоговой строке
« Ответ #4, Отправлен: Январь 28, 2019, 18:47:56 »
В одном файле все строки будут с одной датой (той, что в последней строке) ?
строка с нужной датой всегда начинается с '=' ?
Попробуйте так :
Код: AutoIt [Выделить]
While 1
    $File = FileOpenDialog('выберите файл для обработки', @ScriptDir & "\", "Текстовый файл (*.txt)", 1 + 2)
    If Not @error Then
        $Text = FileRead($File)
        $Date = StringRegExp($Text, '(?:;)(\d{2}-\d{2}-\d{4})(?:;)', 1)
        $Text = StringRegExpReplace($Text, '(\d{2}-\d{2}-\d{4})', $Date[0])
        $hFile = FileOpen($File, 2)
        FileWrite($hFile, $Text)
        FileClose($hFile)
    Else
        ExitLoop
    EndIf
WEnd


Спасибо огромное! А есть возможность замены сразу всех файлов их по 100 шт за раз? или я что то не так делаю?

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 882
  • Репутация: 160
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Замена текста в txt по итоговой строке
« Ответ #5, Отправлен: Январь 30, 2019, 22:37:22 »
Цитировать
сразу всех файлов их по 100 шт за раз?
Эти все файлы в одной папке ? Кроме необходимых для замены файлов другие txt файлы могут быть в папке?
Папки  (названия, путь) могут быть разные ?

Оффлайн Nixon98 [?]

  • Новичок
  • *
  • Сообщений: 18

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Замена текста в txt по итоговой строке
« Ответ #6, Отправлен: Февраль 01, 2019, 19:03:04 »
Добрый день.
Нет, в папке только Файлы для замены.
Папки да, всегда разные.

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 882
  • Репутация: 160
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Замена текста в txt по итоговой строке
« Ответ #7, Отправлен: Февраль 02, 2019, 15:07:50 »
При запуске скрипта выбирайте папку, в которой призводить работу над файлами:
(нажмите для показа/скрытия)

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

Re: Замена текста в txt по итоговой строке
« Ответ #7 Отправлен: Февраль 02, 2019, 15:07:50 »

Оффлайн Nixon98 [?]

  • Новичок
  • *
  • Сообщений: 18

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Замена текста в txt по итоговой строке
« Ответ #8, Отправлен: Февраль 03, 2019, 14:41:20 »
Огромное, спасибо.

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

Re: Замена текста в txt по итоговой строке
« Ответ #8 Отправлен: Февраль 03, 2019, 14:41:20 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
8001 Просмотров
Последний ответ Ноябрь 17, 2010, 10:32:39
от MadMax
1 Ответов
5696 Просмотров
Последний ответ Апрель 24, 2011, 13:03:37
от madmasles
3 Ответов
2556 Просмотров
Последний ответ Январь 28, 2013, 19:17:53
от madmasles
7 Ответов
3430 Просмотров
Последний ответ Февраль 21, 2013, 03:10:13
от AZJIO
20 Ответов
6556 Просмотров
Последний ответ Июнь 15, 2013, 10:51:05
от prokazzza
1 Ответов
1180 Просмотров
Последний ответ Декабрь 18, 2014, 02:32:24
от CreatoR
4 Ответов
2528 Просмотров
Последний ответ Май 02, 2016, 00:54:29
от Scampy
8 Ответов
1399 Просмотров
Последний ответ Август 27, 2016, 09:59:32
от necrobit
1 Ответов
1978 Просмотров
Последний ответ Февраль 01, 2017, 14:22:42
от op_joke
11 Ответов
1384 Просмотров
Последний ответ Июнь 11, 2017, 13:33:56
от Aleksander-2000