| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package utils
- import (
- "fmt"
- "os"
- "strings"
- )
- func LoadTableList() ([]string, error) {
- // 检查文件是否存在
- if _, err := os.Stat("table_list.txt"); os.IsNotExist(err) {
- // 文件不存在,创建文件
- file, err := os.Create("table_list.txt")
- if err != nil {
- return nil, fmt.Errorf("创建 table_list.txt 文件失败: %v", err)
- }
- defer file.Close()
- // 可以写入一些示例内容
- _, err = file.WriteString("# 表列表,每行一个表名\n# users\n# orders\n# products\n")
- if err != nil {
- return nil, fmt.Errorf("写入 table_list.txt 文件失败: %v", err)
- }
- return nil, fmt.Errorf("table_list.txt 文件不存在,已创建空文件")
- }
- // 读取文件内容
- content, err := os.ReadFile("table_list.txt")
- if err != nil {
- return nil, fmt.Errorf("读取 table_list.txt 文件失败: %v", err)
- }
- // 按行分割内容
- lines := strings.Split(string(content), "\n")
- var tables []string
- for _, line := range lines {
- line = strings.TrimSpace(line)
- // 跳过空行和注释行
- if line == "" || strings.HasPrefix(line, "#") {
- continue
- }
- tables = append(tables, line)
- }
- return tables, nil
- }
- func LoadDBConfig() (map[string]string, error) {
- // 检查文件是否存在
- if _, err := os.Stat("db_config.txt"); os.IsNotExist(err) {
- // 文件不存在,创建文件
- file, err := os.Create("db_config.txt")
- if err != nil {
- return nil, fmt.Errorf("创建 db_config.txt 文件失败: %v", err)
- }
- defer file.Close()
- // 写入默认配置示例
- defaultConfig := `# 数据库配置
- host=localhost
- port=3306
- username=root
- password=
- database=test
- `
- _, err = file.WriteString(defaultConfig)
- if err != nil {
- return nil, fmt.Errorf("写入 db_config.txt 文件失败: %v", err)
- }
- return nil, fmt.Errorf("db_config.txt 文件不存在,已创建示例配置文件")
- }
- // 读取文件内容
- content, err := os.ReadFile("db_config.txt")
- if err != nil {
- return nil, fmt.Errorf("读取 db_config.txt 文件失败: %v", err)
- }
- // 解析配置
- config := make(map[string]string)
- lines := strings.Split(string(content), "\n")
- for _, line := range lines {
- line = strings.TrimSpace(line)
- // 跳过空行和注释行
- if line == "" || strings.HasPrefix(line, "#") {
- continue
- }
- // 解析 key=value 格式
- parts := strings.SplitN(line, "=", 2)
- if len(parts) == 2 {
- key := strings.TrimSpace(parts[0])
- value := strings.TrimSpace(parts[1])
- config[key] = value
- }
- }
- return config, nil
- }
|