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语言中的UTF-8实现
Apr 26 Golang
go结构体嵌套的切片数组操作
Apr 28 Golang
golang 实现两个结构体复制字段
Apr 28 Golang
Go语言 go程释放操作(退出/销毁)
Apr 30 Golang
对Golang中的FORM相关字段理解
May 02 Golang
Golang: 内建容器的用法
May 05 Golang
解决Goland 同一个package中函数互相调用的问题
May 06 Golang
Golang全局变量加锁的问题解决
May 08 Golang
深入理解go slice结构
Sep 15 Golang
Go语言读取txt文档的操作方法
Jan 22 Golang
Golang流模式之grpc的四种数据流
Apr 13 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显示MySQL数据的三种方法
2008/06/05 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python中使用item()方法遍历字典的例子
2014/08/26 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
python获取Linux发行版名称
2019/08/30 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
python安装后的目录在哪里
2020/06/21 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
护士自我鉴定范文
2013/10/06 职场文书
小学班主任事迹材料
2014/12/17 职场文书
师德先进个人材料
2014/12/20 职场文书
邀请书模板
2015/02/02 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers