Arreglos

Tengo una duda hice un programa de llenar un arreglo pero al momento de guardar los datos si el arreglo estaba lleno me mandaba un mensaje de que estaba lleno pero resulta que meto y meto información y no aparece el error por favor ayudenme
Así guardo el tamaño del arreglo
N:= STRTOINT(INPUTBOX('TAMAÑO','DAME EL TAMAÑO DEL ARREGLO:',''));
SETLENGTH(A,N);
aqui guardo el valor de z
procedure TForm1.FormActivate(Sender: TObject);
begin
z:=0;
end;
y asi lo guardo pero no funciona
procedure TForm1.Button2Click(Sender: TObject);
begin
z:=0;
band:=false;
FOR y:= 0 TO (N-1) DO
BEGIN
IF EDIT1.TEXT = A[y].CLAVE THEN
begin
SHOWMESSAGE('LA CLAVE YA EXISTE');
band:=true;
end;
END ;
if band= false then
begin
if z <=(N-1) then
begin
A[z].CLAVE:=EDIT1.TEXT;
A[z].NOM:=EDIT2.TEXT;
A[z].APE:=EDIT3.TEXT;
z:=z+1;
end
else
SHOWMESSAGE('EL REGISTRO ESTA LLENO');
end;
end;

1 Respuesta

Respuesta
El problema esta aquí
procedure TForm1.Button2Click(Sender: TObject);
begin
z:=0; //Con esta linea, siempre sobreescribes la primera posicion del arreglo
band:=false;
FOR y:= 0 TO (N-1) DO
begin
...
Tienes que dejar z como puntero a tu próxima intentar libre.
Te recomiendo que hagas una función que te muestre el contenido del todo el arreglo, eso te mostrara el problema más claramente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas