Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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