Что нового

как "вырезать" несколько символов из текстового файла?

urrya

Новичок
Сообщения
159
Репутация
1
Всем привет.
Снова есть не решаемая (для меня) задача.
Есть текстовый файл, в нём постоянно меняется содержимое.
Запись в том файле всегда примерно вот такого вида -

Код:
$text = "\Jc1PFXyg7C0Z\RzS3QrHWspyy\zxOTUtBwq4cf\2Z9AwjhDxDjc\hxTKz60APRJZ\RJhfZHRbLEeh\szckKqp22KKj\tjSQ7NZEAzyY\obshuTjA20cm"


Каждые 13 символов "\RzS3QrHWspyy" это имена других файлов.
Нужно иногда "вырезать" из того файла те самые имена вместе с "\".
Как это сделать знаю, но у меня ничего не получается. Не могу задать искомый образец (шаблон) для его стирания.
Например:

Код:
$result = StringRegExpReplace($text, "[\" & $shablon & "](?-i ... )", "")


В переменной шаблона -

Код:
$ch = 1
$shablon = StringMid($text, $ch, 13)


И регистр соблюдать надо обязательно.
Прошу помощи.
Заранее спасибо всем ... .
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Код:
$result = StringReplace($sText, "\RzS3QrHWspyy", '', 0, 1)
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
AZJIO
спс за пример, но кусок строки каждый раз новый, надо сделать шаблон именно используя переменную.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
$result = StringRegExpReplace($text, "(?-i)\\"&$shablon&"[^\\\s+]+", "")
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
urrya,
ИМХО, AZJIO прав, проще сделать так.
Код:
Local $sTxt = '\Jc1PFXyg7C0Z\RzS3QrHWspyy\zxOTUtBwq4cf\2Z9AwjhDxDjc\hxTKz60APRJZ\RJhfZHRbLEeh\szckKqp22KKj\tjSQ7NZEAzyY\obshuTjA20cm', _
		$aTxt, $sDel

$aTxt = StringSplit(StringTrimLeft($sTxt, 1), '\')
For $i = 1 To $aTxt[0]
	$sDel = '\' & $aTxt[$i]
	$sTxt = StringReplace($sTxt, $sDel, '', 0, 1)
	ConsoleWrite('$sDel: ' & $sDel & ', $sTxt: ' & $sTxt & @LF)
Next
 
Верх