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:垃圾回收GC触发条件详解
Apr 24 Golang
golang如何去除多余空白字符(含制表符)
Apr 25 Golang
解决Golang time.Parse和time.Format的时区问题
Apr 29 Golang
golang slice元素去重操作
Apr 30 Golang
golang中的并发和并行
May 08 Golang
Golang全局变量加锁的问题解决
May 08 Golang
修改并编译golang源码的操作步骤
Jul 25 Golang
深入理解go slice结构
Sep 15 Golang
Golang使用Panic与Recover进行错误捕获
Mar 22 Golang
golang定时器
Apr 14 Golang
Golang ort 中的sortInts 方法
Apr 24 Golang
go goth封装第三方认证库示例详解
Aug 14 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 面向对象实现代码
2009/11/11 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
JavaScript库 开发规则
2009/01/31 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
Python字符串中查找子串小技巧
2015/04/10 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
python+opencv实现车道线检测
2021/02/19 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
会计助理的岗位职责
2013/11/29 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
租房协议书范文
2014/08/20 职场文书