最近开始接触go语言,还是很好上手的一门语言,写个超简单的本地记录存储放在这。
package main
import (
"bufio"
"fmt"
"io"
"os"
"strconv"
"strings"
)
type recode struct {
number int
time string
name string
info string
}
var AllCode []recode
func SetInfo() {
fmt.Println("请输入本次记录(记录员/记录时间/记录信息):")
var message string
fmt.Scanln(&message)
recodes := strings.Split(message, "/")
if len(recodes) == 3 {
ConfirmInfo(recodes)
}
}
func ConfirmInfo(args []string) {
var inputRecode recode
if len(args) == 3 {
inputRecode.name, inputRecode.time, inputRecode.info = args[0], args[1], args[2]
inputRecode.number = GetNum() + 1
} else if len(args) == 4 {
number, _ := strconv.Atoi(args[0])
inputRecode.number, inputRecode.name, inputRecode.time, inputRecode.info = number, args[1], args[2], args[3]
} else {
return
}
AllCode = append(AllCode, inputRecode)
}
func GetNum() int {
for k, v := range AllCode {
if v.number == 0 {
return k
}
if k == len(AllCode)-1 && v.number != 0 {
return len(AllCode)
}
}
return 0
}
func FindData() {
var num int = GetNum()
if num == 0 {
return
}
fmt.Println("请输入查询关键词:")
var find string
fmt.Scan(&find)
for _, v := range AllCode {
if v.name == find {
fmt.Println(v.number, ":", v.name, "/", v.time, "/", v.info)
}
}
}
func main() {
GetData()
SetInfo()
FindData()
SaveData()
}
func SaveData() {
filePath := "E:/GO_work/data.txt"
file, _ := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, 0666)
write := bufio.NewWriter(file)
for _, v := range AllCode {
if v.number != 0 {
write.WriteString(strconv.Itoa(v.number) + "/" + v.name + "/" + v.time + "/" + v.info)
}
write.WriteString("\n")
}
write.Flush()
file.Close()
}
func GetData() {
filePath := "E:/GO_work/data.txt"
file, _ := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, 0666)
read := bufio.NewReader(file)
for {
lineBytes, err := read.ReadBytes('\n')
line := string(lineBytes)
ConfirmInfo(strings.Split(line, "/"))
if err == io.EOF {
break
}
}
}
接着是文件的运行和摆放,放在对应的文件夹下,cmd用命令直接运行文件即可,data文件时程序生成的:
文件执行后,这个程序也很简单,就是本地创建一个txt文件用来存储数据。
执行后的文本内数据效果:
运行执行:
感觉没什么太多要说的,不过刚接触go的话,可以和我一样看看这个博主的一片内容,链接:Go读取文件