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语言map与string的相互转换的实现
Apr 07 Golang
go语言-在mac下brew升级golang
Apr 25 Golang
go 原生http web 服务跨域restful api的写法介绍
Apr 27 Golang
golang 生成对应的数据表struct定义操作
Apr 28 Golang
golang 接口嵌套实现复用的操作
Apr 29 Golang
Go使用协程交替打印字符
Apr 29 Golang
go语言中GOPATH GOROOT的作用和设置方式
May 05 Golang
Golang: 内建容器的用法
May 05 Golang
解决golang 关于全局变量的坑
May 06 Golang
Go语言基础知识点介绍
Jul 04 Golang
Golang日志包的使用
Apr 20 Golang
Go语言编译原理之变量捕获
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
Terran剧情介绍
2020/03/14 星际争霸
再次研究下cache_lite
2007/02/14 PHP
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
Python中的自省(反射)详解
2015/06/02 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
关于Python错误重试方法总结
2021/01/03 Python
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
公司前台接待岗位职责
2013/12/03 职场文书
全陪导游欢迎词
2014/01/17 职场文书
2014年会策划方案
2014/05/11 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
MySQL 数据类型详情
2021/11/11 MySQL