我正在建立一个网站,其中一个要求是用户从他们的电子邮件客户端导出他们的联系人以将其导入网站.
因为每个电子邮件客户端以稍微不同的格式导出他们的联系人,所以我的头脑不得不以最好的方式来接近它.因为我不知道这些字段是什么,或者分隔符是什么.
我只想找到主要的电子邮件客户端/地址簿(outlook,apple mail,entourage,thunderbird).所有这些都有完全不同的格式.Entourage使用tab作为分隔符,其余的使用逗号等.我只需要拔出电子邮件地址和(如果可用)名称.名称变得棘手,因为一些客户端具有名字/姓氏的单独字段.
使用FileHelper是理想的,但在我可以连接解决方案之前,我似乎需要知道csv的结构.如果可能的话,我宁愿不去编写我自己的csv解析器.
这是我对集体蜂巢思想的看法:
....使用/购买已经执行此操作的现有组件?!(我肯定找不到一个!)
思考?
我会选择B计划(我不同意它是笨重的).
恕我直言,最好的方法是询问用户他/她需要从哪个电子邮件客户端导出.因此,您可以识别分隔符.你自己发现虽然不同的客户端使用不同的分隔符,但是单个客户端总是使用相同的分隔符(除非他们决定引出一个非向后兼容的版本)因此,创建一个面向对象的类应该不难接受分隔符作为参数,并相应地解析输入(逻辑应保持几乎相同,无论分隔符如何).
即使解析每种类型的导出文件的逻辑显着不同,似乎您可以创建一个抽象基类,其中包含所有常用功能和派生类,它们只是覆盖客户端特定的功能.
即使您使用FileHelpers等自定义库,您也应该能够通过传递分隔符的类型来完成它.
我觉得你不应该依赖可能的分隔符的相对计数来识别实际的分隔符是什么(如在计划A中).
编辑:刚想到的另一个选择是提供一种像MS Excel那样的选项界面.您可以选择分隔符,并根据选择实时预览数据的解析方式.
| 归档时间: |
|
| 查看次数: |
6974 次 |
| 最近记录: |