Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Внизочистить массив, удалить или еще чего с ним Найти похожие ветки
← →
bash77 (2012-03-15 11:01) [0]вот код:
Type Ttest = Record
Stranica : boolean;
ID_voprosa : String;
Voprosik : String;
Otvetik : Array [1..6] of String;
Validik : Array [1..6] of boolean;
Pravilno : Array [1..6] of boolean;
end;
var
Testik:array of Ttest;
когда первый раз работаю с массив все норм, но когда мне надо его использовать повторно, так я его очистить не могу (
это не помогает:SetLength(Testik,0);
и это:Testik:=nil;
и циклом не получается:(
for i:=low(Testik) to higt(Testik) do
begin
.......
for j:=1 to 6 do
begin
Testik[i].Validik[j]:=false;
.....
end;
end;
причем как-то странно... значение validik не очищается тока у Testik[максимум]
в остальном чисто все. Дельфа ХЕ
помогите плиз
← →
Сергей М. © (2012-03-15 11:13) [1]
> это не помогает:
> 1
>
> SetLength(Testik,0);
У меня "помогает". Что я делаю неправильно ?
← →
bash77 (2012-03-15 11:16) [2]дак вот я сам в шоке...
← →
Anatoly Podgoretsky © (2012-03-15 11:23) [3]> Сергей М. (15.03.2012 11:13:01) [1]
Ну ты наверно используешь динамические массивы?
← →
bash77 (2012-03-15 11:28) [4]само собой динамический массив.
после использования, мне его надо очистить (унижтожить..... и т.д.)
чтобы после установить его длину и заново считывать и заполнять
← →
Anatoly Podgoretsky © (2012-03-15 11:32) [5]
> bash77 (15.03.12 11:28) [4]
> само собой динамический массив.
Ну тогда покажи реальный код, в данном нет динамических массивов.
← →
bash77 (2012-03-15 11:37) [6]Testik - а это не динамический ???
но проблему я решил так - принудительно теперь заполняю заранее.
но все равно не ясно... массив валидик помнил прежнее значение...
даже после прогона по циклу с выставление значений.. странно все это как-то
← →
Jeer © (2012-03-15 11:38) [7]
> Otvetik : Array [1..6] of String;
> Validik : Array [1..6] of boolean;
> Pravilno : Array [1..6] of boolean;
И это динамические массивы ?
← →
bash77 (2012-03-15 11:40) [8]опачки, затуп, сорри
← →
Сергей М. © (2012-03-15 12:10) [9]
> после использования, мне его надо очистить (унижтожить..
> ... и т.д.)
Он сам уничтожится, если он объявлен локальной переменной.
← →
han_malign (2012-03-15 12:25) [10]For a long-string or dynamic-array variable, SetLength reallocates the string or array referenced by S to the given length. Existing characters in the string or elements in the array are preserved, but the content of newly allocated space is undefined.
← →
icWasya © (2012-03-15 14:05) [11]Если в элементе массива (в Вашем случае Ttest) есть поля с управляемыми типами - строки, динамические массивы или интерфейсы, то при выделении памяти они будут проинициализированы нулевыми указателями, но поля всех остальных типов, как уже сказано выше, будут иметь неопределённое значение.
← →
bash77 (2012-03-15 14:29) [12]ок, спасибо ребят, не ожидал такого (как обычно у меня нету времени лазать по форумам)... но терь и сам тут пропишусь ! )
← →
begin...end © (2012-03-15 15:59) [13]> han_malign, icWasya
Господа, это только в Delphi XE так? В D7 в случае динамических массивов (но не строк) выделенная под новые элементы память заполняется нулями вне зависимости от типа элементов, несмотря на аналогичное предупреждение в справке. См. System.DynArraySetLength.
← →
bash77 © (2012-03-15 16:55) [14]походу вернусь на Д7 впоследствии... просто проект IW писал под XE последним, думал и останусь тут... но Д7 непобедима походу )))
← →
sniknik © (2012-03-15 17:21) [15]> Господа, это только в Delphi XE так?
судя по всему "заслуга" FastMM, который в последних дельфях стал основным.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.099 c