![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Помогите кто может. У меня данные из memo считываются очень долго. У меня имеется 30000 чисел, которые я вставляю в memo. Потом из memo это всё должно записываться в массив. С маленьким количеством чисел система работала, а когда я загрузил 30000 чисел, стала очень долго считывать. Что делать? Вот морй код:
Добавлено через 3 минуты И может кто знает, что такое "memo of out" |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
"немного" упростим
В разделе "Для новичков" сложно объяснить, почему возникает исключение Out of memory, но попробую. Каждый раз, когда идет обращение к Memo1.Text[i], программа запрашивает полное содержимое Memo. Само собой, на это выделяется память. А вот освободится память только тогда, когда произойдет выход из события. Получается, что на каждом витке цикла у Вас в коде происходит куча выделений памяти под дубликаты Memo1.Text, а так как выхода из процедуры всё нет и нет, то они, накапливаясь, исчерпывают доступную для программы память. Добавлено @ 20:54 Небольшой совет в дополнение - при оформлении кода пользуйтесь отступами для каждого уровня вложенности. Ваш код читать крайне неудобно. Это сообщение отредактировал(а) kami - 13.8.2011, 20:55 |
|||
|
||||
| valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Большое спасибо, сейчас попробую.
|
|||
|
||||
| valerchi |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Выдаёт ошибку. Я так понял у меня почему-то изменяется объём массива, хотя я записал его так:
|
||||
|
|||||
| valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Я разобрался, ещё раз спасибо. Это динамический массив, а в этой строке: "SetLength(masb, Memo1.Lines.Count);" определяется длина массива и она тут установлена на количество строк в Memo1, а именно: " Memo1.Lines.Count"
Это сообщение отредактировал(а) valerchi - 4.10.2011, 10:54 |
|||
|
||||
| Zorak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
Пометь вопрос решенным
-------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
Меня (и не только меня) всегда немного удивляли такие вот люди.
Задал вопрос, потом неизвестно как решил и написал: - Всё, я решил проблему. А как, хрен его знает. Через день будет другой такой же искать ответ на похожий вопрос. Наверняка ему было бы интересно узнать, как именно решил. Но нет же, фиг ему. Пусть сам ищет, пусть создает новую тему! Круто... |
|||
|
||||
| valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Зачем что-то писать, если главное понятно. Добавлено через 1 минуту и 18 секунд Как мне пометить, что вопрос решённый? Поставить галочку и всё? |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
kami, где ты говоришь накапливаются дубликаты строки?
-------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |