Ver Mensaje Individual
  #36  
Antiguo 28-03-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.438
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por dec
Alguna forma ha de haber de lograr hacer desaparecer de la memoria el número de serie correcto una vez utilizado por el programa.
¿Y si enfocamos el tema de otra manera?
En lugar de borrarlo, que no aparezca. Tal vez me he perdido algo, pero creo que es posible...

Se trata de hacer el cálculo sin asignar el SN en ningun sitio.
Por ejemplo, este programa; He seguido los pasos (con el WinHex) para encontrar en Serial Correcto en memoria y yo no lo veo.

El procedimiento de cálculo es el siguiente:

Código Delphi [-]
var
  b:Boolean;
  i:Integer;
begin

  if ((Length(Edit2.Text) - Length(Edit1.Text)) < 2) or
     (Length(Edit1.Text) < 4) then begin
    MessageDlg('El número de registro es incorrecto', mtWarning, [mbOK], 0);
    Exit
  end;

  b := True;

  for i := 0 to (Length(Edit1.Text) - 1) do begin
    b := b and (Edit1.Text[i] = Edit2.Text[i]);
  end;

  b := b and (Edit2.Text[i + 1] = 'S');
  b := b and (Edit2.Text[i + 2] = 'N');

  if (b) then begin
    MessageDlg('El registro se ha completado correctamente.', mtInformation, [mbOK], 0);
  end
  else begin
    MessageDlg('El número de registro es incorrecto', mtWarning, [mbOK], 0);
  end;

Como véis es muy "cutre", pero el número correcto no se asigna.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita