Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

очистить массив, удалить или еще чего с ним   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
2-1336378616
gltrinix
2012-05-07 12:16
2013.03.22
Настройки компилятора


15-1340712165
картман
2012-06-26 16:02
2013.03.22
кластеризация


15-1352991636
AV
2012-11-15 19:00
2013.03.22
Четверговская задача :)


4-1262850914
Dy1
2010-01-07 10:55
2013.03.22
получение html-страницы post-запросом


15-1338256258
Error macro
2012-05-29 05:50
2013.03.22
Как стать фрилансером?