comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

ReadWriteAPI [UNIT] [Fakedo0r]

  • 0 Respuestas
  • 1390 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Fakedo0r

  • *
  • Visitante
« en: Abril 19, 2012, 05:08:16 pm »
Permite leer textos / binarios e escribirlos.

Código: Delphi
  1. //******************************************************************************
  2. //* UNIT:         UNT_ReadWriteAPI
  3. //* AUTOR:        Fakedo0r
  4. //* CORREO:       Luvel88@gmail.com
  5. //* BLOG:         Sub-Soul.blogspot.com
  6. //* FECHA:        07.04.2012
  7. //* REFERENCIA:   http://msdn.microsoft.com/en-us/library
  8. //*               /windows/desktop/aa363858(v=vs.85).aspx
  9. //*               /windows/desktop/aa365467(v=vs.85).aspx
  10. //*               /windows/desktop/aa365747(v=vs.85).aspx
  11. //* ----------------------------------------------------------------------------
  12. //* FUNCIONES:    ReadFileA
  13. //*               WriteFileA
  14. //*               StringToByteArray
  15. //*               ByteArrayToString
  16. //*               MsgBoxA
  17. //*
  18. //*
  19. //* USO:          sVar := ReadFileA('C:\Origen.exe');
  20. //*               WriteFileA('C:\Destino.exe', sVar);
  21. //******************************************************************************
  22. unit UNT_ReadWriteAPI;
  23. //******************************************************************************
  24. //DECLARACION LIBRERIAS / CLASES
  25. //******************************************************************************
  26. interface
  27.  
  28. uses
  29.   Winapi.Windows, System.SysUtils, ShlObj;
  30. //******************************************************************************
  31. //DECLARACION DE FUNCIONES / PROCEDIMIENTOS
  32. //******************************************************************************
  33. function MsgBoxA(sMensaje: String): SmallInt;
  34. function ReadFileA(sFile: String): String;
  35. function WriteFileA(sFile: String; const sBuffer: String): Bool;
  36. function StringToByteArray(sCadena: AnsiString): TBytes;
  37. function ByteArrayToString(bByteArray: TBytes): AnsiString;
  38. //******************************************************************************
  39. implementation
  40. //******************************************************************************
  41. //******************************************************************************
  42. //<--- LEE --->
  43. //******************************************************************************
  44. function ReadFileA(sFile: String): String;
  45. var
  46.   dwRet:    DWORD;
  47.   hFile:    THandle;
  48.   iSize:    Integer;
  49.   bRead:    TBytes;
  50. begin
  51.   hFile := CreateFile(PChar(sFile), GENERIC_READ, FILE_SHARE_READ, nil,
  52.                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  53.  
  54.   if hFile = INVALID_HANDLE_VALUE then
  55.   begin
  56.     MsgBoxA('Se produjo algun error !');
  57.     Exit;
  58.   end;
  59.  
  60.   iSize := GetFileSize(hFile, nil);
  61.   SetFilePointer(hFile, 0, nil, FILE_BEGIN);
  62.   SetLength(bRead, iSize);
  63.  
  64.   ReadFile(hFile, bRead[0], iSize, dwRet, nil);
  65.   CloseHandle(hFile);
  66.  
  67.   Result := ByteArrayToString(bRead);
  68. end;
  69. //******************************************************************************
  70. //<--- ESCRIBE --->
  71. //******************************************************************************
  72. function WriteFileA(sFile: String; const sBuffer: String): Bool;
  73. var
  74.   dwRet:    DWORD;
  75.   hFile:    THandle;
  76.   iSize:    Integer;
  77.   bWrite:   TBytes;
  78. begin
  79.   Result := True;
  80.   bWrite := StringToByteArray(sBuffer);
  81.   iSize := Length(bWrite);
  82.   hFile := CreateFile(PChar(sFile), GENERIC_WRITE, FILE_SHARE_READ, nil,
  83.                       OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
  84.  
  85.   WriteFile(hFile, bWrite[0], iSize, dwRet, nil);
  86.   CloseHandle(hFile);
  87. end;
  88. //******************************************************************************
  89. //<--- CONVIERTE ARRAY DE BYTES EN STRING --->
  90. //******************************************************************************
  91. function ByteArrayToString(bByteArray: TBytes): AnsiString;
  92. var
  93.   i: Integer;
  94. begin
  95.   SetLength(Result, Length(bByteArray));
  96.  
  97.   for i := 0 to Length(bByteArray) do
  98.     Result[i + 1] := AnsiChar(bByteArray[i]);
  99. end;
  100. //******************************************************************************
  101. //<--- CONVIERTE STRING EN ARRAY DE BYTES --->
  102. //******************************************************************************
  103. function StringToByteArray(sCadena: AnsiString): TBytes;
  104. var
  105.   i: Integer;
  106. begin
  107.   SetLength(Result, Length(sCadena));
  108.  
  109.   for i := 0 to Length(sCadena) do
  110.     Result[i - 1] := Byte(sCadena[i]);
  111. end;
  112. //******************************************************************************
  113. //<--- MSGBOX --->
  114. //******************************************************************************
  115. function MsgBoxA(sMensaje: String): SmallInt;
  116. begin
  117.   Result := MessageBoxEx(0, PChar(sMensaje), 'Mensaje', MB_ICONINFORMATION, 0);
  118. end;
  119. end.
  120.  

Saludo.
« Última modificación: Abril 21, 2013, 01:04:14 pm por Expermicid »

 

¿Te gustó el post? COMPARTILO!



[Delphi] Unit DH Tools 0.2

Iniciado por BigBear

Respuestas: 0
Vistas: 1273
Último mensaje Mayo 14, 2016, 01:45:08 pm
por BigBear
[UNIT] PidGinRec by Metal

Iniciado por Expermicid

Respuestas: 0
Vistas: 1126
Último mensaje Junio 11, 2013, 01:00:27 pm
por Expermicid
[UNIT] BlowFish Encription

Iniciado por Expermicid

Respuestas: 0
Vistas: 1899
Último mensaje Junio 11, 2013, 09:39:39 pm
por Expermicid
MeltFile [UNIT] [Fakedo0r]

Iniciado por Fakedo0r

Respuestas: 0
Vistas: 1360
Último mensaje Abril 19, 2012, 05:10:05 pm
por Fakedo0r
GetWriteINI [UNIT] [Fakedo0r]

Iniciado por Fakedo0r

Respuestas: 0
Vistas: 1426
Último mensaje Abril 19, 2012, 05:11:12 pm
por Fakedo0r