Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

149 строки
3.9 KiB

  1. #include "LogsSorterConfig.h"
  2. #include <QFile>
  3. #include <QDataStream>
  4. #include "LogsSorter.h"
  5. CLogsSorterConfig::CLogsSorterConfig()
  6. {
  7. mIsConfigLoaded = false;
  8. mProgramHandle = 0;
  9. }
  10. /*
  11. FILTRE="ZT1"
  12. TYPE="DÉPLACER"
  13. DESCRIPTION="Zone Test 1 Terminus Angrignon"
  14. PREFIXE="ANG"
  15. DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Angrignon"
  16. */
  17. int CLogsSorterConfig::LoadLogsSorterConfig(QString ConfigFileName)
  18. {
  19. mProgramHandle->AddGeneralMsgTextRequest("Chargement des filtres");
  20. QFile *ConfigFile = new QFile(ConfigFileName);
  21. if (!ConfigFile->open(QIODevice::ReadOnly | QIODevice::Text))
  22. {
  23. delete ConfigFile;
  24. return RET_GENERAL_ERROR;
  25. }
  26. mLogsSorterConfig.mLogsFiltersList.clear();
  27. mLogsSorterConfig.mLogsSourceDirectory.clear();
  28. QDataStream * OutputStream = new QDataStream(ConfigFile);
  29. quint32 MagicNbr;
  30. quint32 FileVersion;
  31. *OutputStream >> MagicNbr;
  32. *OutputStream >> FileVersion;
  33. *OutputStream >> mLogsSorterConfig;
  34. ConfigFile->close();
  35. ConfigFile->close();
  36. delete ConfigFile;
  37. delete OutputStream;
  38. return RET_OK;
  39. // bool finished = false;
  40. // QString string;
  41. // int pos;
  42. // while(!finished)
  43. // {
  44. // string.clear();
  45. // string = ConfigFile->readLine(1024);
  46. // if(string.isEmpty())
  47. // {
  48. // finished = true;
  49. // break;
  50. // }
  51. // if(string.at(0) != '#' && string.at(0) != '\n')
  52. // {
  53. // string.remove("\n"); //remove trailing "\n" characters inserted by QFile.readline
  54. // // string.remove(' '); //remove spaces
  55. // pos = string.indexOf('=');
  56. // if(pos != -1)
  57. // {
  58. // pos += 1;
  59. //// NewFilter.mLogIdentificator = string.mid(pos);
  60. // //Recherche d'une définition de filtre
  61. // if(string.contains("FILTRE"))
  62. // {
  63. // string.remove(' '); //remove spaces
  64. // QStringList Param = string.split('\"',Qt::SkipEmptyParts);
  65. // if(Param.size() >= 2)
  66. // {
  67. // CLogsFilterData NewFilter;
  68. // NewFilter.mLogIdentificator = Param.at(1);
  69. // QString delimiter = ConfigFile->readLine(1024); //doit être '{'
  70. // if(delimiter.isEmpty())
  71. // {
  72. // //fin du fichier!!
  73. // finished = true;
  74. // break;
  75. // }
  76. // else
  77. // {
  78. //// delimiter.
  79. //// if(delimiter == "{")
  80. //// {
  81. //// }
  82. // }
  83. // }
  84. // }
  85. // }
  86. // }
  87. // }
  88. }
  89. int CLogsSorterConfig::SetNewConfig(CLogsSorterConfigData NewConfig)
  90. {
  91. mLogsSorterConfig = NewConfig;
  92. SaveConfigToFile(".\\Config.bin");
  93. return RET_OK;
  94. }
  95. int CLogsSorterConfig::SaveConfigToFile(QString ConfigFileName)
  96. {
  97. QFile *ConfigFile = new QFile(ConfigFileName);
  98. if (!ConfigFile->open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Unbuffered))
  99. {
  100. delete ConfigFile;
  101. return RET_GENERAL_ERROR;
  102. }
  103. QDataStream * OutputStream = new QDataStream(ConfigFile);
  104. quint32 MagicNbr = 0xBAADCAFE;
  105. quint32 FileVersion = 1;
  106. *OutputStream << MagicNbr;
  107. *OutputStream << FileVersion;
  108. *OutputStream << mLogsSorterConfig;
  109. ConfigFile->close();
  110. delete ConfigFile;
  111. delete OutputStream;
  112. mProgramHandle->AddGeneralMsgTextRequest("Configuration des filtres sauvée avec succès");
  113. }