|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.08.2009, 14:25 | #1 |
Форумчанин
Регистрация: 08.07.2009
Сообщений: 246
|
Делфи. Как очистить содержимое массива?
Здравствуйте!!!
Есть массив. В него вносится информация из файла. Массив String. Как можно его очистить после того как программа к нему обратилась чтобы он не занимал память. И чтобы если программа вновь к нему обратиться количество строк в нем отсчитывалась вновь. Язык программирования Delphi!!! Массив Mass[I,J]
Да прибудет с Вами свет и радость!!!
Последний раз редактировалось S_Yevgeniy; 12.08.2009 в 14:37. |
12.08.2009, 14:59 | #2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Изначально освобождаем все строки (в цикле)
Код:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
12.08.2009, 15:07 | #3 |
Форумчанин
Регистрация: 08.07.2009
Сообщений: 246
|
Ну я так сделал!!! Это не помогает. Проблема в том что массив мне нужен для того чтобы в нем временно хранить данные из файлов. Вот например я открыл файл раскидал содержимое по узлам массива потом нужное передал в StringGrid. Далее открываю следующий файл. И он может оказаться меньше предыдущего а массив не очищен.
А может вы можете подсказать как пользоваться динамическим массивом. Просто что-то в литературе мудрено написано. Как вот создать динамический массив типа . Mass array [0..500,0..10] of string; Как мне подсказал Google динамический массив можно чистить. Огромное Вам спасибо.
Да прибудет с Вами свет и радость!!!
|
12.08.2009, 15:08 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
установи нулевую длинну массива
но аккуратнее...+ты уверен что оно тебе нужно? и не забывай что Винда не сразу освобождает зарезервированную память(то есть в диспетчере память жратся будет всеравно) массив локальный/глобальный? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 12.08.2009 в 15:11. |
12.08.2009, 15:35 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Установить длину динамического массива можно через SetLength(имя_массива, число_элементов), также можно установить длину отдельной строки (считайте что перед Вами, массив символов).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 12.08.2009 в 15:37. |
12.08.2009, 15:44 | #6 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Подробный пример с использованием ZeroMemory:
Код:
|
12.08.2009, 15:47 | #7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Ну у него разные данные, он не знает какой размер массива ему нужно, седня столько, через 2 минуты в два раза больше...
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
12.08.2009, 16:16 | #8 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Цитата:
|
|
12.08.2009, 16:20 | #9 | |
Регистрация: 28.03.2009
Сообщений: 8
|
Цитата:
var mass: array of array of string; т. е. ты теперь имеешь динамический массив динамических массивов. как работать с длиной, выше уже было написано. чистить - просто уменьшать длину.. например, setlength(mass[i],0) или даже setlength(mass,0,0), если хочешь убить сразу все. еще не забывать, что динамические массивы всегда рассматриваются в 0-индексации. было еще сказано, что память освобождается не сразу. это действительно так, но дело даже не в операционной системе, а в языке и среде разработки. было эксперементально установлено, что C++ после уменьшения длины динамических массивов (векторов) отдает память, а Delphi - нет |
|
12.08.2009, 16:34 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а не проще ли TStringList.LoadFromFile() ?
(чем TStringList не массив? ) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как очистить массив? | chandrasecar | Общие вопросы Delphi | 9 | 09.11.2008 20:39 |
Как очистить экран? | dimorik | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 01.10.2008 18:29 |
Как очистить Canvas? | beegl | Общие вопросы Delphi | 4 | 30.05.2008 02:51 |
Как очистить Canvas? | Pro_BerSerK | Общие вопросы Delphi | 9 | 30.01.2008 16:03 |
как очистить экран | doncova1 | Общие вопросы C/C++ | 3 | 18.03.2007 09:50 |