Что нового

[Данные, строки] Удалить строки по номеру строки

F9

Новичок
Сообщения
71
Репутация
2
Уважаемые!
Не смог найти функции удаления строки в файле по нужному мне номеру.
С конца удалять умею, а как удалить напрмер первых 3 строки в файле ?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
F9

Код:
#include <File.au3>

Dim $aArray
$sFilePath = '1.txt'

_FileReadToArray($sFilePath, $aArray)
_FileWriteFromArray($sFilePath, $aArray, 4)


Получаем из файла массив строк и делаем с ним то, что нужно
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
_FileWriteToLine('1.txt',1,'',1)

в данном примере удаляется первая строка.

если есть массив индексов, то тогда можно сделать так
Код:
#include <File.au3>
For $i = 1 To 3
	_FileWriteToLine('1.txt', $i, ' ', 1)
Next
_FileDeleteEmptyLines(@ScriptDir & "\1.txt")

Func _FileDeleteEmptyLines($sFile)
	Local $sFileContent = StringRegExpReplace(FileRead($sFile), "(\r?\n){1,}", "\1")
	Local $hFOpen = FileOpen($sFile, 2 + FileGetEncoding($sFile))
	FileWrite($hFOpen, StringStripWS($sFileContent, 3))
	FileClose($hFOpen)
EndFunc

будут удалены ненужные строки по номеру строки а потом удалены пробелы между строками

если нужно удалить подряд, к примеру, три строки, то можно и так
Код:
#include <File.au3>
For $i = 3 To 1 Step -1
	_FileWriteToLine('1.txt', $i, '', 1)
Next
 
Верх