Verarbeitung (Import / Export) von vCard Textdateien
Mit diesem Beispiel möchten wir den Import sowie den Export von vCard (Adressen) Version 2.1 Dateien veranschaulichen. vCards sind so genannte elektronische Visitenkarten die z.B. aus Emailprogrammen exportiert bzw. importiert werden können. Die Verarbeitung solcher Textdateien stellt sich ohne den FlowHeater meistens als schwierig dar.
Alle Beispiele sind als fertige Definition Bestandteil des FlowHeaters und können direkt über den Designer geöffnet werden!
Das Format von vCards ist Zeilenbasierend, d.h. jeder Wert wird in einer separate Zeile (oder auch mehreren) gespeichert. Ein vCard Datensatz wird mit dem Schlüsselwort BEGIN:VCARD eingeleitet und endet mit dem Schlüsselwort END:VCARD. Alle Informationen zwischen diesen beiden Schlüsselwörtern gehören zu einem Datensatz.
Lesen (Importieren) von vCard Dateien
Das Lesen bzw. Importieren von vCard Dateien ist mit Hilfe des FlowHeater TextFile Adapters relativ leicht. Wenn Sie eine vCard (.vcf) Datei auf der READ Seite auswählen setzt der TextFile Adapter Standardmäßig die richtigen Optionen.
Standard Optionen für den vCard Import
- Reiter Allgemein: Abgrenzung wird auf „Zeilenbasierend“ gestellt
- Reiter Zeilenbasierende Optionen: „Jede Zeile enthält Feldnamen“ wird aktiviert
- Reiter Zeilenbasierende Optionen: Das „Feld / Inhalt Trennzeichen“ wird mit einem Doppelpunkt vorbelegt
- Reiter Zeilenbasierende Optionen: Satz Erkennung wird auf „Start/Ende Kennung“ gestellt
- Reiter Zeilenbasierende Optionen: Satz beginnt mit wird mit „BEGIN:VCARD“ vorbelegt
- Reiter Zeilenbasierende Optionen: Satz endet mit wird mit „END:VCARD“ vorbelegt
- Reiter Erweitert: Option „Zeilenumbruch in Spalten erlauben“ wird aktiviert
- Reiter Erweitert: Option „Zeilenumbruch ersetzen mit“ wird aktiviert und ein Leerstring wird eingetragen.
Nach dem Auswählen der vCard Datei sehen Sie in der Voransicht die ausgelesenen Feldinformationen. Die Feldnamen enthalten die vCard Eigenschaft inkl. der evtl. vorhandenen zusätzlichen Parameter.
z.B. für Telefon TEL;WORK;VOICE
Hier ist „TEL“ die Eigenschaft für Telefon. „WORK“ und „VOICE“ sind die Parameter, die diese Eigenschaft weiter präzisieren. Der Eintrag steht dann für den telefonischen Kontakt der Arbeitsstelle.
Lesen bzw. Import von in vCard eingebetteten Bilddaten
Oft sind in vCard Dateien auch BASE64 codierte Bilddaten vorhanden, in unserem Beispiel das Feld „PHOTO;TYPE=JPEG;ENCODING=BASE64“. Wenn Sie diese z.B. in eine Bilddatei (JPEG) speichern oder in ein VARBINARY bzw. BLOB Feld einer Datenbank importieren möchten müssen diese BASE64 codierten Bildinformationen vorher decodiert werden. Für das Decodieren benötigen wir einen .NET Script Heater und folgendes kleine Skript. Den Output daraus können wir entweder über den File.
public object DoWork()
{
int count = InValues.Length;
if (count != 1)
throw new Exception("1 Eingangsparameter erwartet!");
string base64 = (string)InValues[0].GetString();
if (base64 == null)
return null;
// evtl. vorhandene Leerzeichen entfernen!
base64 = base64.Replace(" ", "");
return Convert.FromBase64String(base64);
}
Schreiben (Exportieren) von vCard Textdateien
Demnächst verfügbar