Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
1-41365
Элина
2003-10-29 12:01
2003.11.13
DLL и строка


6-41821
SDF
2003-09-15 06:53
2003.11.13
Работа с сокетами


1-41193
sagchat
2003-11-02 12:37
2003.11.13
не роботает под XP


3-40924
VID
2003-10-16 01:01
2003.11.13
Непонятное поведение клиента при потере связи с сервером


3-41010
Piton X
2003-10-14 13:44
2003.11.13
Запрос об оплате услуг по датам. Строки - люди, столбцы - даты, а




   Наверх