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 http使用踩过的坑与填坑指南
Apr 27 Golang
golang 生成对应的数据表struct定义操作
Apr 28 Golang
golang 实现Location跳转方式
May 02 Golang
goland 设置project gopath的操作
May 06 Golang
Go 自定义package包设置与导入操作
May 06 Golang
Go timer如何调度
Jun 09 Golang
入门学习Go的基本语法
Jul 07 Golang
Go语言基础切片的创建及初始化示例详解
Nov 17 Golang
Go语言读取txt文档的操作方法
Jan 22 Golang
Golang map映射的用法
Apr 22 Golang
在ubuntu下安装go开发环境的全过程
Aug 05 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
初探利用Python进行图文识别(OCR)
2019/02/26 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
继承权公证书
2014/04/09 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
党建工作汇报材料
2014/12/24 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
网吧员工管理制度
2015/08/05 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
企业内部管理控制:采购授权审批制度范本
2020/01/19 职场文书
vue+element ui实现锚点定位
2021/06/29 Vue.js
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android