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 }