golang生成vcf通讯录格式文件详情

目录
  • 1.源码​
  • 2.源码解析
  • 3.运行结果

前言:

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.源码解析

inoputFilePath是输入文件,也就是你想生成哪个城市的电话号的前六位。last是后两位。

outputPath是生成文件目录

比如188**23,后两位就是23,fileSize是文件号码数量。5代表一个文件500个电话号

文件来源直接百度搜。比如洛阳188查号吧

查好了复制进去即可。

3.运行结果

到此这篇关于golang生成vcf通讯录格式文件详情的文章就介绍到这了,更多相关golang生成vcf格式文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • golang实现浏览器导出excel文件功能

    目录 1.依赖包 2.示例 3.分析 3.1先根据需求查询需要的list对象 3.2新建文件,设置文件名,跟列名 3.3设置标题单元格 3.4设置内容单元格 3.5流媒体返回web 1.依赖包 import ( "github.com/tealeg/xlsx" ) 2.示例 func (o *orderController) Export(request *restful.Request, response *restful.Response) { username := reques

  • golang生成vcf通讯录格式文件详情

    目录 1.源码​ 2.源码解析 3.运行结果 前言: vcf文件:​VCF是通讯录格式文件,一般需要用手机通讯录导入导出的文件格式都是vcf格式.​ 目的:​如果你是卖房销售,或者你是做什么推销的,你可以生成同城的手机号,一个个打电话推销.​ 1.源码​ package number /* @Time : 2021/12/22 17:44 @Author :dengfeng_hu @File : phone @Software: GoLand */ import ( "bufio" &

  • PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】 原创

    本文实例讲述了PHP实现生成vcf vcard文件功能类定义与使用方法.分享给大家供大家参考,具体如下: 前面介绍了php读取vcf文件的方法,这里再来研究一下vcf文件的生成方法. VCF格式是Windows系统中outlook的名片存储格式,打开VCF格式需要使用手机的相应配套软件,使用outlook也可以打开VCF文件. 手机通讯录保存的文件格式也是vcf格式.这里就来给出一个使用php生成vcf格式文件的实例. 具体代码如下: <?php date_default_timezone_se

  • 用 Python 定义 Schema 并生成 Parquet 文件详情

    目录 一.简单字段定义 1.定义 Schema 并生成 Parquet 文件 2.验证 Parquet 数据文件 二.含嵌套字段定义 1.验证 Parquet 数据文件 Java 和 Python 实现 Avro 转换成 Parquet 格式, chema 都是在 Avro 中定义的.这里要尝试的是如何定义 Parquet 的Schema, 然后据此填充数据并生成 Parquet 文件. 一.简单字段定义 1.定义 Schema 并生成 Parquet 文件 import pandas as p

  • python处理文本文件实现生成指定格式文件的方法

    本文所述实例为Python处理文本文件并生成指定格式文件的方法,具体实现功能代码如下所示: import os import sys import string #以指定模式打开指定文件,获取文件句柄 def getFileIns(filePath,model): print("打开文件") print(filePath) print(model) return open(filePath,model) #获取需要处理的文件 def getProcFile(path): return

  • php简单读取.vcf格式文件的方法示例

    本文实例讲述了php简单读取.vcf格式文件的方法.分享给大家供大家参考,具体如下: /** * 读取.vcf格式文件 * @param $filename */ function readCvf($filename){ $file = fopen($filename,"r"); while(! feof($file)) { $line=fgets($file); $encoding = mb_detect_encoding($line, array('GB2312','GBK','U

  • go解析svn log生成的xml格式的文件

    想用go做一个统计svn代码提交的工具,类似statsvn. 今天进展到了用go解析svn log生成的xml格式的文件,在go doc上找了一个Example,已经包括了一些比较典型的解析案例,但是在照葫芦画瓢的时候还是遇到了问题,有个paths下有多个path,每个path都有自己的属性和值,想同时渠道属性和值,真是费了好大的劲. 先上个svn xml 格式 log 的demo. Example <?xml version="1.0"?> <log> <

  • java生成xml格式文件的方法

    本文实例讲述了java生成xml格式文件的方法.分享给大家供大家参考,具体如下: 这里演示利用Java生成xml格式文件 Demo中所用到的jar包Jdom.jar . 为了方便理解,我写了个Demo import java.io.FileOutputStream; import java.io.IOException; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import

  • Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法

    本文实例讲述了Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf-8 -*- """ Purpose: 生成日汇总对账文件 Created: 2015/4/27 Modified:2015/5/1 @author: guoyJoe """ #导入模块 import MySQLdb import time impor

  • golang中tar压缩和解压文件详情

    目录 1.压缩并输出tar.gz文档 2.tar解压缩 查看官方文档,官方自带的演示: // 官方演示 package main import ( "archive/tar" "bytes" "fmt" "io" "log" "os" ) func main() { // 将若干文件写入压缩文档 // 这边源文件是直接写在代码里哈,然后也没有输出一个文档 // 后面会演示源文件进行压缩,

  • Golang生成Excel文档的方法步骤

    基于数据生成 Excel 文档是一个很常见的需求,本文将介绍如何使用 Go 的 Excelize库去生成 Excel 文档,以及一些具体场景下的代码实现. 关于 Excelize 库 Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档.支持 XLSX / XLSM / XLTM / XLTX 等多种文档

随机推荐