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判断key是否在map中的代码
Apr 24 Golang
Go语言中的UTF-8实现
Apr 26 Golang
golang json数组拼接的实例
Apr 28 Golang
Golang 如何实现函数的任意类型传参
Apr 29 Golang
Go标准容器之Ring的使用说明
May 05 Golang
goland 设置project gopath的操作
May 06 Golang
基于Golang 高并发问题的解决方案
May 08 Golang
Go遍历struct,map,slice的实现
Jun 13 Golang
Go语言基础知识点介绍
Jul 04 Golang
Go语言基础切片的创建及初始化示例详解
Nov 17 Golang
详解Golang如何优雅的终止一个服务
Mar 21 Golang
Golang jwt身份认证
Apr 20 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
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
python文本数据相似度的度量
2018/03/12 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
python+os根据文件名自动生成文本
2019/03/21 Python
python搜索包的路径的实现方法
2019/07/19 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
django实现后台显示媒体文件
2020/04/07 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
毕业生的自我评价分享
2013/12/18 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
2014年个人委托书范本
2014/10/13 职场文书
答辩状格式范本
2015/05/22 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL