Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <pre style='color:#141312;background-color:#ffffff;'>
- <b>Procedure</b> Eliminar_Articulo (Basedmensual: <b>in</b> <b>out</b> BDM; BasedArt: <b>in</b> <b>out</b> BDA; ID_Articulo: <b>in</b> <span style='color:#0057ae;'>integer</span>; Based: BD_art) <b>is</b>
- M: tablaM;
- encontrado : <span style='color:#0057ae;'>boolean</span>;
- Pa: Part;
- ID_Revista : <span style='color:#0057ae;'>integer</span>;
- <b>Begin</b>
- <b>Begin</b>
- <b>If</b> <b>not</b> TtablasA.esta(BasedArt.TablasA, ID_Articulo) <b>then</b>
- <b>raise</b> NoExisteArticulo;
- <b>else</b>
- <i><span style='color:#888786;'>-- Dado el ID_Articulo, podemos saber el ID_Revista.</span></i>
- ID_Revista := ID_Articulo / <span style='color:#b08000;'>100</span>;
- <i><span style='color:#888786;'>-- Eliminamos el puntero de BDM (hash de revistas)</span></i>
- encontrado := false;
- M := TtablasM.consultar(Basedmensual.TablasM, ID_Revista);
- Lista_Articulo.final(M.mensualidad.LArticulos);
- <i><span style='color:#888786;'>-- Coloca el apuntador de la lista doblemente enlazada al final</span></i>
- <i><span style='color:#888786;'>-- Va obteniendo el puntero (a articulo) de la lista de articulos</span></i>
- <i><span style='color:#888786;'>-- Si el puntero obtenido tiene el mismo id que el articulo a eliminar...</span></i>
- <i><span style='color:#888786;'>-- liberamos el puntero y eliminamos el elemento de la lista de articulos.</span></i>
- <i><span style='color:#888786;'>-- Salimos del bucle.</span></i>
- <i><span style='color:#888786;'>-- Si no lo localiza, mira la posicion anterior en la lista</span></i>
- <b>while</b> <b>not</b> encontrado <b>loop</b>
- Pa := Lista_Articulo.Obtener(M.mensualidad.LArticulos);
- <b>if</b> (Pa.ID_Articulo = ID_Articulo) <b>then</b>
- free(Pa);
- Lista_Articulo.Eliminar(M.mensualidad.LArticulos);
- encontrado := true;
- <b>end if</b>;
- Lista_Articulo.Anterior(M.mensualidad.LArticulos);
- <b>end loop</b>;
- <i><span style='color:#888786;'>-- Eliminamos el articulo de BDA (hash de articulos)</span></i>
- TtablasA.borrar(BasedArt.TablasA, ID_Articulo);
- <b>End if</b>;
- <b>Exception</b>
- <b>When</b> NoExisteArticulo =>
- Put_line(<span style='color:#bf0303;'>" (EXCEPTION) - El ID de articulo no existe"</span>);
- <b>When</b> <b>others</b> =>
- <b>raise</b>;
- <b>End</b>;
- <b>End</b> Eliminar_Articulo;</pre>
Add Comment
Please, Sign In to add comment