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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2016, 18:05   #1
garuna
Форумчанин
 
Аватар для garuna
 
Регистрация: 13.04.2013
Сообщений: 180
Лампочка современные функции для работы с текстовыми файлами

Нужно часто редактировать большие текстовые файлы (читать их, записывать новые строки и т.п.), существует ли современная замена таких функций для работы с текстовыми файлами как ReWrite, WriteLn, ReadLn и т.п...? А то достали ошибки типа "I/O error 32" и т.п., возникающие рандомно при длительной работе программы.. Использую Delphi 2010

p.s.
всякие TStringList не подходят, т.к. повторюсь, что файлы могут быть слишком большие и грузить их целиком в память через LoadFromFile() не вариант.
garuna вне форума Ответить с цитированием
Старый 18.01.2016, 18:28   #2
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

TStreamReader/TStreamWriter
Filka вне форума Ответить с цитированием
Старый 18.01.2016, 19:11   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Запись в текстовый файл строки с увеличением её длины в любом случае - или файл весь в памяти, или перезапись хвоста файла. И не важно какой способ, в любом случае либо одно, либо другое, пусть и не явно. И не только в текстовый
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 18.01.2016 в 19:15.
Аватар вне форума Ответить с цитированием
Старый 18.01.2016, 19:53   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
файлы могут быть слишком большие
о каких размерах файлов идёт речь?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.01.2016, 20:58   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

https://ru.m.wikipedia.org/wiki/Отоб...файла_в_память
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 18.01.2016, 21:45   #6
garuna
Форумчанин
 
Аватар для garuna
 
Регистрация: 13.04.2013
Сообщений: 180
По умолчанию

Цитата:
Сообщение от Filka
TStreamReader/TStreamWriter
спасибо, посмотрю.

Цитата:
Сообщение от min@y™
о каких размерах файлов идёт речь?
разных, от 50Кб до 30Мб
garuna вне форума Ответить с цитированием
Старый 18.01.2016, 21:51   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
от 50Кб до 30Мб
И это большие? Стринглист съест и не подавится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.01.2016, 21:54   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
до 30Мб
И это всё? Тьфу ты, напугал.
Ты посмотри, сколько жрут современные приложения!

155.png

Грузи всё в память, не загоняйся.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось Человек_Борща; 19.01.2016 в 09:26.
min@y™ вне форума Ответить с цитированием
Старый 18.01.2016, 22:13   #9
garuna
Форумчанин
 
Аватар для garuna
 
Регистрация: 13.04.2013
Сообщений: 180
Радость

Цитата:
Сообщение от min@y™ Посмотреть сообщение
И это всё? Тьфу ты, напугал (ежа голой жопой).
Ты посмотри, сколько жрут современные приложения!

Вложение 79241

Грузи всё в память, не загоняйся.

))) не. у меня поток, который может раз 10 в секунду добавить новую строку в TXT. Грузить каждый раз весь файл в память для записи одной строки не вариант. Сейчас разбираюсь с TStreamReader/TStreamWriter, вроде неплохая штука.
garuna вне форума Ответить с цитированием
Старый 18.01.2016, 22:21   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
))) не. у меня поток, который может раз 10 в секунду добавить новую строку в TXT. Грузить каждый раз весь файл в память для записи одной строки не вариант.
ясен пень, не вариант. зачем же сохранять весь файл после добавления новой строки? это глупо и неэффективно. для этого и существует оперативная память, если чо.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программы, предназначенные для работы с множествами, и текстовыми файлами Ksenia96 Помощь студентам 3 05.01.2016 12:33
Прошу помощи в написании программ для работы с текстовыми файлами Никита757 Паскаль, Turbo Pascal, PascalABC.NET 1 15.12.2015 21:35
Программа для работы с текстовыми файлами Neo_one Помощь студентам 2 26.05.2010 22:57
Прога для работы с текстовыми файлами f-only Софт 4 04.10.2007 23:35