Показать полную графическую версию : [решено] Вставить строчку из одного txt в оределённое место другого txt
ZeroCrash
04-07-2009, 22:53
Вот часть кода:
$Handle = FileFindFirstFile ( "*.txt" )
$FilePath = FileFindNextFile ($Handle)
$First = FileReadLine ($FilePath, 4)
Переменная $First запоминает 4 строку текстового файла. Нужно чтобы скрипт эту строку вставил в текстовый файл "C:\Documents and Settings\Администратор\1.txt" на четвёртую строчку после первых 8 символов в этой строке. Пример:
....
ник: qrqwrqrq
пароль: "сюда нужно вставить $First"
....
пример:
Local $hSerch = FileFindFirstFile(@ScriptDir & "\*.txt" )
Local $sFile1Path = FileFindNextFile($hSerch)
Local $sFile1Text = FileReadLine($sFile1Path, 4)
FileClose($hSerch)
Local $sFile2Path = @ScriptDir & '\test.txt'
Local $sFile2Text = FileRead($sFile2Path)
Local $sResult = StringRegExpReplace($sFile2Text, '(.*\n.*\n.*\n.{4,4})(.*)', '\1 "' & $sFile1Text & '" \2')
MsgBox(0, '', $sResult)
Local $hFile = FileOpen($sFile2Path, 2)
FileWrite($hFile, $sResult)
FileClose($hFile)
пример »
- не понял первых 4-х строк скрипта: найти второй TXT-файл?... :o
- твой RegExp меняет в каждой 4-й строке ;) ...скорее так: $sResult = StringRegExpReplace($sFile2Text,'^((.*\n){3}.{8}).*','\1 "'& $sFile1Text &'"')
на четвёртую строчку после первых 8 символов в этой строке »
может лучше искать не по номеру строки, а по содержимому?.. типа найти в одном файле строку, начинающуюся со слова "пароль: " и заменить на текст 4-й строки из другого файла?
ZeroCrash
06-07-2009, 17:56
может лучше искать не по номеру строки, а по содержимому?.. типа найти в одном файле строку, начинающуюся со слова "пароль: " и заменить на текст 4-й строки из другого файла? »
нужно чтобы в начале строчки обязательно оставалось слово "пароль: " в тексте 4-й строки другого файла этого слова нет и не будет.
ZeroCrash, я лишь о том, что не стОит себя искусственно ограничивать, если в 1-м файле строка с паролем может оказаться не на 4-й строке:
$sFile1 = "C:\TEST\file1.txt"
$sFile2 = "C:\TEST\file2.txt"
$sPass = FileReadLine($sFile2, 4)
$sText = StringRegExpReplace(FileRead($sFile1), '(?m)^([Пп][Аа][Рр][Оо][Лл][Ьь]:).*', 'Пароль: "' & $sPass &'"')
ZeroCrash
08-07-2009, 20:10
amel27, понятно. Спасибо, это удобно, хотя и не требуется в моём случае :)
ZeroCrash,
такой вариант:
$Handle = FileFindFirstFile ( "*.txt" )
$FilePath = FileFindNextFile ($Handle)
$First = FileReadLine ($FilePath, 4)
$1="пароль:"
$2=('пароль:'&$first)
_ReplaceStringInFile ("путь_до_файла_в_который_надо_записать_$first",$1,$first)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.