def checkIniFile(self, textIni): """Проверка на правильность формата файла""" if self.checkIni == None: # Ошибка if textIni == False: self.checkIni = False return False self.checkIni = "samba" # В файле есть данные if not self.isEmptyFile(textIni): try: objIni = cl_profile.plasma(textIni) except: self.setError(_("Incorrect format file") + ": " + \ self.iniFile) self.checkIni = False return self.checkIni allAreas = objIni.docObj.getAllAreas() for xmlArea in allAreas: parentNode = xmlArea.parentNode if parentNode and parentNode.tagName == "area": self.checkIni = "plasma" break if self.checkIni == "samba": objIni = cl_profile.samba(textIni) xmlBody = objIni.docObj.getNodeBody() if not xmlBody.firstChild: self.checkIni = False return self.checkIni
def getAllSectionNames(self): """Получаем все имена секций определенных в ini файле Если формат ini файла plasma то имя секции - имена нескольких секций через запятую """ textIni = self.openIniFile() nameFomat = self.checkIniFile(textIni) if not nameFomat: return False if nameFomat == "samba": # создаем объект типа samba и записываем в него содержимое ini-файла objIni = cl_profile.samba(textIni) elif nameFomat == "plasma": # создаем объект типа plasma и записываем в него содержимое # ini-файла objIni = cl_profile.plasma(textIni) else: return [] xmlNodes = objIni.docObj.getAllAreas() # Имена секций ini файла namesSection = [] if nameFomat == "plasma": for xmlNode in xmlNodes: nSect = objIni.docObj.getNameArea(xmlNode) if nSect: namesSect = [nSect] parentNode = xmlNode.parentNode while parentNode != objIni.docObj.body: nameSect = objIni.docObj.getNameArea(parentNode) if nameSect: namesSect.append(nameSect) parentNode = parentNode.parentNode else: return [] namesSection.append(",".join(reversed(namesSect))) elif nameFomat == "samba": # получаем ноду body for xmlNode in xmlNodes: nSect = objIni.docObj.getNameArea(xmlNode) if nSect: namesSection.append(nSect) return namesSection