Что нового

Вставка определенного текста из одного документа - в другой документ

Grell

Новичок
Сообщения
127
Репутация
0
Добрый вечер.

Подскажите как решить вопрос.
Есть текстовый файл "документ 1.txt"
В нем есть участки состоящие из двух слэшей на двух рядом стоящих строках:
/
/

Как скриптом - скопировать из "документ 2.txt" строки c 3 по 21 - и вставить скопированное в файл "документ 1.txt" - среди последних встречающихся двух слэшей ?
 

Вложения

  • документ 1.txt
    142 байт · Просмотры: 2
  • документ 2.txt
    106 байт · Просмотры: 2
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
xXx
Не совсем точно.
Текст вставился - между слэшами.
А нужно, чтобы вставился сразу после слэшей.
 

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
Grell сказал(а):
... вставить скопированное в файл "документ 1.txt" - среди последних встречающихся двух слэшей ?
Код:
Global $aText_1, $sFile_1 = @ScriptDir & '\документ 1.txt'
Global $sText_2, $sFile_2 = @ScriptDir & '\документ 2.txt'
Global $hFile, $sFile_Out = @ScriptDir & '\Итоговый документ.txt'

$sText_1 = FileRead($sFile_1)
If @error Then Exit 11
$sText_2 = FileRead($sFile_2)
If @error Then Exit 22

$aText_1 = StringRegExp($sText_1, '(?sm)(.+^/\h*\R)(/\h*(?:\z|\R).*)', 1)
If Not @error Then
	$sText_2 = StringRegExpReplace($sText_2, '(.*\R){2}((?:.*\R){19})(?s).*', '\2') ; строки c 3 по 21
	$hFile = FileOpen($sFile_Out, 2)
	If $hFile = -1 Then Exit 33
	FileWrite($hFile, $aText_1[0] & $sText_2 & $aText_1[1])
	FileClose($hFile)
EndIf

Grell сказал(а):
... нужно, чтобы вставился сразу после слэшей.
Код:
Global $aText_1, $sFile_1 = @ScriptDir & '\документ 1.txt'
Global $sText_2, $sFile_2 = @ScriptDir & '\документ 2.txt'
Global $hFile, $sFile_Out = @ScriptDir & '\Итоговый документ.txt'

$sText_1 = FileRead($sFile_1)
If @error Then Exit 11
$sText_2 = FileRead($sFile_2)
If @error Then Exit 22

$aText_1 = StringRegExp($sText_1, '(?sm)(.+^/\h*\R/\h*)(?:\z|\R)(.*)', 1)

If Not @error Then
	$sText_2 = StringRegExpReplace($sText_2, '(.*\R){2}((?:.*\R){19})(?s).*', '\2') ; строки c 3 по 21
	$hFile = FileOpen($sFile_Out, 2)
	If $hFile = -1 Then Exit 33
	FileWrite($hFile, $aText_1[0] & @CRLF & $sText_2 & $aText_1[1])
	FileClose($hFile)
EndIf
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
xXx
теперь все нормально.
Спасибо большое.
 
Верх