def ibanCheck(iban):
    if len(iban)!=28:
        return False
    else:
        return int("".join([x if x in "0123456789" else str(ord(x)-55) for x in iban[4:]+iban[:4]]))%97==1
                            Автор: admin
Дублирование записи в DBF (_e_writeData)
if mem.scname=="spr_cln":
    dic=mem.dbData
    if mem.editMode=="EDIT":
        updateDbf("""d:/TEMP/RST/PENTA/BASE/spr_adr.DBF""",dic,{'klient':dic['CLN']})
    else:
        dic['KLIENT']=dic['CLN']
        appendDbf("""d:/TEMP/RST/PENTA/BASE/spr_adr.DBF""",dic)
    del dic
                            Получить список дисков (обращение kernel)
def get_drives(): import string from ctypes import windll drives = [] bitmask = windll.kernel32.GetLogicalDrives() for letter in string.uppercase: if bitmask & 1: drives.append(letter) bitmask >>= 1 return drives print get_drives()
Выгрузка пакета
packprefix="_pss"
path=QFileDialog.getExistingDirectory(None, u"Выберите папку для выгрузки файла %s.sqlite" % packprefix, "\\")
if path:
    MyApp.scBrowser.saveProg("%s\\%s.sqlite" % (path, packprefix), prefix=packprefix)
                            Проверка УНП по государственному реестру плательщиков
В справочнике организаций добавлена функция проверки УНП по государственному реестру плательщиков Республики Беларусь.
Парсинг mysqldump на отдельные БД
Если размер дампа небольшой: Если файл очень большой:
Скачать архив из сети и извлечь файлы
    if not glob.glob("yoksel.exe"):
        if zzAskYN(u"Файл YOKSEL.EXE не найден! Загрузить из интернета?")==2:
            try:
                downloadFromSite("https://sourceforge.net/projects/yoksel/files/latest/download?source=files","yoksel.zip")
                zip=zipfile.ZipFile(u"yoksel.zip")
                for x in zip.namelist():
                    if x.lower()=='yoksel.exe':
                        zip.extract(x)
                zip.close()
            except:
                zzMess(u"Загрузка не удалась!!")    
                            Загрузка данных из другой БД
tmpDb=pentadb.pentaBase(name="oesf",driver="QMYSQL",database="esf_data",\
            host="srv-penta",user="username",password="userpass")
if tmpDb.db:
    transaction()
    for x in zzCursor("select * from amko_ttn",tmpDb).zzRecords(1):
        if gi("amko_ttn","uid",x['UID'],'uid')!=x['UID']:
            insert("amko_ttn",x)
        else:
            update("amko_ttn",x)
    commit()
tmpDb=None
                            Автоматическая авторизация
Добавлена возможность автоматической авторизации доступа к контейнеру личных ключей на USB-носителе. Пароль доступа вводится один раз, при первом после запуска программы обращении к к контейнеру. В дальнейшем нужно только подтверждать Continue Reading →