Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2012, 13:43   #1
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию TStringList сохранить в конец файла, как?

Имеется текстовый файл со строками.
Мне нужно строки из TStringList сохранить в конец этого файла, но при SaveToFile данные в файле стираются. Как быть? Запись надо начинать с новой строки
bakanaev вне форума Ответить с цитированием
Старый 01.11.2012, 13:48   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...перед использованием однократно загрузите данные из файла в TStringList/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.11.2012, 13:49   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Что за файл, что там за данные?
eval вне форума Ответить с цитированием
Старый 01.11.2012, 13:57   #4
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...перед использованием однократно загрузите данные из файла в TStringList/
Данных может быть на 100 МБ и больше в файле. Файл txt, в нем просто сроки вида
Код:
4352363626
43523636264634
363263263262
32326236236
. Каждый раз загружать не рационально
bakanaev вне форума Ответить с цитированием
Старый 01.11.2012, 13:59   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Ну тогда используй или AssignFile или TFileStream
FaTaL вне форума Ответить с цитированием
Старый 01.11.2012, 14:02   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

угу. точно, либо
Цитата:
Сообщение от raxp
перед использованием однократно загрузите данные из файла в TStringList
либо для дозаписи в конец файла используйте другие методы.
Например, классический:
Код:
var f :TextFile;
begin
   AssignFile(f, 'ВашФайл.txt');
   if FileExists('ВашФайл.txt') then 
         Append(f)
   else
         Rewrite(f);
   WriteLn(f, 'Append to End Text Line First');
   WriteLn(f, 'Append to End Text Line Second');
   CloseFile(f)
end;
можно и другими способами дописывать в конец файла.. например, через TFileStream, всё зависит от того, что за файл, зачем и что в него дописывать и т.д...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.11.2012, 14:34   #7
xoodoo
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 212
По умолчанию

Грузишь оригинальный файл в отдельный стринглист, вызываешь его метод AddStrings, передавая параметром стринглист с добавляемыми строками, сохраняешь в оригинальный файл стринглист с добавленными строками.
xoodoo вне форума Ответить с цитированием
Старый 01.11.2012, 16:33   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от xoodoo Посмотреть сообщение
Грузишь оригинальный файл в отдельный стринглист, вызываешь его метод AddStrings, передавая параметром стринглист с добавляемыми строками, сохраняешь в оригинальный файл стринглист с добавленными строками.
А смысл? Всё равно весь файл грузить придётся в TStringList.
FaTaL вне форума Ответить с цитированием
Старый 01.11.2012, 23:37   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Поддержу Сержа с классикой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2013, 17:43   #10
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

И всё таки подниму старую тему. Как же быть, чтобы не грузить весь файл в память, но при этом добавить к файлу нужные строки не используя "старые методы паскаля", т.к. сами разработчики их оставили только для совместимости?
Если использовать TFileStream? Он вроде не грузит весь файл в память? "Аналог" AssignFile?
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как дописать некий код в конец запущенного *.ехе файла? Arhangel7 Общие вопросы Delphi 21 29.08.2012 09:01
Как сохранить путь файла? Swatch Microsoft Office Access 2 21.03.2011 15:38
Как данные из одного файла Excel сохранить в другой? Papiruzzz Microsoft Office Excel 3 17.01.2011 13:14
Как сохранить сэмплы wav файла в массив? Evanation Общие вопросы .NET 0 14.01.2011 09:05
Как сохранить листы (Лист1-Лист2-Лист3 и т.д.) из одного файла в несколько разных? Kilobox Microsoft Office Excel 4 28.01.2009 18:39