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各时间字符串使用解析
Apr 02 Golang
Go语言中的UTF-8实现
Apr 26 Golang
Go 实现英尺和米的简单单位换算方式
Apr 29 Golang
解决Go gorm踩过的坑
Apr 30 Golang
解决Golang中goroutine执行速度的问题
May 02 Golang
golang switch语句的灵活写法介绍
May 06 Golang
Golang实现AES对称加密的过程详解
May 20 Golang
go语言使用Casbin实现角色的权限控制
Jun 26 Golang
Go语言基础知识点介绍
Jul 04 Golang
入门学习Go的基本语法
Jul 07 Golang
Go并发4种方法简明讲解
Apr 06 Golang
Golang ort 中的sortInts 方法
Apr 24 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中模拟POST传递数据的两种方法分享
2011/09/16 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
最简单的js图片切换效果实现代码
2011/09/24 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python中星号变量的几种特殊用法
2016/09/07 Python
Python格式化输出%s和%d
2018/05/07 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
质量提升方案
2014/06/16 职场文书
2014年调度员工作总结
2014/11/19 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
什么是css原子化,有什么用?
2022/04/24 HTML / CSS