fileio.h
上传用户:cy_lbt
上传日期:2021-02-26
资源大小:1k
文件大小:2k
源码类别:

压缩解压

开发平台:

Visual C++

  1. #ifndef __FILEIO_H__
  2. #define __FILEIO_H__
  3. //------------------------------------------------------------------------------
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <windows.h>
  7. //------------------------------------------------------------------------------
  8. HANDLE  file_handle(CHAR* file_name)
  9. {
  10.     HANDLE h_file;
  11.     h_file = CreateFile(file_name,
  12.                        GENERIC_READ|GENERIC_WRITE,
  13.                        FILE_SHARE_READ|FILE_SHARE_WRITE,
  14.                        NULL,
  15.                        OPEN_ALWAYS,
  16.                        0,
  17.                        NULL
  18.                        );
  19.     return h_file;
  20. }
  21. //------------------------------------------------------------------------------
  22. WORD load_buffer(HANDLE h_sour, PBUFFER_DATA buffer)  // Load file to buffer
  23. {
  24.     DWORD ret;
  25.     ReadFile(h_sour,buffer->lp_buffer,BUFFERSIZE,&ret,NULL);
  26.     buffer->index = 0;
  27.     buffer->top = (WORD)ret;
  28.     return (WORD)ret;
  29. }
  30. //------------------------------------------------------------------------------
  31. WORD empty_buffer( PLZW_DATA lzw, PBUFFER_DATA buffer)// Output buffer to file
  32. {
  33.    
  34.     DWORD ret;
  35.     if(buffer->end_flag) // The flag mark the end of decode
  36. {
  37.   if( buffer->by_left )
  38.   {
  39.    buffer->lp_buffer[ buffer->index++ ] = (BYTE)( buffer->dw_buffer >> 32-buffer->by_left )<<(8-buffer->by_left);
  40.   }
  41. }
  42. WriteFile(lzw->h_dest, buffer->lp_buffer,buffer->index,&ret,NULL);
  43.     buffer->index = 0;
  44.     buffer->top = ret;
  45.     return (WORD)ret;
  46. }
  47. //------------------------------------------------------------------------------
  48. #endif