Что нового

[Данные, строки] Поочередное копирование данных из txt файла

Duff1993

Новичок
Сообщения
29
Репутация
0
Добрый вечер! Подскажите пожалуйста, каким образом реализовать подобный скрипт.

У меня есть 3 txt файла, в которых прописано (с абзаца):

1 - имена
2 - фамилии
3 - отчества

Необходимо, что бы скрипт поочередно копировал(подтягивал)данные 1 строки с каждого файла и вставлял в другом месте, затем проделывал тоже самое со 2,3...10 строкой каждого файла, при этом не перемешивая их.


Огромное спасибо за помощь!
 

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Не знаю насколько криво (сам начинающий :laugh:smile: , но работает.

Код:
$iFile = FileOpen(@ScriptDir & '\имя.txt', 0)
$oFile = FileOpen(@ScriptDir & '\отч.txt', 0)
$fFile = FileOpen(@ScriptDir & '\фам.txt', 0)
$gFile = FileOpen(@ScriptDir & '\готово.txt', 1)


While 1
    $iLine = FileReadLine($iFile)
	$oLine = FileReadLine($oFile)
	$fLine = FileReadLine($fFile)
	If @error = -1 Then ExitLoop
	FileWriteLine($gFile, $iLine & " " & $oLine & " " & $fLine & @CRLF)
WEnd

FileClose($iFile)
FileClose($oFile)
FileClose($fFile)
FileClose($gFile)


результат выполнения:

1имя 1отч 1фам
2имя 2отч 2фам
3имя 3отч 3фам
4имя 4отч 4фам
5имя 5отч 5фам
6имя 6отч 6фам
7имя 7отч 7фам
8имя 8отч 8фам
9имя 9отч 9фам
10имя 10отч 10фам

P.S. хотел бы узнать мнение знатоков, в правильности такого листинга. :IL_AutoIt_1:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Duff1993,
Или так.
Код:
#include <Array.au3>

Global $aFiles[3] = ['Ф.txt', 'И.txt', 'О.txt'], $sDir = @ScriptDir & '\', $iMax = 100, $aRes[$iMax + 1], $sTmp

For $i = 0 To 2
	$aFiles[$i] = FileOpen($sDir & $aFiles[$i])
	If $aFiles[$i] = -1 Then Exit 1
Next
While 1
	$sTmp = ''
	For $i = 0 To 2
		$sTmp &= FileReadLine($aFiles[$i]) & ' '
		If @error Then ExitLoop 2
	Next
	$aRes[0] += 1
	If $aRes[0] = $iMax Then
		$iMax *= 2
		ReDim $aRes[$iMax + 1]
	EndIf
	$aRes[$aRes[0]] = StringTrimRight($sTmp, 1)
WEnd
For $i = 0 To 2
	FileClose($aFiles[$i])
Next
If $aRes[0] Then
	ReDim $aRes[$aRes[0] + 1]
	_ArrayDisplay($aRes)
Else
	Exit 2
EndIf
 
Автор
D

Duff1993

Новичок
Сообщения
29
Репутация
0
Спасибо за помощь, но как реализовать поочередное копирование в буфер обмена?

Например:

Нажал хоткей Ф1 - подтянулось первое имя
Нажал хоткей Ф1 еще раз - подтянулось первая фамилия
Нажал хоткей Ф1 еще раз - подтянулось первое отчество.

Причем данные вводятся в постороннюю программу, не txt файл.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Автор
D

Duff1993

Новичок
Сообщения
29
Репутация
0
Спасибо за помощь, но как реализовать поочередное копирование в буфер обмена?
 

СН3СН2ОН

Знающий
Сообщения
78
Репутация
12
Duff1993 сказал(а):
Спасибо за помощь, но как реализовать поочередное копирование в буфер обмена?
Просмотрел ваши сообщения. Вы наверно читаете справку, не верите ей, а потом здесь вопросы задаете?
ClipPut
Записывает текст в буфер обмена.
Код:
ClipPut ( "value" )
 
Верх