Ne fonctionne pas des masses

This commit is contained in:
Laurent Ulrich 2024-07-11 16:03:03 +02:00
parent 892e9a62ec
commit b48f2dc7fe
1 changed files with 17 additions and 7 deletions

View File

@ -44,22 +44,31 @@ func (p *CsvParser) Parse(line string) (map[string]string, error) {
ret := make(map[string]string)
valueStart := 0
valueEnd := 0
indexMax := len(line) - 1
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 == '\\' {
escape = !escape
} else if inEnclosedField {
if r == currentEncloserEnd && !escape {
if currentFieldIndex < len(p.fields) {
ret[p.fields[currentFieldIndex]] = line[valueStart : valueEnd-valueStart]
}
currentFieldIndex++
inEnclosedField = false
}
} else if r == p.delimiter {
valueEnd = index
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++
} else {
@ -69,6 +78,7 @@ func (p *CsvParser) Parse(line string) (map[string]string, error) {
// opening encloser
inEnclosedField = true
currentEncloserEnd = runes[1]
valueStart++
break
}
}