【发布时间】:2014-03-04 21:41:24
【问题描述】:
我设法使用LumiSoft 创建了一个 vCard,然后获取它的字符串值
LumiSoft.Net.Mime.vCard.vCard card = new vCard();
Stream stream = new MemoryStream();
card.ToStream(stream);
stream.Position = 0;
StreamReader reader = new StreamReader(stream);
return reader.ReadToEnd();
以下是返回字符串的示例:
开始:VCARD 版本:3.0 UID:f1a6090d-ee73-4368-8fe6-26302fb3e97a N: 姓;名;;; TEL;CELL:0099912123456 EMAIL:Rey@company.com END:VCARD
这是在多平台(移动和桌面)上共享联系信息的标准字符串格式,我无法真正更改发送/接收 vCard 字符串信息的格式。 发送成功(在移动设备上,它成功将此字符串解析为vcf卡),问题是在桌面上解析接收到的字符串(与发送的字符串完全相同)...
我尝试将接收到的字符串写入流然后解析它:
LumiSoft.Net.Mime.vCard.vCard card = new vCard();
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(cardString);
writer.Flush();
stream.Position = 0;
card.Parse(stream);
失败了。然后为了看看发生了什么,我尝试将我得到的字符串写入本地 vcf 文件并打开它,
File.WriteAllText(@"C:\Users\user\Desktop\test.vcf", cardString);
即使我交叉检查了 2 个字符串(发送和接收)并且它们 100% 相同,这也失败了。 (可能缺少标题?)
关于如何解析这个字符串(如上所述)以检索其信息(姓名、电子邮件、照片......)的任何帮助?我注意到一些 SO 帖子提到使用正则表达式来实现这一点,但我希望使用一个库来代替,它不必使用 LumiSoft。提前致谢。
【问题讨论】:
标签: c# winforms parsing vcf-vcard