我正在设计一个简单的应用程序,使用go去阅读代表客户文件格式的几种文件格式。我的第一个想法是读取每个文件行,然后解析它到一个结构。到目前为止这么好,但我需要根据它的索引来拆分每个字段。例如:使用golang解析基于位置的字符串有什么好方法?
line := "1003450020170804890000000022344"
编号开始于位置1至位置4 = 1003 客户ID是位置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
}
我不知道我是否在路上,也许有更优雅的东西可以在这种情况下更好地工作。
只是注意:您可以先创建'Record'并通过'&rec.ID'和'&rec.CliendID'等为'FMT。 Sscanf(...)'直接。这种分配方式较少。 – TehSphinX
@akond感谢您的回复,我会尝试此解决方案! – Phopes
@akond这条线有时可能比这条单线更大..我不知道它是否会在这种情况下工作。 – Phopes