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 相关文章推荐
为什么不建议在go项目中使用init()
Apr 12 Golang
Go缓冲channel和非缓冲channel的区别说明
Apr 25 Golang
Golang 正则匹配效率详解
Apr 25 Golang
Go语言带缓冲的通道实现
Apr 26 Golang
golang http使用踩过的坑与填坑指南
Apr 27 Golang
goland 清除所有的默认设置操作
Apr 28 Golang
Go语言中break label与goto label的区别
Apr 28 Golang
Golang 如何实现函数的任意类型传参
Apr 29 Golang
基于Golang 高并发问题的解决方案
May 08 Golang
golang实现浏览器导出excel文件功能
Mar 25 Golang
Golang 1.18 多模块Multi-Module工作区模式的新特性
Apr 11 Golang
Golang流模式之grpc的四种数据流
Apr 13 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获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
基于jquery的tab切换 js原理
2010/04/01 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
用python实现面向对像的ASP程序实例
2014/11/10 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
python几种常用功能实现代码实例
2019/12/25 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
小学学校评估方案
2014/06/08 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
母亲去世追悼词
2015/06/23 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
python process模块的使用简介
2021/05/14 Python