前几天我朋友诺基亚的手机屏坏了,不知道送到哪去修了,反正还没修好,但是把联系人信息弄回来了,一个文件家,全部是vcf格式的文件,一个一个的。想把这些联系人存到一个暂时用的手机里。杯具的事情发生了,不知道怎么弄。
当然我也不知道怎么弄,最后我说那要不把这些号码在一张纸上打印出来吧,凑活着用用。
那我们身为程序员,肯定弄一个程序解决了,自己手动操作不要太痛苦哦。
代码很短,写加调试加结果,十分钟搞定收工。
代码附上:
<pre>
<h1>遍历vcf文件获取电话号码</h1>
<?php
file_put_contents('log.txt','');
if($handle = opendir('abc')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_file('./abc/'.$file)){
$poa = substr($file,0,(strrpos($file,'.')));
$s = file_get_contents('./abc/'.$file);
preg_match_all("|CELL:(\+)?(\d+)|",$s,$o);
preg_match_all("|HOME:(\+)?(\d+)|",$s,$oo);
$str = "姓名:".sprintf("%-30s",$poa)." 号码:{$o[0][0]} {$oo[0][0]}"."\r\n";
file_put_contents('log.txt',$str,FILE_APPEND);
}
}
}
closedir($handle);
}
?>
</pre>
当然,快餐做的,代码还是有些缺陷的,但是针对当前问题还是完美解决的!
PS:
我想如果一个人有四个号码,该怎么样提取。却发现这么一个情况
TEL;WORK;VOICE:123123
TEL;CELL:13771106535
不同软件存储的vcf文件的电话前缀是不一样的,所以需要各位根据实际的情况处理了。
改这里你会获得你要的结果。
preg_match_all("|CELL:
(\+)?(\d+)|",$s,$o);
preg_match_all("|HOME:
(\+)?(\d+)|",$s,$oo);
分享到:
相关推荐
VCF(vCard)文件是一种标准格式,用于存储个人的联系信息,如姓名、电话号码、电子邮件地址等。这种格式被广泛支持,使得用户能够轻松地在不同设备之间转移或共享联系人数据。本教程将详细介绍如何将所有手机联系人...
在导出联系人时,通常会使用ContentResolver的query()方法来获取联系人数据,然后遍历查询结果,将每个联系人的信息转换为vCard格式。 “android-vcard”是Android的一个库,专门用于处理vCard格式的数据。它提供了...
一个VCF文件通常以`BEGIN:VCARD`开头,以`END:VCARD`结尾,中间包含多个字段,如`FN`(全名)、`EMAIL`(电子邮箱)、`TEL`(电话号码)等。每个字段都遵循`FIELD:VALUE`的格式,并可能有多个值。 现在,让我们来看...
2. **简洁的API**:`cyvcf2`提供了一套直观的Python接口,用户可以通过几行代码就能完成VCF文件的读取、遍历和提取特定信息。 3. **丰富的功能**:除了基本的读取和访问VCF记录,`cyvcf2`还支持创建新的VCF文件,...
VCard文件以`.vcf`为扩展名,其内容包括姓名、电话号码、电子邮件地址等联系人信息。解析VCard可以使用Android提供的`VCardParser`类,通过这个类,我们可以读取VCard文件并将其转换为`Contact`对象。 接下来,我们...
开发者可以创建一个VCF文件,每条联系人信息对应一个记录,包含字段如FN(全名)、TEL(电话号码)和EMAIL(电子邮件地址)等。 压缩文件"wd.zip"可能是导出的通讯录文件,通过ZIP格式打包,以减小文件大小,方便...
可以通过Intent ACTION_VIEW来启动导入过程,例如,提供VCF文件的URI路径: ```java Uri uri = Uri.parse("file:///sdcard/Contacts.vcf"); Intent i = new Intent(Intent.ACTION_VIEW, uri); i.setType("text/...
查询到联系人数据后,通常需要遍历`Cursor`对象,解析每一条联系人的姓名、电话号码、邮箱等信息。这涉及到对`Cursor`对象的操作,包括`moveToNext()`、`getString()`等方法。 4. **数据存储与导出**: 导出联系...
点击按钮“导入通讯录”后,通常会启动一个`Intent`来选择文件,如通过`ACTION_GET_CONTENT`获取CSV或VCF格式的联系人文件。读取这些文件后,解析出联系人信息并按照上述步骤保存。 10. **错误处理**: 在整个...
接下来,可以遍历工作表、行和单元格,获取数据。 5. **性能比较** POI相对于jxl库的主要优势在于其性能。由于jxl采用流式处理,对大型文件的处理能力有限。而POI支持内存映射模型,允许更有效地处理大量数据。...
htslib库是一个功能强大且广泛使用的库,用于处理SAM、BAM、CRAM和VCF文件。下面是一个使用htslib库读入和写出bam文件的C++实例代码。 htslib库简介 htslib库是一个samtools和bcftools的核心库,提供了读取、写入...
这通常会使用JDBC(Java Database Connectivity)API,包括加载驱动、建立连接、创建Statement或PreparedStatement对象,以及遍历ResultSet。 为了确保导出的Excel文件结构清晰,可能还需要对数据进行一些预处理,...
2. **备份功能**:通过ContentResolver获取所有联系人,遍历数据表,将联系人信息转换为JSON或VCF格式,然后保存到外部存储(例如SD卡)。 3. **还原功能**:读取外部存储中的备份文件,解析JSON或VCF数据,然后使用...
在Android操作系统中,通讯录是用户的重要数据之一,包含了联系人姓名、电话号码、电子邮件等个人信息。本篇文章将深入探讨如何进行Android手机通讯录的备份与还原,以及如何利用安卓系统的内置数据库进行操作。 ...
1. **定义Contact类**:首先,创建一个`Contact`类,包含姓名、电话、邮箱等字段,以及获取和设置这些字段的方法。 ```cpp class Contact { private: string name; string phoneNumber; string email; public: ...
- 使用`os.path.walk`递归遍历指定目录`packDir`及其子目录下的所有文件,并对每个文件调用`processDirectory`函数进行处理。 5. **主函数**: ```python if __name__ == '__main__': search() ``` - 在程序...
1. **SNP位置文件**:通常是一个包含SNP坐标信息的文本文件,如BED格式或VCF格式,列通常包括染色体名、SNP位置和SNP ID。 2. **基因组序列**:以FASTA格式存储的完整基因组序列,每个染色体作为一个单独的记录。 ...