Ver Mensaje Individual
  #13  
Antiguo 31-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Cita:
Empezado por roman
No te detengas hombre. La verdad es que este tipo de rutinas pueden ser muy útiles y si se requieren para procesar muchos archivos y grandes, hacerlo en ensamblador puede ser una muy buena idea.
Código Delphi [-]
function Quitar13(Source: PChar; Dest: PChar): Integer;
asm
        MOV     Result,0
        DEC     EAX
@@SIG:
        INC     EAX
        CMP     BYTE PTR [EAX],0
        JE      @@SALIR
        MOV     CL,[EAX]
        CMP     CL,13
        JE      @@SIG
        MOV     BYTE PTR [EDX],CL
        INC     EDX
        INC     Result
        JMP     @@sig
@@SALIR:
        MOV     BYTE PTR [EDX],0
end;

function SaveToUnixFile(Filename, Text: String): Boolean;
var
  F: File;
  Escritos: Integer;
  P: PChar;
  i: integer;
begin
  Result:= FALSE;
  P:= PChar(Text);
  i:= Quitar13(P,P);
  AssignFile(F,Filename);
  {$I-}
    Rewrite(F,1);
  {$I+}
  if IOResult = 0 then
  begin
    BlockWrite(F,P^,i,Escritos);
    Result:= Escritos = i;
    CloseFile(F);
  end;
end;
Responder Con Cita