Avatar billede dougheffernan Nybegynder
19. december 2005 - 10:43 Der er 12 kommentarer og
1 løsning

Indlæse en fil

Hej Eksperter.
Jeg sidder med det problem at jeg skal indlæse linier fra en .txt fil, hvor de enkelte komponenter i linien er separeret af kommaer.

Eksempel på indhold af filen:
%FF0001,16/12/2005,09:35:10,5001002
%FF0001,16/12/2005,09:35:12,5001001
#R0001,16/12/2005,09:35:22,102057012876,1001570128700000
#RR0001,16/12/2005,09:35:25,102057012876,1001570128700000

I koden vælger jeg om linien er en indgående (%) eller udgående (#), men hvordan får jeg (via VBA) splittet linierne op i variabler i et array?
Avatar billede dougheffernan Nybegynder
19. december 2005 - 10:45 #1
Dataene kommer fra en håndskanner og jeg har også tænkt på at sætte start/stop koder på de enkelte elementer (altså så hvert element har sit eget sæt start/stop koder), vil det gøre det nemmere?

Eksempel:
%FF0001%,#16/12/2005#,&09:35:10&,$5001002$
Avatar billede jensen363 Forsker
19. december 2005 - 10:46 #2
Importer først som data forefindes, dvs. incl. % og #.

Efterfølgende kan du adskille første tegn vha. Left([Kolonne1];1)  og Mid([Kolonne1];2;10)
Avatar billede dougheffernan Nybegynder
19. december 2005 - 10:53 #3
Do While Not EOF(1)
  Line Input #1, originalStreng
  If Left(originalStreng, 1) = "%" Then
    Ordrenummer = 'fra % til første komma
    Afsendelsesdato = 'fra første komma til næste komma
    Tidspunkt = 'fra andet komma til næste komma
    Vare = 'fra tredje komma og frem
  end if
Loop
Close #1
Avatar billede dougheffernan Nybegynder
19. december 2005 - 10:56 #4
Fandt denne stump på nettet:

fnum = FreeFile
    Open file_name For Input As fnum
    whole_file = Input$(LOF(fnum), #fnum)
    Close fnum

    ' Break the file into lines.
    lines = Split(whole_file, vbCrLf)

    ' Dimension the array.
    num_rows = UBound(lines)
    ReDim the_array(num_rows)

    ' Copy the data into the array.
    For R = 0 To num_rows
        the_array(R) = Split(lines(R), ",")
    Next R
Avatar billede jensen363 Forsker
19. december 2005 - 11:01 #5
Hvis det virker, er der vel ok
Avatar billede dougheffernan Nybegynder
19. december 2005 - 11:17 #6
Skal lige have omdøbt et par variabler og sådan....så får vi se.
Avatar billede dougheffernan Nybegynder
19. december 2005 - 12:14 #7
Hvordan fjerner jeg startkarakteren?

!Ordrenummer = the_array(R)(0)
Avatar billede dougheffernan Nybegynder
19. december 2005 - 12:23 #8
Er det ikke bare Replace-funktionen??? :)
Det ER også tidligt om morgenen.
Avatar billede dougheffernan Nybegynder
19. december 2005 - 12:25 #9
Jensen, du skal da have nogle point...(vi tager en deler)
Avatar billede jensen363 Forsker
19. december 2005 - 12:26 #10
No need
Avatar billede jesperfjoelner Nybegynder
22. december 2005 - 04:13 #11
husk at lukke spørgsmålet :-)
Avatar billede dougheffernan Nybegynder
17. januar 2006 - 10:26 #12
Takker for hjælpen. Jensen, så "stjæler" jeg pointene selv. ;)
Avatar billede jensen363 Forsker
17. januar 2006 - 10:39 #13
Det er bare i orden :o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester