04. februar 2005 - 14:39Der er
5 kommentarer og 1 løsning
Best practice - indlæsning/parsing af fil
Hej
Jeg vil gerne høre lidt om hvordan andre har grebet følgende opgave an.
Jeg skal modtage en kommasepareret fil, som i toppen af sig, har nogle "styre-informationer" som skal bruges senere hen i forløbet. Derefter kommer al information i en bestemt rækkefølge. Det skal lige tilføjes at informationsmængden bliver større på et senere tidspunkt, hvorfor det kunne være rart at tage højde for det på en let måde. Al den information jeg læser ind fra filen skal senere matches op mod et andet dokument eller liste, således jeg kan sikre mig at det nye dokument jeg skaber, indeholder de krævede felter.
Hvordan holder jeg bedst styr på alle disse informationer, med det in mente at det skal være så simpelt som muligt at udvide mængden af data.... ?
Først og fremmest vil jeg give dette råd: Læs filen ind én linie af gangen. Ellers æder du hurtigt hukommelse, som filen vokser.
Dernæst: Indeholder filen en "header", dvs. f.eks. første linie indeholder feltnavnene? Hvis ja, så gemmer du disse i et array for sig. Så ved du 1) hvor mange felter der er, 2) hvad felterne hedder og 3) hvilken position i hver linie det enkelte felt befinder sig på. Alle disse oplysninger kan bruges i forbindelse med sammenligningen mod det andet dokument.
Hvis du vil have mere hjælp, så giv et eksempel på filerne og fortæl hvilket programmeringssprog, du vil anvende. Det kan nemlig løses forskelligt afhængig af sprog.
Ja, jeg regner også med at indlæse een linje ad gangen.
Der programmeres i C#
1.fil er en CVS fil 2.fil er en xml fil, som indeholder de krævede felter og attributter for en oioxml dokument. 3.fil (den jeg skaber) skal så være en valid oioxml fil udfra de to første filer.
Tja C# er lige præcist en af de sprog, som jeg desværre ikke har eksperimenteret med. Kan man lave associative arrays (også kaldet hash'es, dictionaries, mv.)?
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.