Что нового

перемещение строк в блокноте

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Конечно не нравятся. Проблема вот в этом '\1' & $TSong[$i] & '\2'
Если у тебя название начинается с цифр (например "19 Again"), то строка замены будет собрана как
'\119 Again\2'
Итого ты имеешь:
а) цифры в названии потеряны,
б) RegExpReplace не находит группы № 119 для выполнения замены.

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


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

Alexey

Новичок
Сообщения
171
Репутация
0
C2H5OH, да, между TITLE и "" всегда 1 пробел, но я проверил обе строки - с ними стало одинаково лучше:
- 19 Again переносится корректно
- только цифры (больше 1 символа) - тоже нормально

- цифра (1 символ) не переносится, а пропускается
- буква (1 символ) не переносится, а пропускается (с 2 и более буквами всё в порядке)
 
A

Alofa

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

Alexey сказал(а):
...
- цифра (1 символ) не переносится, а пропускается
- буква (1 символ) не переносится, а пропускается (с 2 и более буквами всё в порядке)
Игнорируйте мой ответ #18.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Нееее, наоборот должно быть как написано в ответе #18
Код:
$TSong = StringRegExp($sText, '.*\V', 3, $Pos)


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

Alexey

Новичок
Сообщения
171
Репутация
0
C2H5OH, благодарю, всё правильно переносится после того как я заменил 2 строки, оставив эти:

Код:
$sText = StringReplace($sText, 'TITLE ""', 'TITLE "' & $TSong[$i] & '"', 1)


Код:
$TSong = StringRegExp($sText, '.*\V', 3, $Pos)
 
Верх