johnmarshall
Осваивающий
- Сообщения
- 198
- Репутация
- 38
AutoIt: 3.3.8.1
Версия: 3.0
Лицензия:
Категория: Автоматизация, Файловая система
Редактор VCF карточек стандарта 3.0
Создавался в основном для быстрого создания по шаблону, а потом загрузки в телефон.
Программа и исходник прилагаются.
Платформа: Windows XP/Vista/7; Linux (with Wine).
формат карточки
код программы
Файл: EXE
Снимок:
История версий:
Источник: autoit-script.ru
Автор(ы): damien2008
Версия: 3.0
Лицензия:
Категория: Автоматизация, Файловая система
Редактор VCF карточек стандарта 3.0
Создавался в основном для быстрого создания по шаблону, а потом загрузки в телефон.
Программа и исходник прилагаются.
Платформа: Windows XP/Vista/7; Linux (with Wine).
формат карточки
Код:
BEGIN:VCARD
VERSION:3.0
N;CHARSET=UTF-8;ENCODING=8BIT:Прізвище;Ім'я
ORG;CHARSET=UTF-8;ENCODING=8BIT:Організація
ADR;CHARSET=UTF-8;ENCODING=8BIT:;Адреса повністю;Вулиця;Місто;Область;Індекс;Україна
BDAY:ДнРжд ГГГГММДДT000000
FN;CHARSET=UTF-8;ENCODING=8BIT:Ім'я Прізвище
TEL;PREF;CELL;VOICE;ENCODING=8BIT:Стільниковий
TEL;HOME;VOICE;ENCODING=8BIT:Домашній
TEL;VOICE;ENCODING=8BIT:Стаціонарний
TEL;WORK;VOICE;ENCODING=8BIT:Робочий
TEL;FAX;ENCODING=8BIT:Факс
X-WV-ID;CHARSET=UTF-8;ENCODING=8BIT:wv:identifikator
EMAIL;CHARSET=UTF-8;ENCODING=8BIT:E-mail
URL;CHARSET=UTF-8;ENCODING=8BIT:URL
TITLE;CHARSET=UTF-8;ENCODING=8BIT:Професія
X-NICKNAME;CHARSET=UTF-8;ENCODING=8BIT:Нік
NOTE;ENCODING=8BIT:Примітка
END:VCARD
код программы
Код:
#cs ------------------------------------------------------------------------
Версия AutoIt: 3.3.8.1
Автор: damien2008
Описание: Редактор телефонных карточек v 3.0
#ce ------------------------------------------------------------------------
; Код программы
#AutoIt3Wrapper_Icon=Редактор телефонных карточек v 3.0.ico
#AutoIt3Wrapper_Run_Obfuscator=n
#AutoIt3Wrapper_UseUpx=n
#NoTrayIcon
#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
Global $file
Dim $ARRAY, $ArrZnach[24][2]
Dim $ArrDanny[21] = ['' , _
'BEGIN:VCARD' , _
'VERSION:3.0' , _
'N;CHARSET=UTF-8;ENCODING=8BIT:' , _
'ORG;CHARSET=UTF-8;ENCODING=8BIT:' , _
'ADR;CHARSET=UTF-8;ENCODING=8BIT:;' , _
'BDAY:' , _
'T000000' , _
'FN;CHARSET=UTF-8;ENCODING=8BIT:' , _
'TEL;PREF;CELL;VOICE;ENCODING=8BIT:' , _
'TEL;HOME;VOICE;ENCODING=8BIT:' , _
'TEL;VOICE;ENCODING=8BIT:' , _
'TEL;WORK;VOICE;ENCODING=8BIT:' , _
'TEL;FAX;ENCODING=8BIT:' , _
'X-WV-ID;CHARSET=UTF-8;ENCODING=8BIT:wv:', _
'EMAIL;CHARSET=UTF-8;ENCODING=8BIT:' , _
'URL;CHARSET=UTF-8;ENCODING=8BIT:' , _
'TITLE;CHARSET=UTF-8;ENCODING=8BIT:' , _
'X-NICKNAME;CHARSET=UTF-8;ENCODING=8BIT:', _
'NOTE;ENCODING=8BIT:' , _
'END:VCARD' ]
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate(' Редактор телефонных карточек v 3.0', 403, 288, -1, -1, -1, $WS_EX_ACCEPTFILES)
$Tab1 = GUICtrlCreateTab(8, 8, 387, 225, $TCS_FIXEDWIDTH)
$TabSheet1 = GUICtrlCreateTabItem('Основное')
$Label1 = GUICtrlCreateLabel('Фамилия', 17, 67, 142, 17)
$Label2 = GUICtrlCreateLabel('Имя', 17, 92, 142, 17)
$Label3 = GUICtrlCreateLabel('Имя Фамилия', 17, 118, 142, 17)
$Label4 = GUICtrlCreateLabel('Организация', 17, 143, 142, 17)
$Label5 = GUICtrlCreateLabel('ДнРжд РРРРММДД', 17, 169, 142, 17)
;$Label6 = GUICtrlCreateLabel('Время', 17, 194, 37, 17)
$Input1 = GUICtrlCreateInput('Фамилия', 155, 65, 161, 21)
$Input2 = GUICtrlCreateInput('Имя', 155, 90, 161, 21)
$Input3 = GUICtrlCreateInput('Имя Фамилия', 155, 116, 161, 21)
$Input4 = GUICtrlCreateInput('Организация', 155, 141, 161, 21)
$Input5 = GUICtrlCreateInput('ДнРжд ГГГГММДД', 155, 167, 161, 21)
;$Input6 = GUICtrlCreateInput('Время', 155, 192, 161, 21)
$TabSheet2 = GUICtrlCreateTabItem('Адрес')
$Label7 = GUICtrlCreateLabel('Адрес полностью', 17, 67, 142, 17)
$Label8 = GUICtrlCreateLabel('Улица', 17, 92, 142, 17)
$Label9 = GUICtrlCreateLabel('Город', 17, 118, 142, 17)
$Label10 = GUICtrlCreateLabel('Область', 17, 143, 142, 17)
$Label11 = GUICtrlCreateLabel('Индекс', 17, 169, 142, 17)
$Label12 = GUICtrlCreateLabel('Страна', 17, 194, 142, 17)
$Input7 = GUICtrlCreateInput('Адрес полностью', 155, 65, 161, 21)
$Input8 = GUICtrlCreateInput('Улица', 155, 90, 161, 21)
$Input9 = GUICtrlCreateInput('Город', 155, 116, 161, 21)
$Input10 = GUICtrlCreateInput('Область', 155, 141, 161, 21)
$Input11 = GUICtrlCreateInput('Индекс', 155, 167, 161, 21)
$Input12 = GUICtrlCreateInput('Украина', 155, 192, 161, 21)
$TabSheet3 = GUICtrlCreateTabItem('Телефон')
$Label13 = GUICtrlCreateLabel('Мобильный', 17, 67, 142, 17)
$Label14 = GUICtrlCreateLabel('Домашний', 17, 92, 142, 17)
$Label15 = GUICtrlCreateLabel('Стационарный', 17, 118, 142, 17)
$Label16 = GUICtrlCreateLabel('Рабочий', 17, 143, 142, 17)
$Label17 = GUICtrlCreateLabel('Факс', 17, 169, 142, 17)
$Input13 = GUICtrlCreateInput('Мобильный', 155, 65, 161, 21)
$Input14 = GUICtrlCreateInput('Домашний', 155, 90, 161, 21)
$Input15 = GUICtrlCreateInput('Стационарный', 155, 116, 161, 21)
$Input16 = GUICtrlCreateInput('Рабочий', 155, 141, 161, 21)
$Input17 = GUICtrlCreateInput('Факс', 155, 167, 161, 21)
$TabSheet4 = GUICtrlCreateTabItem('Дополнительно')
$Label18 = GUICtrlCreateLabel('Идентификатор', 17, 67, 142, 17)
$Label19 = GUICtrlCreateLabel('E-mail', 17, 92, 142, 17)
$Label20 = GUICtrlCreateLabel('URL', 17, 118, 142, 17)
$Label21 = GUICtrlCreateLabel('Профессия', 17, 143, 142, 17)
$Label22 = GUICtrlCreateLabel('Ник', 17, 169, 142, 17)
$Label23 = GUICtrlCreateLabel('Примечание', 17, 194, 142, 17)
$Input18 = GUICtrlCreateInput('identifikator', 155, 65, 161, 21)
$Input19 = GUICtrlCreateInput('E-mail', 155, 90, 161, 21)
$Input20 = GUICtrlCreateInput('URL', 155, 116, 161, 21)
$Input21 = GUICtrlCreateInput('Профессия', 155, 141, 161, 21)
$Input22 = GUICtrlCreateInput('Ник', 155, 167, 161, 21)
$Input23 = GUICtrlCreateInput('Примечание', 155, 192, 161, 21)
GUICtrlCreateTabItem('')
$Label24 = GUICtrlCreateLabel('Перетащите сюда карточку', 17, 38, 318, 185) ;, $WS_BORDER)
GUICtrlSetState(-1, $GUI_DISABLE + $GUI_DROPACCEPTED)
GUICtrlSetBkColor (-1, $GUI_BKCOLOR_TRANSPARENT)
$Button1 = GUICtrlCreateButton('Выбрать', 8, 248, 75, 25)
$Button2 = GUICtrlCreateButton('Очистить', 96, 248, 75, 25)
$Button3 = GUICtrlCreateButton('Сохранить', 184, 248, 75, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_DROPPED
$file = @GUI_DragFile
_open($file)
Case $Button1
$file = FileOpenDialog('Выбор карточки', @ScriptDir & '\', 'Телефонные карточки (*.vcf)', 1 + 4)
_open($file)
Case $Button2
_clear()
Case $Button3
_save()
EndSwitch
WEnd
Func _open($file)
Local $varArr
$namefiles = StringRegExp($file, '(^.*)\\(.*)$', 3)
If @error Then
MsgBox(4096, '', 'Пожалуйста, выберите карточку!')
Else
GUICtrlSetData($Label24, $namefiles[1])
$ARRAY = StringSplit(FileRead($file), @LF)
$tmp1 = StringRegExp($ARRAY[3], ':(.*);(.*)$', 3);<--фамилия ;имя
If IsArray($tmp1) Then
GUICtrlSetData($Input1, $tmp1[0])
GUICtrlSetData($Input2, $tmp1[1])
EndIf
$tmp2 = StringRegExp($ARRAY[4], ':(.*)$', 3);<--организация
If IsArray($tmp2) Then
GUICtrlSetData($Input4, $tmp2[0])
EndIf
$tmp3 = StringSplit(StringRegExpReplace($ARRAY[5], '.*:;(.*)', '$1'), ';');<--адрес полностью
If IsArray($tmp3) Then
For $ia = 1 To UBound($tmp3) - 1
GUICtrlSetData(Execute('$Input' & 6 + $ia), $tmp3[$ia])
Next
EndIf
$tmp4 = StringRegExp($ARRAY[6], ':(.*)\T.*$', 3);<---------день рождения
If IsArray($tmp4) Then GUICtrlSetData($Input5, $tmp4[0])
$tmp5 = StringRegExp($ARRAY[7], ':(.*)$', 3);<-------------имя фамилия
If IsArray($tmp5) Then GUICtrlSetData($Input3, $tmp5[0])
For $i = 6 To 16
$varArr = Execute('$tmp' & $i)
$varArr = StringRegExp($ARRAY[$i+2], '.*:(.*)$', 3)
If IsArray($varArr) Then GUICtrlSetData(Execute('$Input' & 7 + $i), $varArr[0])
Next
;6 мобильный
;7 домашний
;8 стационарный
;9 рабочий
;10 факс
;11 идентификатор
;12 e-mail
;13 http
;14 профессия
;15 ник
;16 примечание
EndIf
EndFunc ;==>_open
Func _clear()
For $i = 1 To 23
GUICtrlSetData(Execute('$Input' & $i), '')
Next
GUICtrlSetData($Label24, 'Перетащите сюда карточку')
EndFunc ;==>_clear
Func _save()
For $i = 1 To 23
$ArrZnach[$i][0] = '$Input' & $i
$ArrZnach[$i][1] = GUICtrlRead(Execute($ArrZnach[$i][0]))
Next
Local $hFile = FileOpen(@ScriptDir & '\' & $ArrZnach[2][1] & ' ' & $ArrZnach[1][1] & '.vcf', 256 + 2)
If @error Then MsgBox(4096, '', 'Ошибка создания карточки!')
FileWrite($hFile, _
$ArrDanny[1] & @CRLF & _
$ArrDanny[2] & @CRLF & _
$ArrDanny[3] & $ArrZnach[1][1] & ';' & _
$ArrZnach[2][1] & @CRLF & _
$ArrDanny[4] & $ArrZnach[4][1] & @CRLF & _
$ArrDanny[5] & $ArrZnach[7][1] & ';' & _
$ArrZnach[8][1] & ';' & _
$ArrZnach[9][1] & ';' & _
$ArrZnach[10][1] & ';' & _
$ArrZnach[11][1] & ';' & _
$ArrZnach[12][1] & @CRLF & _
$ArrDanny[6] & $ArrZnach[5][1] & _
$ArrDanny[7] & @CRLF & _ ;& $sZnach6 & _
$ArrDanny[8] & $ArrZnach[3][1] & @CRLF & _
$ArrDanny[9] & $ArrZnach[13][1] & @CRLF & _
$ArrDanny[10] & $ArrZnach[14][1] & @CRLF & _
$ArrDanny[11] & $ArrZnach[15][1] & @CRLF & _
$ArrDanny[12] & $ArrZnach[16][1] & @CRLF & _
$ArrDanny[13] & $ArrZnach[17][1] & @CRLF & _
$ArrDanny[14] & $ArrZnach[18][1] & @CRLF & _
$ArrDanny[15] & $ArrZnach[19][1] & @CRLF & _
$ArrDanny[16] & $ArrZnach[20][1] & @CRLF & _
$ArrDanny[17] & $ArrZnach[21][1] & @CRLF & _
$ArrDanny[18] & $ArrZnach[22][1] & @CRLF & _
$ArrDanny[19] & $ArrZnach[23][1] & @CRLF & _
$ArrDanny[20])
FileClose($hFile)
EndFunc ;==>_save
Файл: EXE
Снимок:
История версий:
Немного поправил код.
Теперь доступен и исходный код.
Теперь доступен и исходный код.
Источник: autoit-script.ru
Автор(ы): damien2008