Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Вставить строчку из одного txt в оределённое место другого txt (http://forum.oszone.net/showthread.php?t=144243)

ZeroCrash 04-07-2009 22:53 1159128

Вставить строчку из одного txt в оределённое место другого txt
 
Вот часть кода:
Код:

$Handle = FileFindFirstFile ( "*.txt" )
$FilePath = FileFindNextFile ($Handle)
$First = FileReadLine ($FilePath, 4)

Переменная $First запоминает 4 строку текстового файла. Нужно чтобы скрипт эту строку вставил в текстовый файл "C:\Documents and Settings\Администратор\1.txt" на четвёртую строчку после первых 8 символов в этой строке. Пример:
....
ник: qrqwrqrq
пароль: "сюда нужно вставить $First"
....

Yashied 04-07-2009 23:05 1159135

_FileWriteToLine()

proxy 04-07-2009 23:15 1159142

пример:

Код:

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)


amel27 05-07-2009 03:32 1159197

Цитата:

Цитата proxy
пример »

- не понял первых 4-х строк скрипта: найти второй TXT-файл?... :o
- твой RegExp меняет в каждой 4-й строке ;) ...скорее так:
Код:

$sResult = StringRegExpReplace($sFile2Text,'^((.*\n){3}.{8}).*','\1 "'& $sFile1Text &'"')

Цитата:

Цитата ZeroCrash
на четвёртую строчку после первых 8 символов в этой строке »

может лучше искать не по номеру строки, а по содержимому?.. типа найти в одном файле строку, начинающуюся со слова "пароль: " и заменить на текст 4-й строки из другого файла?

ZeroCrash 06-07-2009 17:56 1160346

Цитата:

Цитата amel27
может лучше искать не по номеру строки, а по содержимому?.. типа найти в одном файле строку, начинающуюся со слова "пароль: " и заменить на текст 4-й строки из другого файла? »

нужно чтобы в начале строчки обязательно оставалось слово "пароль: " в тексте 4-й строки другого файла этого слова нет и не будет.

amel27 07-07-2009 14:15 1161037

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 1162353

amel27, понятно. Спасибо, это удобно, хотя и не требуется в моём случае :)

tweakos 13-07-2009 07:35 1166010

ZeroCrash,
такой вариант:
Код:

$Handle = FileFindFirstFile ( "*.txt" )
$FilePath = FileFindNextFile ($Handle)
$First = FileReadLine ($FilePath, 4)
$1="пароль:"
$2=('пароль:'&$first)
_ReplaceStringInFile ("путь_до_файла_в_который_надо_записать_$first",$1,$first)



Время: 22:16.

Время: 22:16.
© OSzone.net 2001-