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二维切片初始化的实现
Apr 08 Golang
go语言求任意类型切片的长度操作
Apr 26 Golang
golang 在windows中设置环境变量的操作
Apr 29 Golang
goland设置颜色和字体的操作
May 05 Golang
Go 在 MongoDB 中常用查询与修改的操作
May 07 Golang
Golang实现AES对称加密的过程详解
May 20 Golang
Golang标准库syscall详解(什么是系统调用)
May 25 Golang
go使用Gin框架利用阿里云实现短信验证码功能
Aug 04 Golang
golang中的struct操作
Nov 11 Golang
golang的文件创建及读写操作
Apr 14 Golang
Golang获取List列表元素的四种方式
Apr 20 Golang
详解Go语言中配置文件使用与日志配置
Jun 01 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
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
JS Array对象入门分析
2008/10/30 Javascript
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
通过Pandas读取大文件的实例
2018/06/07 Python
pandas取出重复数据的方法
2019/07/04 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
Pycharm小白级简单使用教程
2020/01/08 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
员工安全生产责任书
2014/07/22 职场文书
2014年教育工作总结
2014/11/26 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
处罚决定书范文
2015/06/24 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫