Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

AHK - VCF Splitter 1.0


  • Please log in to reply
No replies to this topic
Spur
  • Members
  • 18 posts
  • Last active: Nov 27 2014 07:36 AM
  • Joined: 17 Nov 2013

pehsrhubaymh.png AHK - VCF Splitter 1.0

n7eh41uz9163.png

Aktuelle Version
VCF Splitter 1.0

Download
download.png
Mirror 1
Mirror 2

Informationen
Microsoft Outlook kann exportierte VCF Dateien aus Gmail etc. mit mehreren Datensätzen nicht importieren. Dieser kleine Helfer trennt die grosse VCF in kleine VCF Dateien, welche dann mühelos per Drag&Drop in Outlook Importiert werden können.

How to use
1. Man wählt die zu trennende VCF Datei aus
2. Wählt einen Speicherort
3. Klickt auf Splitten

4. Fertig. ;)

Quellcode

Gui, Add, GroupBox, x2 y0 w380 h120 , VCF Splitter
Gui, Add, Text, x12 y20 w260 h30 vT1, VCF Datei:
Gui, Add, Button, x272 y20 w100 h20 gB1 , Browse
Gui, Add, Text, x12 y50 w260 h30 vT2, Speicherort:
Gui, Add, Button, x272 y50 w100 h20 gB2, Browse
Gui, Add, Button, x12 y80 w100 h30 gSplitten, Splitten
Gui, Add, Button, x142 y80 w100 h30 vOpButton gOptionen, Optionen
Gui, Add, Button, x272 y80 w100 h30 gGuiClose, Beenden

Gui, Add, GroupBox, x392 y0 w320 h120 , Optionen

Gui, Add, Text, x402 y20 w50 h20 , Speichern
Gui, Add, Radio, x462 y20 w110 h20 vRBSave gRadioB, als Name
Gui, Add, Radio, x582 y20 w120 h20  vRBSave2 gRadioB, als fortlaufende Zahl

Gui, Add, Text, x402 y50 w50 h20 vTDup, Duplikate
Gui, Add, Radio, x462 y50 w110 h20 vRBDup , in separaten Ordner
Gui, Add, Radio, x582 y50 w120 h20 vRBDup2 , mit "+" kennzeichnen

Gui, Add, Button, x402 y80 w300 h30 ginfo, Info :)

Gui, Add, Progress, x12 y130 w360 h20 vMyProgress , 25

GuiControl, , RBSave,1  
GuiControl, , RBDup2,1 

Gui, Show,h125 w386, VCF Splitter
Return

GuiClose:
ExitApp

Info:
return

RadioB:
{
	gui,  submit, nohide 
	if RBSave = 0
	{
		GuiControl, disable, RBDup
		GuiControl, disable, RBDup2	
		GuiControl, disable, TDup
	}
	else 
	{
		GuiControl, enable, RBDup
		GuiControl, enable, RBDup2
		GuiControl, enable, TDup
	}
}
return

Optionen:
if ink !=
{
	stop = 1
	ink =
	return
}
if PCH =
{
	Gui, Show, h125 w721, VCF Splitter + Optionen
	PCH = Spur
	GuiControl,, OpButton, Opt. ausblenden
}
else
{
	Gui, Show,h125 w386, VCF Splitter
	PCH =
	GuiControl,, OpButton, Optionen
}
return


B1:
FileSelectFile, VCFfile , 1, %A_workingdir%, VCF Datei auswählen, *.vcf
if VCFfile =
	GuiControl,, T1, VCF Datei:
else
	GuiControl,, T1, %VCFfile%
return

B2:
FileSelectFolder, SaveAs , , , Speicherort auswählen
if SaveAs = %A_Desktop%
	msgbox,32,,Es wird nicht empfohlen, den Desktop als Speicherort zu wählen
if SaveAs =
	GuiControl,, T2, Speicherort:
else
	GuiControl,, T2, %SaveAs%
return


Splitten:
Gui, submit, nohide
if VCFfile =
{
	msgbox,48,,bitte eine VCF Datei auswählen,2
	goto B1
}

if SaveAs =
{
	msgbox,48,,bitte Speicherort auswählen,2
	goto B2
}

FileRead Qu_Inhalt, %VCFfile%

Loop, parse, Qu_Inhalt, `n, `r
{
	Az = %A_Index%
}
ink := 100 / AZ
inka := ink
Gui, Show,h155 w386, VCF Splitter

GuiControl,, OpButton, Anhalten

Null = 0
Loop, parse, Qu_Inhalt, `n, `r
{
	if stop = 1
	{
		stop = 0
		Gui, Show,h125 w386, VCF Splitter
		tooltip
		GuiControl,, OpButton, Optionen
		return
	}
	if A_LoopField = BEGIN:VCARD
		check = begin
		
	if check = begin
		inhalt = %inhalt%%A_LoopField%`n
		
	IfInString, A_LoopField, FN:
	{
		StringLen, lan, A_LoopField
		lan := lan - 3
		StringRight, Dateiname, A_LoopField, %lan%
	}
	
	if A_LoopField = END:VCARD
	{
		check = end
		
		StringReplace, Dateiname, Dateiname, <
		StringReplace, Dateiname, Dateiname, > 
		StringReplace, Dateiname, Dateiname, ? 
		StringReplace, Dateiname, Dateiname, "
		StringReplace, Dateiname, Dateiname, :
		StringReplace, Dateiname, Dateiname, |
		StringReplace, Dateiname, Dateiname, \
		StringReplace, Dateiname, Dateiname, /
		StringReplace, Dateiname, Dateiname, *
		
		if RBSave2 = 1 ;als Zahl
		{
			Null := Null+1
			FileAppend, %inhalt%, %SaveAs%\%Null%.vcf
		}
		else
		{
			if RBDup2 = 1
			{
				loop
				{
					ifexist %SaveAs%\%Dateiname%.vcf
						Dateiname = +%Dateiname%
					else
						break
				}
				FileAppend, %inhalt%, %SaveAs%\%Dateiname%.vcf
			}
			else
			{
				ifexist %SaveAs%\%Dateiname%.vcf
				{
					FileCreateDir %SaveAs%\Duplikate\
					FileAppend, %inhalt%, %SaveAs%\Duplikate\%Dateiname%.vcf
				}
				else
					FileAppend, %inhalt%, %SaveAs%\%Dateiname%.vcf
			}
		}
		tooltip %inka%`% ;%
		
		inhalt =
	}
	inka := inka + ink
	GuiControl,, MyProgress, %inka%
}
tooltip
Msgbox Fertig
Gui, Show,h125 w386, VCF Splitter
return

Changelog
-

 

Identifikation

MD5:		b22ce14ee948f565c97694e5f3fc7311
SHA1:		3b6acbc4e13238eab174a180c211e8beb2ed4a64
SHA256:		074c0a3e5d624fe27a81dbd062a9cfb510e51004a5d8bb9f21fa57a033eb5bcb
ssdeep:		12288:M9bLglSSigTPIifgpSSfvbUL2LtpRXNeZYbixBNc2nLm5YrhBn6:M9bLqrTgiopS2+2JpRXKYbipc2n1T6
File size:	912.0 KB ( 933888 bytes )
File type:	Win32 EXE

TAGS: Outlook VCF Import Gmail to Outlook contacts Google VCF Vcard