![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.09.2015
Сообщений: 10
|
![]()
Добрый день!
Столкнулся с большой проблемкой. Есть парсер, но обрабатывает куски данных не больше 10-12 мегабайт. При 50 начинает подвисать, с потугами но и их обрабатывает. После 100 - без шансов. А обрабатывать нада 1 гиг... Подскажите пожалуйста как реализовать загрузку таких объемных данных в софт? Читал что то про mapping но не понял принцип. Буду рад помощи |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а вы, надеюсь, не в мемо грузите?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Читай построчно-поблочно без всяких Memo или StringList и парси. Тоже не за милисекунды, но виснуть не будет. Mapping не для этого нужен
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 16.09.2015
Сообщений: 10
|
![]() |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 16.09.2015
Сообщений: 10
|
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
есть старые добрые паскалевские ReadLn,Reset,Assign(правда AssignFile теперь)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
Если работа с файлом, то TFileStream Вам в помощь.
|
![]() |
![]() |
![]() |
#9 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
![]() а то ТС щас наговнокодит и будет материть TFileStream и того, кто посоветовал. Я б юзал буфер, скажем, в 128кбайт. А ещё лучше - дополнительный TMemoryStrem как буфер, откуда уже б и TStriingList.LoadFromStream(); А ещё есть TStringStream... Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
min@y™, имхо, это не имеет особого значения.
var b : byte; FileStream1.ReadBuffer(b) и var buffer:array[0..128*1024-1] of byte; FileStream1.ReadBuffer(buffer) дадут НЕ ПРИНЦИПИАЛЬНУЮ разницу в быстродействии (хотя, конечно, я бы тоже заморочился с чтением в буфер). Проверите? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обработка файлов | Pepsik | Помощь студентам | 1 | 10.07.2011 21:35 |
С++. Обработка файлов | teach | Помощь студентам | 5 | 02.04.2011 16:41 |
Обработка файлов | FauLL | Общие вопросы C/C++ | 1 | 23.06.2010 21:34 |
Обработка файлов. | Morzik8 | Помощь студентам | 2 | 17.05.2010 20:05 |
Обработка файлов Си++ | modulrev | Помощь студентам | 22 | 19.02.2009 18:53 |