Что нового

[Автоматизация] Автоматизация действий с txt файлами

usje

Новичок
Сообщения
3
Репутация
0
Версия AutoIt: 3.
SciTE-Lite Version 3.4.1
Описание:
Здравствуйте!
Есть куча однотипных файлов .txt отличающихся в названии номером (с rus3.txt по rus333.txt) в каждом из них требуется удалит первые 10 строк текста и сохранить файл переименовав его именем содержащимся в 11 строке текста (11строка.txt)
Примечания:
Спасибо
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
пример файла
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#include <File.au3>
Local $source = @ScriptDir & '\folder'
Local $files = _FileListToArray($source, '*.txt', 0, True)
For $i = 1 To $files[0]
	$data = FileReadToArray($files[$i])
	Local $text = ''
	For $t = 10 To UBound($data) - 1
		$text &= $data[$t] & @CRLF
	Next
	FileMove($files[$i], $source & '\' & $data[10] & '.txt', 1)
	$fo = FileOpen($source & '\' & $data[10] & '.txt', 2)
	FileWrite($fo, $text)
	FileClose($fo)
Next
 

madmasles

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

Global $sDir = @ScriptDir & '\DirWithTxtFiles', $hFind, $sFile, $hFile, $sNewFile, $sTxt

If @WorkingDir <> $sDir Then FileChangeDir($sDir)

$hFind = FileFindFirstFile('rus*.txt')
If $hFind = -1 Then Exit 1
While 1
	$sTxt = ''
	$sFile = FileFindNextFile($hFind)
	If @error Then ExitLoop
	If @extended Then ContinueLoop
	$hFile = FileOpen($sFile)
	If $hFile = -1 Then ContinueLoop
	For $i = 1 To 10
		FileReadLine($hFile)
		If @error Then
			FileClose($hFile)
			ContinueLoop 2
		EndIf
	Next
	$sNewFile = FileReadLine($hFile)
	If @error Then
		FileClose($hFile)
		ContinueLoop
	EndIf
	$sTxt = $sNewFile & @CRLF & FileRead($hFile)
	FileClose($hFile)
	$hFile = FileOpen(_WinAPI_PathYetAnotherMakeUniqueName($sNewFile & '.txt'), 2)
	If $hFile = -1 Then ContinueLoop
	FileWrite($hFile, $sTxt)
	FileClose($hFile)
	FileDelete($sFile)
WEnd
FileClose($hFind)
 
Автор
U

usje

Новичок
Сообщения
3
Репутация
0
Всем огромное СПАСИБО! очень помогли :IL_AutoIt_1:
 
Верх