TConfigA.cpp
上传用户:haiweijt
上传日期:2018-02-23
资源大小:8195k
文件大小:3k
源码类别:

Telnet服务器

开发平台:

Visual C++

  1. #include "TConfigA.h"
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #pragma warning( disable: 4996)
  5. TConfigA::TConfigA(void)
  6. {
  7. }
  8. TConfigA::~TConfigA(void)
  9. {
  10. }
  11. int CopySafe(char* dest, int size, const char* value)
  12. {
  13. int len = strlen(value);
  14. int max = size-1;
  15. if (len > max)
  16. {
  17. memcpy(dest, value, max);
  18. dest[max] = '';
  19. return max;
  20. }
  21. else
  22. {
  23. strcpy(dest, value);
  24. return len;
  25. }
  26. }
  27. char* SplitePath(const char* FileName)
  28. {
  29. static char Path[MAX_PATH];
  30. char szPath[256];
  31. char szDrive[256];
  32. char szFileName[256];
  33. char szExt[256];
  34. _splitpath(FileName, szDrive, szPath, szFileName, szExt);
  35. strcpy(Path, szDrive);
  36. strcat(Path, szPath);
  37. return Path;
  38. }
  39. char* TConfigA::GetConfigFileName(char* Path, int Size)
  40. {
  41. char PathName[256];
  42. ::GetModuleFileName(NULL, PathName, 256);
  43. strcpy(PathName, SplitePath(PathName));
  44. strcat(PathName, "TCSConfig.ini");
  45. CopySafe(Path, Size, PathName);
  46. return Path;
  47. }
  48. BOOL TConfigA::Open()
  49. {
  50. char Path[256];
  51. GetConfigFileName(Path, 256);
  52. return Open(Path);
  53. }
  54. BOOL TConfigA::Open(const char* FileName)
  55. {
  56. strcpy(m_FileName, FileName);
  57. return TRUE;
  58. }
  59. void TConfigA::Close()
  60. {
  61. }
  62. #define SYSTEM_KEY "System"
  63. void TConfigA::ReadSystemString(LPCTSTR Key, char* Value, int Size)
  64. {
  65. ::GetPrivateProfileString(SYSTEM_KEY, Key, "", Value, Size, m_FileName);
  66. }
  67. void TConfigA::ReadCmd(int index, char* value, int size)
  68. {
  69. char buf[32];
  70. sprintf(buf, "Cmd[%d]",index);
  71. ::GetPrivateProfileString("CMD",buf,"", value, size, m_FileName);
  72. }
  73. void TConfigA::ReadField(int index, char* value, int size)
  74. {
  75. char buf[32];
  76. sprintf(buf, "Field[%d]",index);
  77. ::GetPrivateProfileString("CMD",buf,"", value, size, m_FileName);
  78. }
  79. void TConfigA::ReadCount(char* value,int size)
  80. {
  81. ::GetPrivateProfileString("CMD","Count","", value,size, m_FileName);
  82. }
  83. /*
  84. void TConfigA::ReadIndex(LPCTSTR App, LPCTSTR Key, int Index, char* value, int size)
  85. {
  86. char Buf[32];
  87. sprintf(Buf, "%s[%d]", Key, Index);
  88. GetPrivateProfileString(App, Buf, "", value, size, m_FileName);
  89. }
  90. void TConfigA::WriteIndex(LPCTSTR App, LPCTSTR Key, int Index, LPCTSTR value)
  91. {
  92. char Buf[32];
  93. sprintf(Buf, "%s[%d]", Key, Index);
  94. WritePrivateProfileString(App, Buf, value, m_FileName);
  95. }
  96. int TConfigA::ReadIndex(LPCTSTR App, LPCTSTR Key, int Index)
  97. {
  98. char Buf[32];
  99. sprintf(Buf, "%s[%d]", Key, Index);
  100. return GetPrivateProfileInt(App, Buf, 0, m_FileName);
  101. }
  102. void TConfigA::WriteIndex(LPCTSTR App, LPCTSTR Key, int Index, int value)
  103. {
  104. char Buf[32];
  105. sprintf(Buf, "%s[%d]", Key, Index);
  106. WriteInt(App, Buf, value);
  107. }
  108. void TConfigA::WriteInt(LPCTSTR App, LPCTSTR Key, int Value)
  109. {
  110. char Buf[32];
  111. sprintf(Buf, "%d", Value);
  112. WritePrivateProfileString(App, Key, Buf, m_FileName);
  113. }
  114. */