Ver Mensaje Individual
  #5  
Antiguo 09-07-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Y solo por fastidiar , te dejo este otro mas largo, pero creo que mas rápido:
Código Delphi [-]
function Quitar0(Source: PChar; Dest: PChar): Integer;
asm
        MOV     Result,0
        DEC     EAX
@@SIG1:
        INC     EAX
        CMP     BYTE PTR [EAX],0
        JE      @@SALIR
        MOV     CL,[EAX]
        CMP     CL,'/'
        JE      @@SIG2
        MOV     BYTE PTR [EDX],CL
        INC     EDX
        INC     Result
        JMP     @@SIG1
@@SIG2:
        MOV     BYTE PTR [EDX],CL
        INC     EDX
        INC     Result
@@SIG3:
        INC     EAX
        CMP     BYTE PTR [EAX],0
        JE      @@SALIR
        MOV     CL,[EAX]
        CMP     CL,'0'
        JE      @@SIG3

        MOV     BYTE PTR [EDX],CL
        INC     EDX
        INC     Result
@@SIG4:
        INC     EAX
        CMP     BYTE PTR [EAX],0
        JE      @@SALIR
        MOV     CL,[EAX]
        MOV     BYTE PTR [EDX],CL
        INC     EDX
        INC     Result
        JMP     @@SIG4
@@SALIR:
        MOV     BYTE PTR [EDX],0
end;

Por ejemplo:
Código Delphi [-]
var
  Str: String;
begin
  Str:= Copy('SLS_F/000105',1,MAXINT);
  Quitar0(PChar(Str),PChar(Str));
  ShowMessage(Str);
end;

que forma de perder el tiempo ...
Responder Con Cita