Проверка IBAN

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
Запись опубликована Python

Дублирование записи в 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()

Скачать архив из сети и извлечь файлы

    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 →

Запись опубликована ЭСЧФ