Автор Тема: Переместить строки из одного файла в другой и вставить их вначале файла  (Прочитано 2088 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fortages [?]

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

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



А вот так:

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

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

Русское сообщество AutoIt


Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3268
  • Репутация: 856
    • Награды
  • Версия AutoIt: 3.3.14.0
fortages
Цитировать
без массивов
Код: AutoIt [Выделить]
#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 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1354
  • Репутация: 169
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
#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")
 



Добавлено: Июнь 04, 2015, 18:08:47
Только у меня с массивами :)

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7789
  • Репутация: 2313
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
fortages,
Мой вариант.
Код: AutoIt [Выделить]
;~ !!!Без проверок на ошибки!!!
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)


Русское сообщество AutoIt


Оффлайн fortages [?]

  • Новичок
  • *
  • Сообщений: 81

  • Автор темы
  • Репутация: 3
  • Пол: Женский
    • Награды
  • Версия AutoIt: 3.3.12.0
Огромное спасибо за помощь! Все отлично работает! Спасибо! :)

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3268
  • Репутация: 856
    • Награды
  • Версия AutoIt: 3.3.14.0
fortages
Цитировать
Огромное спасибо за помощь! Все отлично работает! Спасибо!
Так и хочется нажать кнопку "НРАВИТСЯ". И похвалила, и поблагодарила. Кому же такое на понравится? ;)
Будем теперь раздавать репутацию за добрые слова, а не за правильный код.
« Последнее редактирование: Июнь 04, 2015, 22:22:19 от InnI »

Оффлайн fortages [?]

  • Новичок
  • *
  • Сообщений: 81

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

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3268
  • Репутация: 856
    • Награды
  • Версия AutoIt: 3.3.14.0
fortages
Это был сарказм в сторону администрации. По поводу новых кнопок с сердечками :suicide:

Русское сообщество AutoIt


Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7789
  • Репутация: 2313
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
OffTopicInnI  [?]
Цитировать
Будем теперь раздавать репутацию за добрые слова, а не за правильный код.
Или за красивую аватарку...

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
2580 Просмотров
Последний ответ Январь 11, 2010, 22:56:55
от snoitaleR
2 Ответов
3812 Просмотров
Последний ответ Апрель 15, 2012, 13:37:51
от Redline
6 Ответов
3950 Просмотров
Последний ответ Март 12, 2014, 01:40:04
от MCR
1 Ответов
1099 Просмотров
Последний ответ Апрель 17, 2014, 22:36:23
от joiner
0 Ответов
805 Просмотров
Последний ответ Май 19, 2014, 09:16:13
от madmasles
8 Ответов
1504 Просмотров
Последний ответ Август 24, 2014, 17:25:35
от alex33
4 Ответов
1765 Просмотров
Последний ответ Декабрь 19, 2014, 00:50:31
от Rinfes
2 Ответов
1010 Просмотров
Последний ответ Март 03, 2015, 16:48:17
от AZJIO
1 Ответов
94 Просмотров
Последний ответ Май 08, 2017, 12:45:59
от inververs
3 Ответов
166 Просмотров
Последний ответ Май 23, 2017, 21:15:14
от Grell