package modules import ( "bufio" "fmt" "os" "strings" ) type config struct { db_host string db_port string db_username string db_password string db_name string server_host string server_port string } func Readconfig() string { c := config{} // 创建空的 config 结构体实例 // 打开配置文件 file, err := os.Open("./config.conf") if err != nil { fmt.Println("无法打开配置文件:", err) } defer file.Close() var dsn string // 存储数据库连接字符串 // 创建一个Scanner来读取文件内容 scanner := bufio.NewScanner(file) // 逐行读取文件 for scanner.Scan() { line := scanner.Text() // 忽略空行和注释行 if len(line) == 0 || strings.HasPrefix(line, "#") { continue } // 解析配置项 parts := strings.Split(line, "=") if len(parts) != 2 { fmt.Println("无效的配置项:", line) continue } key := strings.TrimSpace(parts[0]) value := strings.TrimSpace(parts[1]) //根据需要处理配置项 switch key { case "db_host": c.db_host = value fmt.Println("数据库地址:", value) case "db_port": c.db_port = value fmt.Println("数据库端口:", value) case "db_username": c.db_username = value fmt.Println("数据库用户名:", value) case "db_password": c.db_password = value fmt.Println("数据库密码:", value) case "db_name": c.db_name = value fmt.Println("数据库名:", value) case "server_host": c.server_host = value fmt.Println("主机:", value) case "server_port": c.server_port = value fmt.Println("端口:", value) case "log_level": fmt.Println("日志等级:", value) case "log_file": fmt.Println("日志路径:", value) } } if err := scanner.Err(); err != nil { fmt.Println("读取配置文件时发生错误:", err) } //fmt.Println(c) dsn = c.db_username + ":" + c.db_password + "@tcp(" + c.db_host + ":" + c.db_port + ")/" + c.db_name fmt.Println(dsn) return dsn }