Guest User

Untitled

a guest
Oct 23rd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 2.61 KB | None | 0 0
  1. <pre style='color:#141312;background-color:#ffffff;'>
  2.    <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>
  3.    M: tablaM;
  4.    encontrado : <span style='color:#0057ae;'>boolean</span>;
  5.    Pa: Part;
  6.    ID_Revista : <span style='color:#0057ae;'>integer</span>;
  7.    <b>Begin</b>
  8.       <b>Begin</b>
  9.          <b>If</b> <b>not</b> TtablasA.esta(BasedArt.TablasA, ID_Articulo) <b>then</b>
  10.             <b>raise</b> NoExisteArticulo;
  11.          <b>else</b>
  12.          <i><span style='color:#888786;'>-- Dado el ID_Articulo, podemos saber el ID_Revista.</span></i>
  13.          ID_Revista := ID_Articulo / <span style='color:#b08000;'>100</span>;
  14.  
  15.          <i><span style='color:#888786;'>-- Eliminamos el puntero de BDM (hash de revistas)</span></i>
  16.          encontrado := false;
  17.          M := TtablasM.consultar(Basedmensual.TablasM, ID_Revista);
  18.          Lista_Articulo.final(M.mensualidad.LArticulos);
  19.          <i><span style='color:#888786;'>-- Coloca el apuntador de la lista doblemente enlazada al final</span></i>
  20.          <i><span style='color:#888786;'>-- Va obteniendo el puntero (a articulo) de la lista de articulos</span></i>
  21.          <i><span style='color:#888786;'>-- Si el puntero obtenido tiene el mismo id que el articulo a eliminar...</span></i>
  22.          <i><span style='color:#888786;'>-- liberamos el puntero y eliminamos el elemento de la lista de articulos.</span></i>
  23.          <i><span style='color:#888786;'>-- Salimos del bucle.</span></i>
  24.          <i><span style='color:#888786;'>-- Si no lo localiza, mira la posicion anterior en la lista</span></i>
  25.          <b>while</b> <b>not</b> encontrado <b>loop</b>
  26.             Pa := Lista_Articulo.Obtener(M.mensualidad.LArticulos);
  27.              <b>if</b> (Pa.ID_Articulo = ID_Articulo) <b>then</b>
  28.                 free(Pa);
  29.                 Lista_Articulo.Eliminar(M.mensualidad.LArticulos);
  30.                 encontrado := true;
  31.              <b>end if</b>;
  32.                Lista_Articulo.Anterior(M.mensualidad.LArticulos);
  33.          <b>end loop</b>;
  34.          <i><span style='color:#888786;'>-- Eliminamos el articulo de BDA (hash de articulos)</span></i>
  35.          TtablasA.borrar(BasedArt.TablasA, ID_Articulo);
  36.          <b>End if</b>;
  37.       <b>Exception</b>
  38.          <b>When</b> NoExisteArticulo =>
  39.             Put_line(<span style='color:#bf0303;'>"     (EXCEPTION) - El ID de articulo no existe"</span>);
  40.          <b>When</b> <b>others</b> =>
  41.             <b>raise</b>;
  42.       <b>End</b>;
  43.    <b>End</b> Eliminar_Articulo;</pre>
Add Comment
Please, Sign In to add comment