01. marts 2001 - 19:30Der er
15 kommentarer og 1 løsning
Import CSV fil
Jeg har nogle .csv filer over nogle logs som jeg gerne vil kunne importere til et program jeg er ved at lave i VB. Jeg er begynder til VB, men har en ide om at de værdier der er i csv filen skal jeg kunne vise i en tabel eller lignende i VB. Det er rent eksperiment for at lære det. Jeg har ikke kunnet finde et eneste sted hvor det er beskrevet på netttet. Jeg vil gerne lave det sådan at man kan lave en \"browse\" funktion så brugeren kan vælge hvilken csv fil der skal importeres.
Mig bekendt er der ingen smutveje men kun cool kode. Men når det er en øvelse er det vel også det bedste.
Du skal lave en løkke, der bliver ved at køre så længe der forekommer kommaer i den indlæste tekststreng. Når du læser fra en fil med \"Line Input\" læses frem til næste CR, altså linieskift. En kommafil med mening må have lige mange felter i hver linie, ellers kan den næppe bruges til noget af nogle andre programmer. Den del hvor brugeren vælger fil kan udformes på forskellig måde. Du kan tilknytte kontrollen for standarddialogboks til åbning af filer: mscomm32.ocx, fortsæt evt. spørgsmålet om dette er et problem.
Løkken kunne se sådan ud, jeg angiver ikke Dim af variable, det kan du vel, men der skal være et todimensionelt array; eller skriver du efterhånden til liste eller lign?
Open sti\\filename for input as #1 Do while EOF(1)=false line input #1, string igen: k=instr(sting,\",\") data(x,y)=left$(string,k-1) string=mid$(string,k+1) if instr(string,\",\")>0 then y=y+1 goto igen end if x=x+1 Loop close #1
Hvis csv-filen indeholder tekst vil der ofte være \" om teksten, så må du søge på \",\" med instr, eller fjerne anførselstegn i en ekstra runde. Hvis csv-filen kun indeholser tal har du ikke dette problem. Opfat ovenstående som en skitse.
Det komplicerer sagen hvis tekster inden i anførselstegn i sig selv indeholder enten kommaer eller anførselstegn. Kommaer i tekster må ikke opfattes som separatorer, anførselstegn i tekster er normalt \'escapet\' på den ene eller anden måde, afhængig af, hvilket program der har genereret csv-filen.
damn det ser ikke nemt ud for en newbie, måske det er for stor en mundfuld. Det er POPBeamer (en pop3 connector til exchange der har genereret csv filerne)
Ville det hjælpe hvis jeg postede lidt af indholdet fra en csv fil?
vis det er så kunne du jo også bruge noget som dette her: filnavn = InputBox$(\"Skriv navnet på filen: HUSK max 8 tegn\", \"max 8\") Open filnavn For Input As #1 txtvindue = Input$(FileLen(filnavn), #1) lblfilåben = filnavn Close #1
filnavn = InputBox$(\"Skriv navnet på filen: HUSK max 8 tegn\", \"Tekstbeskyttelse 2.0\") Open filnavn For Input As #1 txtvindue = Input$(FileLen(filnavn), #1) Close #1
>>johs j. Er det en kommentar til jsc 01-03-2001 22:39 ? Eller sådan i bred almindelighed? I mit svar højere oppe skriver jeg bl.a.: Den del hvor brugeren vælger fil kan udformes på forskellig måde. Du kan tilknytte kontrollen for standarddialogboks til åbning af filer: mscomm32.ocx, fortsæt evt. spørgsmålet om dette er et problem.
Undskyld den lange svartid. Jeg kan se at det ikke er noget jeg skal gå igang med at lave nu. Mine evner rækker ikke så vidt - endnu! Men jeg gemmer Joern\'s svar til senere brug! 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.