Я пытаюсь написать класс, который импортирует файлы * .vcf (Vcard), потому что я не нашел подходящий класс .net для решения этой задачи.
Поэтому я решил обработать * .vcfфайл как файл * .txt.Я просто импортирую весь файл построчно с помощью StreamReader.Наконец, я сохраняю строку в объекте List.
Код:
private List<string> vcardList = new List<String>();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
using (StreamReader reader = new StreamReader(@"H:\VS.vcf"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
vcardList.Add(line);
}
}
}
После импорта текста мне нужно было отредактировать строки, потому что мне нужно удалить все ненужные символы.Я попытался использовать RedEx claa:
private void button1_Click(object sender, EventArgs e)
{
vcardList[0] = Regex.Replace(vcardList[0], "BEGIN:", string.Empty);
}
, который работает очень хорошо, для первой строки!но файл * .vcf очень сложный и всегда другой.
Итак, мой вопрос: есть ли лучший способ решить эту проблему?
Это файл * .vcf:
BEGIN:VCARD
VERSION:2.1
N;LANGUAGE=de;CHARSET=Windows-1252:Test;Mustermann;;;(geschäftlich)
FN;CHARSET=Windows-1252:Test Mustermann (geschäftlich)
ORG:Mustermann CompanyTITLE;CHARSET=Windows-1252:CEO
TEL;WORK;VOICE:0049 1111 22 769 23 - 1
TEL;CELL;VOICE:0049 2222 33 71 55 90
ADR;WORK;PREF;CHARSET=Windows-1252:;;Frobuehl 22;Gothtown;;101092;England
LABEL;WORK;PREF;CHARSET=Windows-1252;ENCODING=QUOTED-PRINTABLE:Leihb=FChl 21=0D=0A=
101092 Frobuehl
X-MS-OL-DEFAULT-POSTAL-ADDRESS:2
URL;HOME:www.Test-Mustermann.de
EMAIL;PREF;INTERNET:Test@Test-Mustermann.de
X-MS-OL-DESIGN;CHARSET=utf-8:<card
END:VCARD
Мне нужны только имя и адрес.Заранее спасибо