Ne fonctionne pas des masses
This commit is contained in:
parent
892e9a62ec
commit
b48f2dc7fe
24
csvparser.go
24
csvparser.go
|
@ -44,22 +44,31 @@ func (p *CsvParser) Parse(line string) (map[string]string, error) {
|
||||||
|
|
||||||
ret := make(map[string]string)
|
ret := make(map[string]string)
|
||||||
valueStart := 0
|
valueStart := 0
|
||||||
valueEnd := 0
|
indexMax := len(line) - 1
|
||||||
for index, r := range line {
|
for index, r := range line {
|
||||||
|
if index == indexMax {
|
||||||
|
fmt.Println("EOL")
|
||||||
|
if currentFieldIndex < len(p.fields) {
|
||||||
|
fmt.Println("start:", valueStart, "end:", index)
|
||||||
|
fmt.Println("Found a field value for:", p.fields[currentFieldIndex], line[valueStart:index])
|
||||||
|
ret[p.fields[currentFieldIndex]] = line[valueStart:index]
|
||||||
|
fmt.Println("Index is:", index)
|
||||||
|
}
|
||||||
|
}
|
||||||
if r == '\\' {
|
if r == '\\' {
|
||||||
escape = !escape
|
escape = !escape
|
||||||
} else if inEnclosedField {
|
} else if inEnclosedField {
|
||||||
if r == currentEncloserEnd && !escape {
|
if r == currentEncloserEnd && !escape {
|
||||||
if currentFieldIndex < len(p.fields) {
|
|
||||||
ret[p.fields[currentFieldIndex]] = line[valueStart : valueEnd-valueStart]
|
|
||||||
}
|
|
||||||
currentFieldIndex++
|
|
||||||
inEnclosedField = false
|
inEnclosedField = false
|
||||||
}
|
}
|
||||||
} else if r == p.delimiter {
|
} else if r == p.delimiter {
|
||||||
valueEnd = index
|
|
||||||
if currentFieldIndex < len(p.fields) {
|
if currentFieldIndex < len(p.fields) {
|
||||||
ret[p.fields[currentFieldIndex]] = line[valueStart : valueEnd-valueStart]
|
fmt.Println("start:", valueStart, "end:", index)
|
||||||
|
fmt.Println("Found a field value for:", p.fields[currentFieldIndex], line[valueStart:index])
|
||||||
|
ret[p.fields[currentFieldIndex]] = line[valueStart:index]
|
||||||
|
fmt.Println("Index is:", index)
|
||||||
|
valueStart = index + 1
|
||||||
}
|
}
|
||||||
currentFieldIndex++
|
currentFieldIndex++
|
||||||
} else {
|
} else {
|
||||||
|
@ -69,6 +78,7 @@ func (p *CsvParser) Parse(line string) (map[string]string, error) {
|
||||||
// opening encloser
|
// opening encloser
|
||||||
inEnclosedField = true
|
inEnclosedField = true
|
||||||
currentEncloserEnd = runes[1]
|
currentEncloserEnd = runes[1]
|
||||||
|
valueStart++
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue