Автор Тема: перемещение строк в блокноте  (Прочитано 8932 раз)

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

Оффлайн Alexey [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: перемещение строк в блокноте
« Ответ #15, Отправлен: Январь 09, 2016, 03:17:28 »
Alofa, благодарю, скрипт работает
- 7 строк заменил на 2
- другие 2 строки раскомментировал. наличие символа ~ несколько смутило, так я думал, что для комментирования всегда достаточно символа ;
в общем, просто убрал оба символа в обеих строках

- порадовало, что не нужно даже выделять нижний блок (с названия песен)
- огорчило, что в течение примерно полусекунды (после нажатия заданного сочетания клавиш и до перемещения названий песен) всё содержимое текстового документа выделяется и тут же выделение убирается. выглядит как большое тёмное мерцание. реально ли не заморачиваясь и ничего особо не меняя его избежать?

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

Re: перемещение строк в блокноте
« Ответ #15 Отправлен: Январь 09, 2016, 03:17:28 »

Alofa

  • Гость
Re: перемещение строк в блокноте
« Ответ #16, Отправлен: Январь 09, 2016, 05:17:47 »
Пробуйте:
(нажмите для показа/скрытия)

огорчило, что в течение примерно полусекунды (после нажатия заданного сочетания клавиш и до перемещения названий песен) всё содержимое текстового документа выделяется и тут же выделение убирается.
Во-первых промаргивание будет всегда, потому что скрипт эмулирует нажатие комбинаций клавиш, одно из которых Ctrl+A (выделить все).
Во вторых у вас все работает медлено, потому что тратится время на срабатывание самой "KeyMan" + запуск данной программы (+ работа антивируса) + срабатывание данной программы.
« Последнее редактирование: Январь 18, 2016, 21:48:35 от Alofa »

Оффлайн Alexey [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: перемещение строк в блокноте
« Ответ #17, Отправлен: Январь 12, 2016, 11:26:56 »
скрипт не справился с переносом такого односимвольного названия песни как 0
оно просто пропустилось и все последующие названия были перенесены не в нужное место, а на одну позицию выше
при этом последний трэк остался вообще без названия

более того, если экспериментально изменить 0 на, например, 01 (или 1999, или 25), то перенос тоже получается неприемлемым, но по-другому:
  TRACK 05 AUDIO
    "
    INDEX 01 21:26:71
а должно быть вот так:
  TRACK 05 AUDIO
    TITLE "0"
    INDEX 01 21:26:71


если же изменить 0 на, например, 0abc, то получается:
  TRACK 05 AUDIO
    abc"
    INDEX 01 21:26:71

вот для удобства копия всего скрипта, которым пользуюсь и который до этого случая я считал полностью рабочим:
(нажмите для показа/скрытия)

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

Re: перемещение строк в блокноте
« Ответ #17 Отправлен: Январь 12, 2016, 11:26:56 »

Alofa

  • Гость
Re: перемещение строк в блокноте
« Ответ #18, Отправлен: Январь 13, 2016, 12:17:58 »
Замените строку:
Код: AutoIt [Выделить]
$TSong = StringRegExp($sText, '.+[^\v]', 3, $Pos)

На эту:
Код: AutoIt [Выделить]
$TSong = StringRegExp($sText, '.*\V', 3, $Pos)

Сейчас нет возможности проверить. Отпишитесь, что получилось.
« Последнее редактирование: Апрель 30, 2018, 22:33:39 от Alofa »

Оффлайн Alexey [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: перемещение строк в блокноте
« Ответ #19, Отправлен: Январь 13, 2016, 13:31:18 »
строку заменил и проверил 2 названия:
1) вместо
  TRACK 05 AUDIO
    TITLE "0"
    INDEX 01 04:00:00
получилось:
  TRACK 05 AUDIO
    "
    INDEX 01 04:00:00

2) вместо
  TRACK 08 AUDIO
    TITLE "19 Again"
    INDEX 01 07:00:00
получилось:
  TRACK 08 AUDIO
     Again"
    INDEX 01 07:00:00

похоже, скрипту любые цифры в самом начале названия не нравятся

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

Re: перемещение строк в блокноте
« Ответ #19 Отправлен: Январь 13, 2016, 13:31:18 »

Оффлайн C2H5OH [?]

  • Знаю я тут одно место с офигенными циркулями...
  • AutoIt Гуру
  • *****
  • Сообщений: 1473
  • Репутация: 332
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: перемещение строк в блокноте
« Ответ #20, Отправлен: Январь 13, 2016, 16:36:15 »
Конечно не нравятся. Проблема вот в этом  '\1' & $TSong[$i] & '\2'
Если у тебя название начинается с цифр (например "19 Again"), то строка замены будет собрана как
'\119 Again\2'
Итого ты имеешь:
а) цифры в названии потеряны,
б) RegExpReplace не находит группы № 119 для выполнения замены.

Поменяй вот так что ли
Код: AutoIt [Выделить]
$sText = StringRegExpReplace($sText, '(TITLE\h*?)""', '\1"' & $TSong[$i] & '"', 1)


А вообще, если ты уверен что между TITLE и "" всегда один пробел, то я б не выделывался с этим \h*?
Код: AutoIt [Выделить]
$sText = StringReplace($sText, 'TITLE ""', 'TITLE "' & $TSong[$i] & '"', 1)

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

Оффлайн Alexey [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: перемещение строк в блокноте
« Ответ #21, Отправлен: Январь 13, 2016, 18:15:46 »
C2H5OH, да, между TITLE и "" всегда 1 пробел, но я проверил обе строки - с ними стало одинаково лучше:
- 19 Again переносится корректно
- только цифры (больше 1 символа) - тоже нормально

- цифра (1 символ) не переносится, а пропускается
- буква (1 символ) не переносится, а пропускается (с 2 и более буквами всё в порядке)
« Последнее редактирование: Январь 13, 2016, 18:26:51 от Alexey »

Alofa

  • Гость
Re: перемещение строк в блокноте
« Ответ #22, Отправлен: Январь 13, 2016, 18:45:13 »
Проблема вот в этом  '\1' & $TSong[$i] & '\2'
Если у тебя название начинается с цифр (например "19 Again"), то строка замены будет собрана как
'\119 Again\2'
Ух ты! Не знал о такой ловушке, не сталкивался. Хотя, как бы сказал Шерлок Х.:"Это элементарно, Ватсон".
C2H5OH Спасибо!

...
- цифра (1 символ) не переносится, а пропускается
- буква (1 символ) не переносится, а пропускается (с 2 и более буквами всё в порядке)
Игнорируйте мой ответ #18.
« Последнее редактирование: Январь 13, 2016, 22:20:26 от Alofa »

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

Re: перемещение строк в блокноте
« Ответ #22 Отправлен: Январь 13, 2016, 18:45:13 »

Оффлайн C2H5OH [?]

  • Знаю я тут одно место с офигенными циркулями...
  • AutoIt Гуру
  • *****
  • Сообщений: 1473
  • Репутация: 332
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: перемещение строк в блокноте
« Ответ #23, Отправлен: Январь 13, 2016, 18:52:55 »
Нееее, наоборот должно быть как написано в ответе #18
Код: AutoIt [Выделить]
$TSong = StringRegExp($sText, '.*\V', 3, $Pos)


У меня в такой редакции проходят названия и "0", и "а".

Alofa

  • Гость
Re: перемещение строк в блокноте
« Ответ #24, Отправлен: Январь 13, 2016, 19:05:19 »
Ладно, домой приеду - разберусь.

Оффлайн Alexey [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: перемещение строк в блокноте
« Ответ #25, Отправлен: Январь 13, 2016, 19:18:24 »
C2H5OH, благодарю, всё правильно переносится после того как я заменил 2 строки, оставив эти:

Код: AutoIt [Выделить]
$sText = StringReplace($sText, 'TITLE ""', 'TITLE "' & $TSong[$i] & '"', 1)


Код: AutoIt [Выделить]
$TSong = StringRegExp($sText, '.*\V', 3, $Pos)


Alofa

  • Гость
Re: перемещение строк в блокноте
« Ответ #26, Отправлен: Январь 13, 2016, 22:28:04 »
Поправил следующие скрипты темы:
 - Ответ #11
 - Ответ #16
« Последнее редактирование: Январь 18, 2016, 21:45:28 от Alofa »

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

Re: перемещение строк в блокноте
« Ответ #26 Отправлен: Январь 13, 2016, 22:28:04 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
3004 Просмотров
Последний ответ Апрель 29, 2010, 01:23:01
от CreatoR
10 Ответов
8422 Просмотров
Последний ответ Январь 06, 2011, 16:23:48
от Viktor217
5 Ответов
3918 Просмотров
Последний ответ Июль 10, 2012, 13:20:35
от AZJIO
5 Ответов
5737 Просмотров
Последний ответ Февраль 07, 2013, 08:51:06
от exHalfer
5 Ответов
3803 Просмотров
Последний ответ Сентябрь 06, 2013, 10:51:03
от graf1024
7 Ответов
1890 Просмотров
Последний ответ Август 29, 2015, 16:38:27
от AngelKent
3 Ответов
1232 Просмотров
Последний ответ Октябрь 12, 2015, 16:43:02
от zexalenin
1 Ответов
1550 Просмотров
Последний ответ Июнь 18, 2016, 14:02:17
от InnI
1 Ответов
886 Просмотров
Последний ответ Октябрь 31, 2017, 09:12:07
от hedji
5 Ответов
702 Просмотров
Последний ответ Июнь 18, 2018, 08:03:37
от pvnn