Что нового

Удалить первую строку в txt и перезаписать

Автор
T

tryinfinity

Новичок
Сообщения
40
Репутация
0
Спасибо, но при кол-ве строк более 30к долго происходит это процесс.
 

Sergio

Новичок
Сообщения
42
Репутация
3
hedji сказал(а):
Так должно быть побыстрее:


такой вариант хорош для небольших файлов. Если файл будет несколько ГБ, то есть вероятность, что не хватит памяти
 

IMStrelcov

CTPEJIbLLOB
Сообщения
259
Репутация
66
hedji сказал(а):
Так должно быть побыстрее:
А так еще быстрее:
Код:
$t=TimerInit()

$s=FileRead("test.txt")
$s=StringRegExpReplace($s, '(?m)^.*$\s*', '', 1)
FileDelete("test.txt")
FileWrite("test.txt", $s)

$t=TimerDiff($t)
ConsoleWrite($t&@CRLF)


Добавлено:
Сообщение автоматически объединено:

А так можно с большими файлами:
Код:
$t=TimerInit()

$hFileRead = FileOpen("test.txt")
$hFileWrite = FileOpen("test.txt.tmp", 2 +8)
FileReadLine($hFileRead)

While 1
	$sLine = FileReadLine($hFileRead)
	If @error Then
		ExitLoop
	EndIf
	FileWrite($hFileWrite, $sLine& @CRLF)
WEnd

FileClose($hFileRead)
FileClose($hFileWrite)
FileMove("test.txt.tmp", "test.txt", 1 +8)

$t=TimerDiff($t)
ConsoleWrite($t&@CRLF)
 
Верх