Gå til innhold

Lese flere linjer fra CSV inn i variabler


Anbefalte innlegg

Sitter med et lite prosjekt til bruk på jobben..

 

Skal kunne lese csv filer som inneholder bruker info, for så legge verdien inn i variabler, og så sende dette til cmd.

 

Har i grunn fått til det meste selv, men sliter med å lese flere linjer, det er kun verdier i den siste linjen min som blir lagt til i variablene.

 

Jeg vil at den skal lese linje en, legge verdiene i de spesifikke variabler.

Så lese neste linje, og legge disse verdiene i variabel[1] eller er det array jeg må bruke her?

 

Option Explicit
Dim fnavn As String
Dim enavn As String
Dim uname As String
Dim memberof As String
Dim ou As String
Dim kommune As String
Dim lscript As String
Dim homefolder As String


Private Sub Form_Load()
Open App.Path & "\brukere.csv" For Input As #1  'åpner filen for lesing

Do While Not EOF(1)  'sier seg selv.. looper til EOF = 1, altså vi har nådd enden av fila.

Input #1, fnavn, enavn, uname, memberof, ou, kommune, lscript, homefolder
'leser csv, og legger verdier i variablene.


'setter variablenes innhold i textboksene
txt_fnavn.Text = fnavn
txt_enavn.Text = enavn
txt_uname.Text = uname
txt_memberof.Text = memberof
txt_ou.Text = ou
txt_kommune.Text = kommune
txt_lscript.Text = lscript
txt_homefolder.Text = homefolder
Loop

End Sub

Lenke til kommentar
Videoannonse
Annonse

Du må nok benytte en Array (n-dimensjonal tabell av elementer), og dermed i samme slengen óg en UDT-struktur.

' "Hash"-struktur av verdier

Private Type Record

    fnavn As String

    enavn As String

    uname As String

    memberof As String

    ou As String

    kommune As String

    lscript As String

    homefolder As String

End Type

 

' Abstraksjon av innlastingsfunksjonen

Private Function LoadData(Path As String) As Record()

 

    Dim Free As Long, Items() As Record, Index As Long, ItemCount As Long

   

    ' Startstørrelser

    Index = -1

    ItemCount = 10

    ReDim Items(ItemCount - 1)

   

    ' Hent ledig fil-id

    Free = FreeFile

 

    ' Åpne fil for tekstbasert innlesing

    Open Path For Input As #Free

   

        ' Fortsett til siste linje

        Do Until EOF(Free)

       

            ' Øk teller

            Index = Index + 1

       

            ' Se om reallokering er nødvendig

            If Index > ItemCount - 1 Then

                ItemCount = ItemCount * 2

                ReDim Preserve Items(ItemCount)

            End If

           

            ' Last inn element

            With Items(Index)

                Input #Free, .fnavn, .enavn, .uname, .memberof, .ou, _

                .kommune, .lscript, .homefolder

            End With

 

        Loop

       

    ' Husk alltid å rydde opp

    Close #Free

   

    ' Returner "Trimed"-array

    If Index >= 0 Then

        ReDim Preserve Items(Index)

        LoadData = Items

    End If

 

End Function

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...