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

Вниз

Вопрос по заполнению динамического массива.   Найти похожие ветки 

 
iNew ©   (2003-10-31 09:04) [0]

Мне необходимо заполнить динамический массив элементами из StringGrida, но так чтобы если строка StringGrida пустая, то её не заносить в массив, я сделеал это так:

procedure TfMonDirMain.Button4Click(Sender: TObject);
var i,mylen : integer;
s: string;
TempSLarr: array of array of String;
begin
mylen:=StringGrid1.RowCount;
for i:=0 to mylen-2 do
begin
s:=Trim(StringGrid1.Cells[0,i+1]+StringGrid1.Cells[1,i+1]+
StringGrid1.Cells[2,i+1]);
if s="" then continue;
SetLength(TempSLarr,i+1,3);
TempSLarr[i,0]:=StringGrid1.Cells[0,i+1];
TempSLarr[i,1]:=StringGrid1.Cells[1,i+1];
TempSLarr[i,2]:=StringGrid1.Cells[2,i+1];
end;
end;

Нормально ли это, или не хорошо на каждой итерации переопределять длину массива. Если не хорошо то как лучше сделать?


 
han_malign ©   (2003-10-31 09:13) [1]

mylen:=StringGrid1.RowCount;
SetLength(TempSLarr,mylen,3);
realLen:=0;

for i:=0 to mylen-2 do
begin
s:=Trim(StringGrid1.Cells[0,i+1]+StringGrid1.Cells[1,i+1]+
StringGrid1.Cells[2,i+1]);
if s="" then continue;
inc(realLen);
TempSLarr[i,0]:=StringGrid1.Cells[0,i+1];
TempSLarr[i,1]:=StringGrid1.Cells[1,i+1];
TempSLarr[i,2]:=StringGrid1.Cells[2,i+1];
end;
SetLength(TempSLarr,realLen,3);


 
Романов Р.В. ©   (2003-10-31 10:31) [2]

Если строк много то возникнет торможение при переопределении размеров массива. В общем задачу можно решить двумя способами
1. Задаешь максимальное размеры массива, после его заполнения выполняешь SetLength по количеству заполненых элементов
2. Перед заполнением массива выясняешь кол-во непустых строк и задаешь точные размеры



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
3-40822
PolarS
2003-10-22 10:38
2003.11.13
Как программно выполнить Job MS SQL Server?


4-42316
Volia
2003-09-05 10:05
2003.11.13
как прочесть содержимое из syslistvew32


3-40914
McSimm2
2003-10-20 10:31
2003.11.13
Количество изменений


6-41844
LOX
2003-09-10 07:48
2003.11.13
Отпрака письма


3-41055
Стас
2003-10-24 12:29
2003.11.13
Вопросы по базам данных