Что нового

Редактор VCF карточек

johnmarshall

Осваивающий
Сообщения
198
Репутация
38
AutoIt: 3.3.8.1
Версия: 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
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Hemul_Y [?]
В файлике вирус.
Доказательства?
Тут среагировали только самые параноидальные антивирусы. Отправляйте файл на ложное срабатывание...
 

compgeniy

Новичок
Сообщения
1
Репутация
0
Да нет тут вирусов DrWeb 8.0 ничего не нашел.
А вот всякие забугорные антивиры удаляйте, от них больше вреда чем пользы, реальные вирусы пропускают, за то реагируют даже на кейгены.
А вот vcf файлик из телефона Explay эта утилита открывать отказалась, зачем и была скачена.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
OffTopic:
compgeniy [?]
всякие забугорные антивиры удаляйте, от них больше вреда чем пользы, реальные вирусы пропускают, за то реагируют даже на кейгены
По твоему они не могут содержать вирусы? :smile:
 

polkm

Новичок
Сообщения
1
Репутация
0
скачал сие программу... Нифига не работает. С телефона Самсунг контакт открывает, часть инфы показывает и пишет ошибку. после закрытия которой, программа и закрывается.

Ничего отредактировать не получается
 
Верх