Объявление

Свернуть
Пока нет объявлений.

про "параметры CPSNXML.dll"

Свернуть
X
  • Фильтр
  • Время
  • Показать
  • Сортировать
  • Упорядочить по
Очистить всё
новые сообщения

    про "параметры CPSNXML.dll"

    ммм, все какие то скрытные - пришлось самому писать тесты с помощью проверки стороних програм через командную строку:

    void __fastcall TTestFNS_PFR::FormCreate(TObject *Sender)
    {

    // Директория для Tester
    if (FileExists(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft")){
    ConfigTestFNS->LoadFromFile(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft");
    for (int i = 0; i < ConfigTestFNS->Count; i++) {
    String s = ConfigTestFNS->Strings[i];
    bool Flag = false;
    String FNSPath;
    String FNS = (String) s[1]+(String) s[2]+(String) s[3];
    if (FNS == "FNS") {
    for (int j = 1; j < s.Length()+1; j++) {
    if (Flag == true){
    FNSPath = FNSPath+s[j];
    }
    String fs = s[j];
    if (fs == "="){
    Flag = true;
    }
    }
    if (FileExists(FNSPath+"\\tester.exe")) {
    sEdit1->Text = FNSPath;
    }
    ConfigTestFNS->SaveToFile(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft");
    ConfigTestFNS->Clear();
    }
    }
    }

    // Директория для CheckUFA
    if (FileExists(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft")){
    ConfigTestPFR->LoadFromFile(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft");
    for (int i = 0; i < ConfigTestPFR->Count; i++) {
    String s = ConfigTestPFR->Strings[i];
    bool Flag = false;
    String PFRPath;
    String PFR = (String) s[1]+(String) s[2]+(String) s[3];
    if (PFR == "PFR") {
    for (int j = 1; j < s.Length()+1; j++) {
    if (Flag == true){
    PFRPath = PFRPath+s[j];
    }
    String fs = s[j];
    if (fs == "="){
    Flag = true;
    }
    }
    if (FileExists(PFRPath+"\\Check.exe")) {
    sEdit2->Text = PFRPath;
    }
    ConfigTestPFR->SaveToFile(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft");
    ConfigTestPFR->Clear();
    }
    }
    //Создали обьект класса TRegistry
    TRegistry *reg=new TRegistry();
    reg->RootKey=HKEY_LOCAL_MACHINE;
    //Строка в которую мы занесем значение параметра из реестра Firebird
    reg->OpenKeyReadOnly("SOFTWARE\\Microsoft\\Windows\\Cu rrentVersion\\Uninstall\\FBDBServer_2_0_is1");
    FirebirdPath=reg->ReadString("InstallLocation");
    reg->CloseKey();

    delete reg;

    if (FirebirdPath< " ") {
    sStBar1->Panels->Items[0]->Text = "Не установленна программа: \"Firebird\" для \"CheckUFA\".";
    }

    }
    // Поиск директорий в Registry установленных Tester и CheckUFA
    if (!FileExists(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft")||(sEdit1->Text<=" ")||(sEdit2->Text<=" ")){
    //Создали обьект класса TRegistry
    TRegistry *reg=new TRegistry();
    reg->RootKey=HKEY_LOCAL_MACHINE;
    //Строка в которую мы занесем значение параметра из реестра Tester
    reg->OpenKeyReadOnly("SOFTWARE\\Microsoft\\Windows\\Cu rrentVersion\\Uninstall\\Tester_is1");
    AnsiString PathTester=reg->ReadString("Inno Setup: App Path");
    reg->CloseKey();

    //Строка в которую мы занесем значение параметра из реестра CheckUFA
    reg->OpenKeyReadOnly("SOFTWARE\\CheckXmlUfa");
    AnsiString PathUfa=reg->ReadString("InstallPath");
    reg->CloseKey();

    //Строка в которую мы занесем значение параметра из реестра Firebird
    reg->OpenKeyReadOnly("SOFTWARE\\Microsoft\\Windows\\Cu rrentVersion\\Uninstall\\FBDBServer_2_0_is1");
    FirebirdPath=reg->ReadString("InstallLocation");
    reg->CloseKey();

    delete reg;

    String PoNoPath;
    PoNoPath = "";

    if ((PathTester>" ")||(PathUfa>" ")||(FirebirdPath>" ")) {
    if (PathTester>" ") {
    ConfigTestFNS->Add("FNS Path="+PathTester);
    sEdit1->Text = PathTester;
    }
    else {
    PoNoPath = "\"Tester\"";
    }

    if (PathUfa>" ") {
    ConfigTestFNS->Add("PFR Path="+PathUfa);
    sEdit2->Text = PathUfa;
    }
    else {
    if (PoNoPath >" ") {
    PoNoPath = PoNoPath + ", \"CheckUFA\"";
    }
    else {
    PoNoPath = "\"CheckUFA\"";
    }
    }

    if (FirebirdPath< " ") {
    if (PoNoPath >" ") {
    PoNoPath = PoNoPath + ", \"Firebird\"";
    }
    else {
    PoNoPath = "\"Firebird\"";
    }
    }

    if (PoNoPath>" ") {
    sStBar1->Panels->Items[0]->Text = "Не установленна программа(ы): "+PoNoPath+".";
    }

    ConfigTestFNS->SaveToFile(ExtractFilePath(Application->ExeName)+"\\ConfigTest.cft");
    ConfigTestFNS->Clear();
    }
    }
    }
    //---------------------------------------------------------------------------

    void __fastcall TTestFNS_PFR::sButton2Click(TObject *Sender)
    {
    if (sListBox1->Count>0) {
    sProgressBar1->Position = 0;
    sProgressBar1->Max = sListBox1->Count;
    bool OtchPFRClear = true;
    bool OtchFNSClear = true;
    String TestCheck = "0";
    int ChetFilePFR = 0;
    String DirFile;
    sStBar1->Panels->Items[0]->Text = "";
    for (int i = 0; i < sListBox1->Count; i++) {
    String FileTest = sListBox1->Items->Strings[i];
    // тест ФНС Tester
    if ((sEdit1->Text>" ")&&(sListBox2->Items->Strings[i] == "ФНС")) {
    String DirTest = sEdit1->Text+"\\tester.exe";
    String FileTestTemp = ExtractFilePath(Application->ExeName)+"\\Temp";
    String FileT = ExtractFileName(FileTest);
    FileTestTemp = FileTestTemp+"\\FNS_TEST_"+DateToStr(Date());
    if (OtchFNSClear == true) {
    OtchFNSClear = false;
    if (!DirectoryExists(FileTestTemp)){
    MkDir(FileTestTemp);
    }
    else {
    FileListBox1->Directory = FileTestTemp;
    for (int g = 0; g < FileListBox1->Count; g++) {
    DeleteFileA(FileListBox1->Directory +"\\" + FileListBox1->Items->Strings[g]);
    }
    }
    }
    FileTestTemp = FileTestTemp+"\\"+FileT;
    CopyFileA(FileTest.c_str(), FileTestTemp.c_str(), 0);
    ShellExecute(NULL, "open", DirTest.c_str(), FileTestTemp.c_str(), NULL, SW_RESTORE);
    TestCheck = "1";
    }


    // тест ПФР CheckUFA
    if ((sEdit2->Text>" ")&&(sListBox2->Items->Strings[i] == "ПФР")&&(FirebirdPath > " ")) {
    String DirTest = sEdit2->Text+"\\Check.exe";
    ChetFilePFR = ChetFilePFR+1;
    // для Теста (куда складывать отчеты)
    //DirFile = ExtractFilePath(FileTest)+"ОТЧЕТ_"+DateToStr(Date( ));

    String DirFile = ExtractFilePath(Application->ExeName)+"Temp\\ПФР_ОТЧЕТ_"+DateToStr(Date());
    FileTest = FileTest + " " + DirFile + "\\";
    if (OtchPFRClear == true) {
    if (DirectoryExists(DirFile)) {
    FileListBox1->Directory = DirFile;
    if (FileListBox1->Count>0) {
    for (int j = 0; j < FileListBox1->Count; j++) {
    DeleteFileA(FileListBox1->Directory +"\\" + FileListBox1->Items->Strings[j]);
    }
    FileListBox1->Update();
    }
    }
    else {
    MkDir(DirFile);
    }
    OtchPFRClear = false;
    }
    ShellExecute(NULL, "open", DirTest.c_str(), FileTest.c_str(), NULL, SW_RESTORE);
    TestCheck = "1";
    }
    sProgressBar1->Position = i+1;
    }
    ChetFilePFR = ChetFilePFR*2;

    // показ отчетов ПФР
    if (OtchPFRClear==false) {
    int RefreshChet = 0;
    // метка для перезапуска проверки количества ожидаемых файлов
    RefreshFileList:
    FileListBox1->Update();
    if (FileListBox1->Count == ChetFilePFR) {
    String OthFile="";
    String Oth="";
    for (int f = FileListBox1->Count-1; f >= 0 ; f--) {
    OthFile = FileListBox1->Directory +"\\" +FileListBox1->Items->Strings[f];
    ShellExecute(NULL, "open",OthFile.c_str(), NULL, NULL, SW_RESTORE);
    Sleep(2000);
    }
    }
    else {
    // если не дождались ожидаемое количество отчетов, то выходим из ожидания и показываем
    // отчеты какие успели сформироваться
    if (RefreshChet>ChetFilePFR*10) {
    String OthFile2="";
    for (int f2 = FileListBox1->Count-1; f2 >= 0; f2--) {
    OthFile2 = FileListBox1->Directory +"\\" +FileListBox1->Items->Strings[f2];
    ShellExecute(NULL, "open", OthFile2.c_str(), NULL, NULL, SW_RESTORE);
    Sleep(2000);
    }
    sStBar1->Panels->Items[0]->Text = "Не все ПФР отчеты были созданы. Ожидалось="+IntToStr(ChetFilePFR*2) + ", создалось="+IntToStr(FileListBox1->Count)+".";
    goto EndFileList;
    }
    // считаем и ждем когда создадутся отчеты ПФР
    RefreshChet = RefreshChet+1;
    Sleep(2000);
    goto RefreshFileList;
    }
    }
    // метка выхода из ожидания количества файлов (если не дождались количество файлов)
    EndFileList:

    if (TestCheck == "0") {
    if (FirebirdPath< " ") {
    sStBar1->Panels->Items[0]->Text = "Не установленна программа: \"Firebird\" для \"CheckUFA\".";
    sProgressBar1->Position = 0;
    }
    else {
    sStBar1->Panels->Items[0]->Text = "Не установленны программы для тестирования.";
    sProgressBar1->Position = 0;
    }
    }
    else {
    sStBar1->Panels->Items[0]->Text = "Тестирование файла(ов) закончено.";
    }
    }
    else {
    sStBar1->Panels->Items[0]->Text = "Не выбран(ы) файл(ы) для тестирования.";
    sProgressBar1->Position = 0;
    }
    }
    //---------------------------------------------------------------------------

    #2
    написанная программа позволит проверять одновременно несколько файлов?

    Комментарий

    реклама

    Свернуть
    Обработка...
    X