Ver Mensaje Individual
  #7  
Antiguo 09-07-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Reputación: 24
Bicho Va por buen camino
Cita:
Empezado por seoane
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 ...

Es increible la de tiempo que tienen algunos!!

Saludos
Responder Con Cita