GuiFile.cpp
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * *  
  3.  * GuiToolKit   *
  4.  *  (MFC extension) *  
  5.  * Created by Francisco Campos G. www.beyondata.com fcampos@beyondata.com *
  6.  *--------------------------------------------------------------------------*    
  7.  * *
  8.  * This program is free software;so you are free to use it any of your *
  9.  * applications (Freeware, Shareware, Commercial),but leave this header *
  10.  * intact. *
  11.  * *
  12.  * These files are provided "as is" without warranty of any kind. *
  13.  * *
  14.  *        GuiToolKit is forever FREE CODE !!!!! *
  15.  * *
  16.  *--------------------------------------------------------------------------*
  17.  * Created by: Francisco Campos G. *
  18.  * Bug Fixes and improvements : (Add your name) *
  19.  * -Francisco Campos *
  20.  * *
  21.  ****************************************************************************/
  22. #include "stdafx.h"
  23. #include "GuiFile.h"
  24. #include <malloc.h>
  25. #ifdef _DEBUG
  26. #undef THIS_FILE
  27. static char THIS_FILE[]=__FILE__;
  28. #define new DEBUG_NEW
  29. #endif
  30. //////////////////////////////////////////////////////////////////////
  31. // Construction/Destruction
  32. //////////////////////////////////////////////////////////////////////
  33. CGuiFile::CGuiFile()
  34. {
  35. }
  36. CGuiFile::~CGuiFile()
  37. {
  38. // Close();
  39. }
  40. BOOL  CGuiFile::Open(char *szFile,char* mode)
  41. {
  42. fp=fopen(szFile,mode);
  43. return IsOpen();
  44. }
  45. void CGuiFile::Close()
  46. {
  47. if (IsOpen())
  48. {
  49. fclose(fp);
  50. fp=NULL;
  51. }
  52. }
  53. BOOL  CGuiFile::Seek(long offset, TypeSeek tps )
  54. {
  55. int result = fseek( fp, offset, tps);
  56.     if( result )
  57.         return FALSE;
  58.     else
  59. return TRUE;
  60. }
  61.       
  62. char* CGuiFile::Read(int Size)
  63. {
  64. char* cad=(char*) malloc(sizeof(char)*Size);
  65. memset(cad,0x00,Size);
  66. int numread = fread( cad, sizeof( char ), Size,fp);
  67. return cad;
  68. }
  69. BOOL  CGuiFile::Eof()
  70. {
  71. if (feof(fp))
  72. return TRUE;
  73. return FALSE;
  74. }
  75. char* CGuiFile::ReadLine()
  76. {
  77. int c;
  78. int pos;
  79. int Entro;
  80. char *cadena;
  81. cadena=(char*) malloc(sizeof(char)* 1000);
  82. memset(cadena,0x00,1000);
  83. pos=0;
  84. Entro=0;
  85. while (!feof(fp))
  86. {
  87. c=fgetc(fp);
  88. if (c == 10 || c == 13 || c == -1)
  89.   break;
  90. else
  91. {
  92. if (pos > (int)_msize( cadena ))
  93. {
  94. size_t size=_msize( cadena );
  95. char* aux= (char*)malloc(sizeof(char)* size);
  96. strcpy(aux,cadena);
  97. if( (cadena =(char*)realloc( cadena, size + (100 * sizeof( char )) )) 
  98.         ==  NULL )
  99. {
  100. *(aux+pos)='';
  101. return aux;
  102. }
  103. memset(cadena+size,0x00,size+100);
  104. }
  105. *(cadena+(pos++))=(char)c;
  106. Entro=1;
  107. }
  108. }
  109. if (Entro==1)
  110. *(cadena+pos)='n';
  111. else
  112. *(cadena+pos)='';
  113. return cadena;
  114. }
  115. BOOL  CGuiFile::IsOpen()
  116. {
  117. if (fp == NULL)
  118. return FALSE;
  119. return TRUE;
  120. }
  121. BOOL  CGuiFile::WriteLine(char *cadena)
  122. {
  123. int numwritten =fwrite(cadena,sizeof(char),strlen(cadena),fp);
  124. if (numwritten != (int)strlen(cadena))
  125. return FALSE;
  126. return TRUE;
  127. }