ITSUtilF.cpp 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include <windows.h>
  4. #pragma hdrstop
  5. #include "ITSUtilF.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. void ITSUtil_ShowErrorMessage(int nErrCode)
  9. {
  10. LPVOID lpErrMsgBuf;
  11. FormatMessage(
  12. FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
  13. NULL,
  14. nErrCode, //GetLastError(),
  15. MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
  16. (LPTSTR)&lpErrMsgBuf,
  17. 0,
  18. NULL
  19. );
  20. String sErrMsg;
  21. sErrMsg.printf(L"Error(%d) : %s", nErrCode, lpErrMsgBuf);
  22. LocalFree(lpErrMsgBuf);
  23. //Application->MessageBox(sErrMsg.c_str(), Caption.c_str(), MB_OK);
  24. Application->NormalizeTopMosts();
  25. Application->MessageBox(sErrMsg.c_str(), L"ITSUtil_ShowErrorMessage", MB_OK|MB_ICONERROR|MB_APPLMODAL);
  26. Application->RestoreTopMosts();
  27. }
  28. //---------------------------------------------------------------------------
  29. DWORD ITSUtil_GetFileSize(String sFileName)
  30. {
  31. HANDLE hFile = INVALID_HANDLE_VALUE;
  32. LARGE_INTEGER liSize;
  33. liSize.LowPart = 0;
  34. liSize.HighPart = 0;
  35. hFile = ::CreateFile(sFileName.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  36. if (hFile == INVALID_HANDLE_VALUE)
  37. {
  38. ITSUtil_ShowErrorMessage(::GetLastError());
  39. return -1;
  40. }
  41. if (!GetFileSizeEx(hFile, &liSize))
  42. {
  43. ITSUtil_ShowErrorMessage(::GetLastError());
  44. return -2;
  45. }
  46. #if 0
  47. if (liSize.HighPart != 0 || liSize.LowPart > 0x7FFFFFFF)
  48. {
  49. // Lets not try to send anything larger than 2 gigs
  50. SetLastError(ERROR_OPEN_FAILED);
  51. ShowErrorMessage(::GetLastError());
  52. return -3;
  53. }
  54. #endif
  55. if (hFile != INVALID_HANDLE_VALUE)
  56. {
  57. ::CloseHandle(hFile);
  58. }
  59. return liSize.LowPart;
  60. }
  61. //---------------------------------------------------------------------------
  62. String ITSUtil_FormatStr(String AStrDateTime, String AFormat)
  63. {
  64. #define SYEAR "-"
  65. #define STIME ":"
  66. #define SPACE " "
  67. String sDateTime = "";
  68. String sInData = AnsiString(AStrDateTime);
  69. //ShowMessage("IN: " + AStrDateTime + " " + sInData + " " + AFormat);
  70. if (sInData.IsEmpty())
  71. return sInData;
  72. //sDateTime = sInData;
  73. try
  74. {
  75. if (AFormat == STR_DATETIME)
  76. {
  77. if (sInData.Length() < 14) return sInData;
  78. sDateTime = sInData.SubString( 1, 4) + SYEAR +
  79. sInData.SubString( 5, 2) + SYEAR +
  80. sInData.SubString( 7, 2) + SPACE +
  81. sInData.SubString( 9, 2) + STIME +
  82. sInData.SubString(11, 2) + STIME +
  83. sInData.SubString(13, 2);
  84. }
  85. else
  86. if (AFormat == STR_HHNN)
  87. {
  88. if (sInData.Length() < 12) return sInData;
  89. sDateTime = sInData.SubString( 1, 4) + SYEAR +
  90. sInData.SubString( 5, 2) + SYEAR +
  91. sInData.SubString( 7, 2) + SPACE +
  92. sInData.SubString( 9, 2) + STIME +
  93. sInData.SubString(11, 2);
  94. }
  95. else
  96. if (AFormat == STR_DATEHOUR)
  97. {
  98. if (sInData.Length() < 10) return sInData;
  99. sDateTime = sInData.SubString( 1, 4) + SYEAR +
  100. sInData.SubString( 5, 2) + SYEAR +
  101. sInData.SubString( 7, 2) + SPACE +
  102. sInData.SubString( 9, 2);
  103. }
  104. else
  105. if (AFormat == STR_DATE)
  106. {
  107. if (sInData.Length() < 8) return sInData;
  108. sDateTime = sInData.SubString( 1, 4) + SYEAR +
  109. sInData.SubString( 5, 2) + SYEAR +
  110. sInData.SubString( 7, 2);
  111. }
  112. else
  113. if (AFormat == STR_MM)
  114. {
  115. if (sInData.Length() < 6) return sInData;
  116. sDateTime = sInData.SubString( 1, 4) + SYEAR +
  117. sInData.SubString( 5, 2);
  118. }
  119. else
  120. {
  121. sDateTime = sInData;
  122. }
  123. }
  124. catch(...)
  125. {
  126. }
  127. //ShowMessage("OUT: " + sDateTime);
  128. return sDateTime;
  129. }
  130. //---------------------------------------------------------------------------
  131. void ITSUtil_NetworkPing(String AIpAddress)
  132. {
  133. try {
  134. String sCmd = "open";
  135. String sCmdParam = "ping.exe";
  136. String sParams = "-t " + AIpAddress;
  137. ShellExecute(NULL, sCmd.c_str(), sCmdParam.c_str(), sParams.c_str(), NULL, SW_SHOWNORMAL);
  138. } catch(...) {}
  139. }
  140. //---------------------------------------------------------------------------