GuiFile.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------//
  2. // This is a part of the GuiLib MFC Extention.  //
  3. // Modified by  :  Francisco Campos  //
  4. // (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved     //
  5. // This code is provided "as is", with absolutely no warranty expressed  //
  6. // or implied. Any use is at your own risk.  //
  7. // You must obtain the author's consent before you can include this code //
  8. // in a software library.  //
  9. // If the source code in  this file is used in any application  //
  10. // then acknowledgement must be made to the author of this program  //
  11. // fcampos@tutopia.com  //
  12. //-----------------------------------------------------------------------//
  13. #include "stdafx.h"
  14. #include "GuiFile.h"
  15. #include <malloc.h>
  16. #ifdef _DEBUG
  17. #undef THIS_FILE
  18. static char THIS_FILE[]=__FILE__;
  19. #define new DEBUG_NEW
  20. #endif
  21. //////////////////////////////////////////////////////////////////////
  22. // Construction/Destruction
  23. //////////////////////////////////////////////////////////////////////
  24. CGuiFile::CGuiFile()
  25. {
  26. }
  27. CGuiFile::~CGuiFile()
  28. {
  29. // Close();
  30. }
  31. BOOL  CGuiFile::Open(char *szFile,char* mode)
  32. {
  33. fp=fopen(szFile,mode);
  34. return IsOpen();
  35. }
  36. void CGuiFile::Close()
  37. {
  38. if (IsOpen())
  39. {
  40. fclose(fp);
  41. fp=NULL;
  42. }
  43. }
  44. BOOL  CGuiFile::Seek(long offset, TypeSeek tps )
  45. {
  46. int result = fseek( fp, offset, tps);
  47.     if( result )
  48.         return FALSE;
  49.     else
  50. return TRUE;
  51. }
  52.       
  53. char* CGuiFile::Read(int Size)
  54. {
  55. char* cad=(char*) malloc(sizeof(char)*Size);
  56. memset(cad,0x00,Size);
  57. int numread = fread( cad, sizeof( char ), Size,fp);
  58. return cad;
  59. }
  60. BOOL  CGuiFile::Eof()
  61. {
  62. if (feof(fp))
  63. return TRUE;
  64. return FALSE;
  65. }
  66. char* CGuiFile::ReadLine()
  67. {
  68. int c;
  69. int pos;
  70. int Entro;
  71. char *cadena;
  72. cadena=(char*) malloc(sizeof(char)* 1000);
  73. memset(cadena,0x00,1000);
  74. pos=0;
  75. Entro=0;
  76. while (!feof(fp))
  77. {
  78. c=fgetc(fp);
  79. if (c == 10 || c == 13 || c == -1)
  80.   break;
  81. else
  82. {
  83. if (pos > (int)_msize( cadena ))
  84. {
  85. size_t size=_msize( cadena );
  86. char* aux= (char*)malloc(sizeof(char)* size);
  87. strcpy(aux,cadena);
  88. if( (cadena =(char*)realloc( cadena, size + (100 * sizeof( char )) )) 
  89.         ==  NULL )
  90. {
  91. *(aux+pos)='';
  92. return aux;
  93. }
  94. memset(cadena+size,0x00,size+100);
  95. }
  96. *(cadena+(pos++))=(char)c;
  97. Entro=1;
  98. }
  99. }
  100. if (Entro==1)
  101. *(cadena+pos)='n';
  102. else
  103. *(cadena+pos)='';
  104. return cadena;
  105. }
  106. BOOL  CGuiFile::IsOpen()
  107. {
  108. if (fp == NULL)
  109. return FALSE;
  110. return TRUE;
  111. }
  112. BOOL  CGuiFile::WriteLine(char *cadena)
  113. {
  114. int numwritten =fwrite(cadena,sizeof(char),strlen(cadena),fp);
  115. if (numwritten != (int)strlen(cadena))
  116. return FALSE;
  117. return TRUE;
  118. }