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 Int转string几种方式性能测试
Apr 28 Golang
浅谈Golang 嵌套 interface 的赋值问题
Apr 29 Golang
golang import自定义包方式
Apr 29 Golang
解决golang在import自己的包报错的问题
Apr 29 Golang
golang gopm get -g -v 无法获取第三方库的解决方案
May 05 Golang
go mod 安装依赖 unkown revision问题的解决方案
May 06 Golang
浅谈Golang 切片(slice)扩容机制的原理
Jun 09 Golang
Go语言设计模式之结构型模式
Jun 22 Golang
go使用Gin框架利用阿里云实现短信验证码功能
Aug 04 Golang
Go语言测试库testify使用学习
Jul 23 Golang
Go中使用gjson来操作JSON数据的实现
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中echo用逗号和用点号的区别详解
2018/01/23 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
详细探究ES6之Proxy代理
2016/07/22 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
2017/01/04 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python http基本验证方法
2018/12/26 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
教师考察材料范文
2014/06/03 职场文书
离婚财产处理协议书
2014/09/30 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
借钱欠条怎么写
2015/07/03 职场文书
开学典礼致辞
2015/07/29 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Python基础之元组与文件知识总结
2021/05/19 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript