19. juli 2008 - 21:30Der er
27 kommentarer og 1 løsning
Fejl? i csv
Jeg har lige fundet ud af at min genererede csv-fil bruger den forkerte linje separator... Linjeskift virker, hvis man åbner den i Excel eller wordpad, men i notepad, bliver der blot vist en firkant. Hvordan kan jeg identificere hvilken linje-separator der er brugt, samt hvilken bør jeg bruger for at det virker i min kode:
Open dintekstfil For Input As #1 'Line Input #1, linestr Do While Not EOF(1) Line Input #1, linestr parts = Split(linestr, vrlf) Open "c:\guide.txt" For Append As #2 Print #2, parts(felt1) & ";" & parts(felt2) & ";" & parts(felt3) & ";" & parts(felt4) & ";" & parts(felt5) Close #2 Loop Close #1
Problemet er at koden ser hele csv-filen som én lang linje... Hvilket jo ikke helt var meningen...
Når du bruger windows-programmer skal du måske bruge vbcrlf. Det er selvfølgelig tegn på mangel på omtanke og kompatibilitet, at man ikke kan klare de 3 fremherskende metoder.
Så må du finde ud af hvilket tegn, der er tale om. Du bruger Windows, så det er lidt bøvlet. Men en simpel visning af de enkelte tegn i en fil, med deres ordinal værdi, kan fås med pspad (Google vil så gerne være din ven)
..du ved hvor mange felter der er -> du ved hvor mange ";" der er..
Man behøver faktisk ikke være vide hvilket format der er brugt til linieskift, idet man kan finde ud af det, og bruge det i en variabel.
Efter det sidste ";" skulle linieskift formatet gerne være. Det er vel på 1 til 2 tegn, efterfulgt af et gyldigt tegn (f.eks. et bogstav fra alfabetet). Tegnene fra det sidste ";" og til det først gyldige tegn, er linieskift formatet. Split på baggrund af dette resultat.
PS: Hvis filen autogenereres, dvs linieskift formatet er det samme hver gang, skal du jo sådan set bare lave 3 (jvf "de 3 fremherskende metoder" i 19/07-2008 21:35:25) tests?
Så er det jo bare med at teste de 3 formater, og når du har fundet den korrekt, hardcoder du bare formatet i din kode.
Jeg har selv fixet det, tak for hjælpen alle sammen :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.