Ignorer le champs ignore

This commit is contained in:
laurentu 2024-08-07 13:46:53 +02:00
parent d33fbd13f9
commit 5f6ef91d86
2 changed files with 3 additions and 9 deletions

View File

@ -47,16 +47,12 @@ func (p *CsvParser) Parse(line string) (map[string]string, error) {
indexMax := len(line) - 1 indexMax := len(line) - 1
for index, r := range line { for index, r := range line {
if index == indexMax { if index == indexMax {
if currentFieldIndex < len(p.fields) { if currentFieldIndex < len(p.fields) && p.fields[currentFieldIndex] != "ignore" {
//fmt.Println("start:", valueStart, "end:", index)
//fmt.Println("Found a field value for:", p.fields[currentFieldIndex], line[valueStart:index])
if inEnclosedField && r == currentEncloserEnd { if inEnclosedField && r == currentEncloserEnd {
ret[p.fields[currentFieldIndex]] = line[valueStart:index] ret[p.fields[currentFieldIndex]] = line[valueStart:index]
} else { } else {
ret[p.fields[currentFieldIndex]] = line[valueStart : index+1] ret[p.fields[currentFieldIndex]] = line[valueStart : index+1]
} }
//fmt.Println("Index is:", index)
} }
} }
if r == '\\' { if r == '\\' {
@ -67,11 +63,8 @@ func (p *CsvParser) Parse(line string) (map[string]string, error) {
} }
} else if r == p.delimiter { } else if r == p.delimiter {
if currentFieldIndex < len(p.fields) { if currentFieldIndex < len(p.fields) && p.fields[currentFieldIndex] != "ignore" {
//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] ret[p.fields[currentFieldIndex]] = line[valueStart:index]
//fmt.Println("Index is:", index)
valueStart = index + 1 valueStart = index + 1
} }
currentFieldIndex++ currentFieldIndex++

1
go.mod
View File

@ -1,3 +1,4 @@
module git.passke.org/laurentu/csv-parser module git.passke.org/laurentu/csv-parser
toolchain go1.22.1
go 1.22 go 1.22