golang生成vcf通讯录格式文件详情


Posted in Golang onMarch 25, 2022

前言:

vcf文件:​VCF是通讯录格式文件,一般需要用手机通讯录导入导出的文件格式都是vcf格式。​

目的:​如果你是卖房销售,或者你是做什么推销的,你可以生成同城的手机号,一个个打电话推销。​

1.源码​

package number
/*
@Time : 2021/12/22 17:44
@Author :dengfeng_hu
@File : phone
@Software: GoLand
*/

import (
"bufio"
"fmt"
"io"
"os"
"strconv"
"strings"
"time"
)

const (
inputFilePath = "D:/phone.txt"
fileName = "洛阳"
last = "36"
fileSize = 5
outputPath = "D://phoneNumber"
)

func getNum(fileName string) int {
var num = 1
for {
if _,err:=os.Stat("D://phoneNumber/" + fileName + strconv.Itoa(num)+".vcf");
os.IsNotExist(err){
return num
}
num++
}
}


func Exe() {
mid := read()
for i:=0;i<len(mid);i=i+5{
var subList []string
if i+fileSize<len(mid){
subList = mid[i:i+fileSize:len(mid)]
}else{
subList = mid[i:len(mid):len(mid)]
}
fmt.Println(subList)
MyTest(subList,fileName,last)
}
}

func MyTest(mid []string,fileName string,last string){
num := getNum(fileName)
file, err := os.OpenFile(outputPath+"/" + fileName +strconv.Itoa(num) +".vcf", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
fmt.Println("文件打开失败", err)
return
}
//及时关闭file句柄
defer file.Close()
write := bufio.NewWriter(file)
count:=1
for i := 0;i<len(mid);i++{
for j := 0;j<100;j++{
phoneNumber := strings.ReplaceAll(mid[i],"\r\n","") + fmt.Sprintf("%02d", j) + last
makeNumber(phoneNumber,write,strconv.Itoa(count))
count++
}
}
makeNumber("15804299051",write,strconv.Itoa(count))
write.Flush()
fmt.Println("文件创建成功,时间:"+time.Now().Format("2006-01-02 15:04:05"))
}


func makeNumber(num string,w *bufio.Writer,index string){
w.WriteString("BEGIN:VCARD" + "\r\n")
w.WriteString("VERSION:3.0" + "\r\n")
w.WriteString("FN;CHARSET=UTF-8:1" + "\r\n")
w.WriteString("N;CHARSET=UTF-8:;;" + "A"+index +";;" + "\r\n")
w.WriteString("TEL;TYPE=CELL:" + num + "\r\n")
w.WriteString("END:VCARD" + "\r\n")

}

func read() []string{
var mid []string
f, err := os.Open(inputFilePath)
if err != nil {
panic(err)
}
defer f.Close()
rd := bufio.NewReader(f)
for {
line, err := rd.ReadString('\n') //以'\n'为结束符读入一行
if err != nil || io.EOF == err {
break
}
mid = append(mid,line)
}
fmt.Println("mid size:" + strconv.Itoa(len(mid)))
fmt.Println("mid " )
fmt.Println(mid)
return mid
}

2.源码解析

golang生成vcf通讯录格式文件详情

inoputFilePath是输入文件,也就是你想生成哪个城市的电话号的前六位。last是后两位。

outputPath是生成文件目录

比如188**23,后两位就是23,fileSize是文件号码数量。5代表一个文件500个电话号

golang生成vcf通讯录格式文件详情

golang生成vcf通讯录格式文件详情

文件来源直接百度搜。比如洛阳188查号吧

golang生成vcf通讯录格式文件详情

golang生成vcf通讯录格式文件详情

查好了复制进去即可。

3.运行结果

golang生成vcf通讯录格式文件详情

到此这篇关于golang生成vcf通讯录格式文件详情的文章就介绍到这了,更多相关golang生成vcf格式文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Golang 相关文章推荐
golang 如何用反射reflect操作结构体
Apr 28 Golang
Go 实现英尺和米的简单单位换算方式
Apr 29 Golang
解决golang post文件时Content-Type出现的问题
May 02 Golang
goland设置颜色和字体的操作
May 05 Golang
golang gopm get -g -v 无法获取第三方库的解决方案
May 05 Golang
Go 自定义package包设置与导入操作
May 06 Golang
K8s部署发布Golang应用程序的实现方法
Jul 16 Golang
Go语言 详解net的tcp服务
Apr 14 Golang
Golang MatrixOne使用介绍和汇编语法
Apr 19 Golang
Golang实现可重入锁的示例代码
May 25 Golang
Go语言测试库testify使用学习
Jul 23 Golang
Python测试框架pytest核心库pluggy详解
Aug 05 Golang
golang实现浏览器导出excel文件功能
Golang使用Panic与Recover进行错误捕获
Mar 22 #Golang
Go语言特点及基本数据类型使用详解
详解Golang如何优雅的终止一个服务
Mar 21 #Golang
Go语言实现一个简单的并发聊天室的项目实战
Mar 18 #Golang
浅谈GO中的Channel以及死锁的造成
Mar 18 #Golang
Golang 并发下的问题定位及解决方案
Mar 16 #Golang
You might like
PHP4实际应用经验篇(3)
2006/10/09 PHP
隐性调用php程序的方法
2009/03/09 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
php获取错误信息的方法
2015/07/17 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python web框架 django wsgi原理解析
2019/08/20 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
小学生寒假家长评语
2014/04/16 职场文书
先进教师事迹材料
2014/12/16 职场文书
张丽莉观后感
2015/06/16 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书