我正在设计一个简单的应用程序,使用go来读取代表客户文件格式的几种文件格式.我的第一个想法是读取每个文件行,然后将其解析为结构.到目前为止这么好,但我需要根据它的索引拆分每个字段.例如:
line := "1003450020170804890000000022344"
Run Code Online (Sandbox Code Playgroud)
Id从位置1开始到位置4 = 1003 CustomerId是位置5到7以及与该结构相关的所有其他字段.
我想知道是否有更高效的读取格式并应用于此文件行,我想为每个字段创建一些结构并具有开始和结束字段,但这对我来说听起来很奇怪.
type Record struct {
Id int
Date time.Time
Value float64
ClientId int32
}
type RecordId struct {
Start int
Finish int
Value int
}
type ClientId struct {
Start int
Finish int
Value int32
}
Run Code Online (Sandbox Code Playgroud)
我不知道我是否在路上,也许有更优雅的东西在这种情况下会更好.
var a, b int
n, err := fmt.Sscanf("1003450020170804890000000022344", "%4d%3d", &a, &b)
if err != nil {
// ...
}
fmt.Println(a) // 1003
fmt.Println(b) // 450
Run Code Online (Sandbox Code Playgroud)
然后你可以用这些创建一个结构.
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |