Andrei999
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору tavria2 спасибо что откликнулся За основу я взял проек с со 2 части страница 58 и 59 В это проект я забросил класификацию дефектов которые разделены на групы и подгруппы. С этим я разобрался А вот в трее у меня подрупы дефектов. Когда я выбираю дефекту (Нажимая на Tree1) у меня на странице происходит описание причины появления и т.д. в разных Paragraph. А в ComboBox1 у меня должен быть список аппаратов которые эти дефекты выявляют. Когда я вибираю аппарат должно в Paragraph выходить описание параметров этого дефекта. Это код который на TREE -- устанавливаем картинку выбора на ноду Tree.SetNode("Tree1", e_NodeIndex, {SelectedImageIndex = 0}); -- таблица данных выбранной ноды local tNodeProps = Tree.GetNode("Tree1", e_NodeIndex); if (tNodeProps) then -- текущая запись в базе данных nItem = tNodeProps.Data; -- отображаем имя программы sPrgName = XML.GetValue("database/item:"..nItem.."/name"); if (bClickSearch) then Paragraph.SetText("Prg_Name", XML.GetValue("database/item:"..nItem.."/razdel").."\\"..sPrgName); else Paragraph.SetText("Prg_Name", sPrgName); end -- путь к папке с программой sPrgFolder = sPath_SoftFolder.."\\"..XML.GetValue("database/item:"..nItem.."/razdel").."\\"..sPrgName; --================== Вказівкі з єксплуатациї ==================-- -- описание проги Paragraph.SetText("Prg_Desc", XML.GetValue("database/item:"..nItem.."/desc")); --================== Описанием название дефекта==================-- -- описание проги Paragraph.SetText("Prg_ND", XML.GetValue("database/item:"..nItem.."/nd")); --================== Описанием название дефекта==================-- -- описание проги --Paragraph.SetText("Prg_DEF", XML.GetValue("database/item:"..nItem.."/df")); Paragraph.SetText("Prg_RDM1", XML.GetValue("database/item:"..nItem.."/rdm_1")); Paragraph.SetText("Prg_POZ", XML.GetValue("database/item:"..nItem.."/poz")); --==================Действия с Инстоллятором==================-- -- путь к инстоллятору sPathFile = sPrgFolder.."\\"..XML.GetValue("database/item:"..nItem.."/file"); end А это код который формирует db.xml он стоит у меня на Button_1 -- Функция возвращает имя папки из пути к ней FolderEx={}; function FolderEx.GetName(sPath) if (String.Right(sPath, 1) == "\\") then sPath = String.Left(sPath, String.Length(sPath) - 1); end local nInd = String.ReverseFind(sPath, "\\", false); if (nInd ~= -1) then sName = String.Right(sPath, String.Length(sPath) - nInd); else sName = sPath; end return sName; end -- описание программы способы выявления function GetFileSize(sPath) -- ищем файлы а папке с программой по маске local tPaths_SizeFile = File.Find(sPath, "sv.*", false, false, nil); -- если нашли if (tPaths_SizeFile) then -- считываем содержимое первого файла в таблице в строку sSize = TextFile.ReadToString(tPaths_SizeFile[1]); -- если не нашли else -- произвольное сообщение sSize = "Описание к данной программе отсутствует."; end -- возвращаем описание к программе return sSize; end -------------------------------------------------------------------------------------------------------------------- -- описание программы указания поэксплуатации function GetDescription(sPath) -- ищем файлы а папке с программой по маске local tPaths_DescFile = File.Find(sPath, "readme.*", false, false, nil); -- если нашли if (tPaths_DescFile) then -- считываем содержимое первого файла в таблице в строку sDesc = TextFile.ReadToString(tPaths_DescFile[1]); -- если не нашли else -- произвольное сообщение sDesc = "Описание к данной программе отсутствует."; end -- возвращаем описание к программе return sDesc; end -------------------------------------------------------------------------------------------------------------------------- -- описание программы причины появления и развития function GetUrl(sPath) -- ищем файлы а папке с программой по маске local tPaths_UrlFile = File.Find(sPath, "ppr.*", false, false, nil); -- если нашли if (tPaths_UrlFile) then -- считываем содержимое первого файла в таблице в строку sUrl = TextFile.ReadToString(tPaths_UrlFile[1]); -- если не нашли else -- произвольное сообщение sUrl = "Описание к данной программе отсутствует."; end -- возвращаем описание к программе return sUrl; end -------------------------------------------------------------------------------------------------------------------------- -- описание программы способы выявления function GetND(sPath) -- ищем файлы а папке с программой по маске local tPaths_NDFile = File.Find(sPath, "nd.*", false, false, nil); -- если нашли if (tPaths_NDFile) then -- считываем содержимое первого файла в таблице в строку sND = TextFile.ReadToString(tPaths_NDFile[1]); -- если не нашли else -- произвольное сообщение sND = "Описание к данной программе отсутствует."; end -- возвращаем описание к программе return sND; end ----------------------------------------------------------------------------------------------------------------------- -- описание программы способы выявления function GetPOZ(sPath) -- ищем файлы а папке с программой по маске local tPaths_POZFile = File.Find(sPath, "poz.*", false, false, nil); -- если нашли if (tPaths_POZFile) then -- считываем содержимое первого файла в таблице в строку sPOZ = TextFile.ReadToString(tPaths_POZFile[1]); -- если не нашли else -- произвольное сообщение sPOZ = "Описание к данной программе отсутствует."; end -- возвращаем описание к программе return sPOZ; end -- Возвращает имя скриншота программы function GetImage(sPath) local sFullImg = ""; local tMasks = {"*.png", "*.jpg", "*.bmp", "*.gif", "*.tga", "*.tiff"}; for n, cMask in tMasks do local tFullPaths = File.Find(sPath, cMask, false, false, nil, nil); if (tFullPaths) then sFullImg = tFullPaths[1]; end end return String.SplitPath(sFullImg).Filename..String.SplitPath(sFullImg).Extension; end -- создание БД sFolderPath = Dialog.FolderBrowse("Please select a folder:", "C:\\"); if (sFolderPath ~= "CANEL") and (sFolderPath ~= "") then local sXMLDB = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>\r\n<database>\r\n"; tRazdelNames = Folder.Find(sFolderPath.."\\", "*", false, nil); if (tRazdelNames) then for n, cRazdelName in tRazdelNames do tProgramNames = Folder.Find(cRazdelName.."\\", "*", false, nil); if (tProgramNames) then for n, cProgramName in tProgramNames do sXMLDB = sXMLDB.."<item><name>"..FolderEx.GetName(cProgramName).."</name>"; ---------------------------------------------------------- sPrgND=GetND(cProgramName); sXMLDB = sXMLDB.."<nd>"..sPrgND.."</nd>"; ------------------------------------------------------------------------- sPrgPOZ=GetPOZ(cProgramName); sXMLDB = sXMLDB.."<poz>"..sPrgPOZ.."</poz>"; ------------------------------------------------------------------------- -- sPrgDEF=GetDEF(cProgramName); -- sXMLDB = sXMLDB.."<df>"..sPrgDEF.."</df>"; ------------------------------------------------------------------------- --rdm 1 sPrgRDM1=GetRDM1(cProgramName); sXMLDB = sXMLDB.."<rdm_1>"..sPrgRDM1.."</rdm_1>"; ------------------------------------------------------------------------- --rdm 1m sPrgRDM1M=GetRDM1M(cProgramName); sXMLDB = sXMLDB.."<rdm_1m>"..sPrgRDM1M.."</rdm_1m>"; ------------------------------------------------------------------------- --rdm 2 sPrgRDM2=GetRDM2(cProgramName); sXMLDB = sXMLDB.."<rdm_2>"..sPrgRDM2.."</rdm_2>"; ------------------------------------------------------------------------- --sProgramSize = GetFileSize(cProgramName.."\\"..sProgramFile); sProgramSize = GetFileSize(cProgramName); sXMLDB = sXMLDB.."<size>"..sProgramSize.."</size>"; ---------------------------------------------------------- sProgramDesc = GetDescription(cProgramName); sXMLDB = sXMLDB.."<desc>"..sProgramDesc.."</desc>"; ---------------------------------------------------------- sPrgURL = GetUrl(cProgramName); sXMLDB = sXMLDB.."<url>"..sPrgURL.."</url>"; ---------------------------------------------------------- sPrgImg = GetImage(cProgramName); sXMLDB = sXMLDB.."<img>"..sPrgImg.."</img>"; ---------------------------------------------------------- -- sXMLDB = sXMLDB.."<file>"..GetInstallFile(cProgramName).."</file>"; ---------------------------------------------------------- -- sXMLDB = sXMLDB.."<rus>"..GetRusFile(cProgramName).."</rus>"; ---------------------------------------------------------- -- sXMLDB = sXMLDB.."<crack>"..GetCrackFile(cProgramName).."</crack>"; ---------------------------------------------------------- sXMLDB = sXMLDB.."<razdel>"..FolderEx.GetName(cRazdelName).."</razdel></item>\r\n\r\n"; end end end sXMLDB = sXMLDB.."</database>"; end XML.SetXML(sXMLDB); -- непошифрованная БД XML.Save("AutoPlay\\Docs\\db.xml"); -- sEncDB = Crypto.BlowfishEncryptString(sXMLDB, "ru-board", 0); -- TextFile.WriteFromString("C:\\db.xml", sEncDB, false); end |