vcf / txt Dateien splitten [ Quellcode vorhanden aber Problem ]

  • Allgemein

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • vcf / txt Dateien splitten [ Quellcode vorhanden aber Problem ]

    Hi,

    ich war auf der Suche nach einem kleinen Tool,
    welches mir meine .vcf (Telefonbuch Dateien) aufsplitten kann,
    damit ich aus einer VCF Datei mehrere Kontakte "extrahieren" kann...

    Hintergrund Infos:
    denn wenn ich das Telefonbuch von meinem Telefonbuch per Infarot übertrage (ohne Sync. Tools) erhalte ich eine .vcf Datei mit allen Daten -
    wenn ich diese in Outlook importieren möchte wird nur der erste Eintrag gelesen :(


    Quellcode dazu habe ich gefunden:

    Quellcode

    1. ' ***************** Bitte den Path zu den VCF Dateien anpassen !!!! ****************
    2. ' Dieses Script liest alle Groupwise VCF Dateien im "VCFFolder" ein und legt gleichnahmige Unterverz.
    3. ' an und exportiert darin die einzelnen VCF Dateien
    4. Const ForReading = 1
    5. DIM VCSFile , objNewVCSFile
    6. Dim Line , NewFile, path
    7. Dim fso1, f, f1, fc, s
    8. DIM OK , MSGpath
    9. OK=False
    10. Zaehler=0
    11. '______________________________
    12. VCFFolder="d:\temp\"
    13. '________________________________
    14. Set fso1 = CreateObject("Scripting.FileSystemObject")
    15. Set f = fso1.GetFolder(VCFFolder)
    16. Set fc = f.Files
    17. For Each f1 in fc
    18. If instr(lcase(f1.name),".vcf") then
    19. Filename=f1.name
    20. Start
    21. end if
    22. Next
    23. If OK=True then
    24. call MsgBox("Die *.VCF Dateien liegen in den Verzeichnissen : "+ chr(13) + Left(MSGpath,LEN(MSGPATH)-5) + chr(13) + "und können mit Outlook importiert werden",65,"Mitteilung")
    25. end if
    26. Sub start()
    27. path=Left(Filename,Len(Filename)-4)
    28. VCSFile = VCSArray()
    29. Set Verz = CreateObject("Scripting.FileSystemObject")
    30. If Not Verz.FolderExists(vcffolder+Path) then
    31. Set ts = Verz.CreateFolder(VCFFolder+Path)
    32. MSGpath=MSGpath + Path + " und "
    33. For Each Line in VCSFile
    34. If InStr(Line,"BEGIN:VCARD") then
    35. NewFile=True
    36. Zaehler=zaehler+1
    37. Set objFSO = CreateObject("Scripting.FileSystemObject")
    38. File=vcffolder+Path+"\"+Path+CStr(zaehler)+".vcf"
    39. Set objNewVCSFile = objFSO.CreateTextFile(File, True, False)
    40. end if
    41. if InStr(Line,"END:VCARD") then
    42. NewFile=False
    43. objNewVCSFile.Writeline(line)
    44. objNewVCSFile.close
    45. end if
    46. If NewFile=True then
    47. objNewVCSFile.Writeline(line)
    48. OK=true
    49. END IF
    50. Next
    51. else
    52. call MsgBox("Das Verzeichniss : "+Path + " ist schon vorhanden. Bitte dieses vorher löschen",65,"Fehler")
    53. end if
    54. end sub
    55. Function VCSArray()
    56. Dim fso, ts, s, lines, FileArray
    57. Const ForReading = 1
    58. Set fso = CreateObject("Scripting.FileSystemObject")
    59. Set ts = fso.OpenTextFile(Filename, ForReading)
    60. s = ts.ReadAll
    61. ts.Close
    62. VCSArray=split(s, vbNewLine, -1,1)
    63. End Function
    Alles anzeigen


    leider bekomme ich es nicht ausgeführt/compiliert.

    Hat jemand nen kleinen Tip für mich oder kann mir sogar noch mehr helfen ?! :)

    Danke schonmal !
  • öhm, mal ne frage vorweg: Gesetzt der Fall, wir übersetzen die Source. Willst du dann jede einzelne der entstehenden vcf von hand in outlook importieren ? Wäre es da nicht sinnvoller, die eingelesenen Daten in ein von Outlook lesbares Format zu schreiben ?


    // den code brauchst du nicht zu kompilieren. es handelt sich um vbs code. einfach alles in eine leere textdatei kopieren, dies in meinprog.vbs umbenennen und fertig
  • Danke für die schnelle Antwort.

    Generell will ich sie war danach in Outlook importieren, aber das hätte ich ja auch über das Handy-Sync. Programm machen können...
    mir gings drum, dass wenn ich über Infarot die .vcf Datei übertrage in der alle Kontakte gespeichert sind, diese über ein kleines Script eben "splitten" kann...

    Ich hatte es schon versucht, aber aufgrund eines deaktivierten Script Host wollte er nicht - hab ihn nun aktiviert und hat geklappt :)
    Er bennent die Dateien zwar nur mit ....1.vcf, ....2.vcf, ... aber das ist nicht so wild.

    (Gibts da ne Möglichkeit, dass die Dateinamen aus Vor- und Nachname generiert werden oder ist das mit vbs nicht "so einfach" machbar ?!

    edit: hmm, zu früh gefreut ?! Wenn ich jetz in Outlook die .vcf Dateien (einzeln *g*) importieren will zeigt er mir zwar den Namen unter "Speichern unter" aber nicht im normalen Namensfeld... wobei wenn ich auf "Namen" klicke (da wo man auch den Namenszusatz, ... einstellen kann) zeigt er mir wiederum doch den Namen an ?!

    Wäre also doch ggf. an einer Outlook-konformen Lösung interessiert ;)
  • hmm, joa, also das umbennen der dateien nach dem aktuellen datensatz geht natürlich mit ein wenig fummelei ;) allerdings vertrete ich nach wie vor die ansicht, das eine einzelne datei sinnvoller ist.

    Für dein anderes Problem bräuchte ich mal eine vom Handy generierte vCard (vcf). Diese kannst du nach dem Export einfach mit einem Txteditor öffnen. Hier bei mir habe ich mal eine mit Outlook erstellt. Das sieht dann so aus:

    Quellcode

    1. BEGIN:VCARD
    2. VERSION:2.1
    3. N:Nachname;Name
    4. FN:Name Nachname
    5. ORG:Firma
    6. TITLE:Position
    7. TEL;WORK;VOICE:GeschTel
    8. TEL;HOME;VOICE:PrivTel
    9. TEL;CELL;VOICE:Mobil
    10. TEL;WORK;FAX:GeschFax
    11. ADR;WORK:;;blubstrasse;Ort;Region;plz;Deutschland
    12. LABEL;WORK;ENCODING=QUOTED-PRINTABLE:blubstrasse=0D=0AOrt, Region plz=0D=0ADeutschland
    13. URL;WORK:http://website
    14. REV:20050829T153612Z
    15. END:VCARD
    Alles anzeigen
  • Quellcode

    1. BEGIN:VCARD
    2. VERSION:2.1
    3. N:Nachname;Vorname
    4. TEL;HOME:+49123456789
    5. TEL;WORK:+49123456789
    6. EMAIL;INTERNET;PREF:[email protected]
    7. TEL;CELL:+49123456789
    8. END:VCARD


    so kommt das bei diesem alten handy raus... (es handelt sich um ein Sony Ericsson T68i)

    ich bin gerade doch schwer am überlegen ob ich nicht einfach mit diesem XTND synchronisiere... ;) (das müsste nach Aussagen in versch. Foren ohne Probleme funktionieren)