golang生成vcf通訊錄格式文件詳情
前言:
vcf文件:?VCF是通訊錄格式文件,一般需要用手機(jī)通訊錄導(dǎo)入導(dǎo)出的文件格式都是vcf格式。?
目的:?如果你是賣房銷售,或者你是做什么推銷的,你可以生成同城的手機(jī)號(hào),一個(gè)個(gè)打電話推銷。?
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 } //及時(shí)關(guān)閉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("文件創(chuàng)建成功,時(shí)間:"+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'為結(jié)束符讀入一行 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
是輸入文件,也就是你想生成哪個(gè)城市的電話號(hào)的前六位。last是后兩位。
outputPath
是生成文件目錄
比如188**23,后兩位就是23,fileSize是文件號(hào)碼數(shù)量。5代表一個(gè)文件500個(gè)電話號(hào)
文件來源直接百度搜。比如洛陽188查號(hào)吧
查好了復(fù)制進(jìn)去即可。
3.運(yùn)行結(jié)果
到此這篇關(guān)于golang生成vcf通訊錄格式文件詳情的文章就介紹到這了,更多相關(guān)golang生成vcf格式文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang 實(shí)現(xiàn)Thrift客戶端連接池方式
這篇文章主要介紹了Golang 實(shí)現(xiàn)Thrift客戶端連接池方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12如何組織Go代碼目錄結(jié)構(gòu)依賴注入wire使用解析
這篇文章主要為大家介紹了如何組織Go代碼目錄結(jié)構(gòu)依賴注入wire使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07golang基礎(chǔ)之字符串與int、int64類型互相轉(zhuǎn)換
這篇文章主要給大家介紹了關(guān)于golang基礎(chǔ)之字符串與int、int64類型互相轉(zhuǎn)換的相關(guān)資料,在Go語言中string轉(zhuǎn)int是一項(xiàng)常見的操作,需要的朋友可以參考下2023-07-07