Что нового

Переместить строки из одного файла в другой и вставить их вначале файла

fortages

Новичок
Сообщения
81
Репутация
3
Здравствуйте!
Помогите пожалуйста разобраться с перемещением текста между двумя файлами.
Есть файлы db_ALL.txt и db_small.txt
В файле db_ALL.txt есть какое-то количество строк (много), в файле db_small.txt пусто (в конце работы удаляю содержимое)

Как сделать так, чтобы при запуске программы из файла db_ALL.txt переносились две первые строки в файл db_small.txt, но чтобы при этом после переноса строки в файле как бы "сдвигались" на первую позицию?
То есть, чтоб не вот так было:
a25f8f45d712.png



А вот так:
f851a91a3a50.png

То есть, чтобы тот текст, который остался в файле, стал первой по счету строкой.

Как такое можно сделать? Если можно, без массивов.
Спасибо!
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
fortages
Код:
#include <File.au3>
FileWriteLine("db_small.txt", FileReadLine("db_ALL.txt", 1))
FileWriteLine("db_small.txt", FileReadLine("db_ALL.txt", 2))
_FileWriteToLine("db_All.txt", 1, "", 1)
_FileWriteToLine("db_All.txt", 1, "", 1)
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
#include <Array.au3>
#include <File.au3>
Global $sFile1, $sFile2, $sLine1, $sLine2, $aLines
$sFile1 = "db_ALL.txt"
$sFile2 = "db_small.txt"
$sLine1 = FileReadLine($sFile1, 1)
$sLine2 = FileReadLine($sFile1, 2)
_FileReadToArray($sFile2, $aLines, 0)
Global $aResult[2] = [$sLine1, $sLine2]
_ArrayConcatenate($aResult, $aLines)
$hFile2 = FileOpen($sFile2, 2)
_FileWriteFromArray($hFile2, $aResult)
FileClose($hFile2)
;_ArrayDisplay($aLines, "result")



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

Только у меня с массивами :smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
fortages,
Мой вариант.
Код:
;~ !!!Без проверок на ошибки!!!
Local $hFileAll, $hFileSmall, $sTxt

If @WorkingDir <> @ScriptDir Then FileChangeDir(@ScriptDir)
$hFileAll = FileOpen('db_ALL.txt')
$hFileSmall = FileOpen('db_small.txt', 2)
For $i = 1 To 2
	$sTxt &= FileReadLine($hFileAll) & @CRLF
Next
FileWrite($hFileSmall, $sTxt)
FileClose($hFileSmall)
$sTxt = FileRead($hFileAll)
FileClose($hFileAll)
$hFileAll = FileOpen('db_ALL.txt', 2)
FileWrite($hFileAll, $sTxt)
FileClose($hFileAll)
 
Автор
fortages

fortages

Новичок
Сообщения
81
Репутация
3
Огромное спасибо за помощь! Все отлично работает! Спасибо! :smile:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
fortages
Огромное спасибо за помощь! Все отлично работает! Спасибо!
Так и хочется нажать кнопку "НРАВИТСЯ". И похвалила, и поблагодарила. Кому же такое на понравится? ;)
Будем теперь раздавать репутацию за добрые слова, а не за правильный код.
 
Автор
fortages

fortages

Новичок
Сообщения
81
Репутация
3
InnI да я просто, от души и на радостях)) Всю остальную программку продумала, а над этим куском мозг сломала. :whistle: Очень сильно помогли. =)) Пойду дописывать. Спасибо!
820965.gif
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
fortages
Это был сарказм в сторону администрации. По поводу новых кнопок с сердечками :suicide:
 
Верх