Eliminar Ocurrencias Cursores

También podría gustarte

Está en la página 1de 2

Function lista.

eliminarocurrencias(X:tipoelemento;campo:campocomparar):errores;
Var
p,r,Q: PosicionLista;
y:tipoelemento;
Begin
Eliminarocurrencias:=CError;
If EsVacia() Then
Eliminarocurrencias := Vacia
Else
Begin
r:=inicio;
while (r <> nulo) do
begin
p:=r;
recuperar(y,p);
if x.CompararTE(y,campo) = igual then
begin
If ValidarPosicion(P) Then
Begin
r:=cursor[r].Prox;
Q := P;
If (P = Inicio) And (P = Final) Then
Crear() // Unico de la lista. Se crea vaci
a
Else
Begin
If (P = Inicio) Then
Begin // Se elimina el primer el
emento. Cambia el inicio
Inicio := cursor[Inicio].Pr
ox;
cursor[Inicio].Ante := NULO
;
End
Else
If (P = Final) Then
Begin // Se elimina el ultim
o elemento. Cambia el Final
Final := cursor[final].
Ante;
cursor[final].Prox := N
ULO;
End
Else
Begin // Se elimina en cua
lquier otro lugar que no es ni Inicio, ni Final
cursor[cursor[p].ant
e].prox:=cursor[p].Prox;
cursor[cursor[p].pro
x].ante:= cursor[p].Ante;
End;
cursor[q].prox:=libre; //
Elimino la posicion de memoria
libre:=q;
End;
Dec(Q_Items);
end;

end
else
begin
r:=cursor[r].Prox;
end;
end;
Eliminarocurrencias := OK;
End;
End;

También podría gustarte