首頁 > 軟體

golang生成vcf通訊錄格式檔案詳情

2022-03-25 16:00:16

前言:

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],"rn","") + 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" + "rn")
w.WriteString("VERSION:3.0" + "rn")
w.WriteString("FN;CHARSET=UTF-8:1" + "rn")
w.WriteString("N;CHARSET=UTF-8:;;" + "A"+index +";;" + "rn")
w.WriteString("TEL;TYPE=CELL:" + num + "rn")
w.WriteString("END:VCARD" + "rn")

}

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格式檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com