Avatar billede texas2 Nybegynder
15. september 2001 - 18:08 Der er 5 kommentarer og
1 løsning

Text fil -> Array

Jeg har en textfil, med en masse linier, som denne :

WP,D,001, 62.564646, 8.4533453, 15/09/2001, 00:00:00, 2101

Jeg er helt nybegynder når det gælder VB, men det jeg ønsker, er at læse en efter en linie fra filen, og lægge indholdet i et 2D array, hvor hver del i linien over (delene er adskilt med komma), er lagret hver for sig.
Avatar billede texas2 Nybegynder
15. september 2001 - 18:08 #1
f... Ups, beklager forkert kategori.
Avatar billede joern Nybegynder
15. september 2001 - 19:53 #2
Nå, det kunne jeg da ellers godt svare på.  M.v.h.  Jørn
Avatar billede cellaneous Nybegynder
15. september 2001 - 22:50 #3
kan ikke lige gennemskue hvorfor det er forkert kategori, da det jo er et VB spørgsmål?
Avatar billede texas2 Nybegynder
16. september 2001 - 09:02 #4
Det var forkert kategori fordi jeg egentlig ville lave det i Delphi (se sp. i Delphi kategorien).

Men ved nærmere eftertanke, tror jeg faktisk jeg laver det i VB, så hvis der er nogen som kan hjælpe, får de poengene.
Avatar billede jelzin101 Praktikant
17. september 2001 - 15:43 #5
mener du sådan her :
Open \"hullabulla.txt\" For Input As #1
ReDim Txt$(0)
Do While Not EOF(1)
    ReDim Preserve Txt$(UBound(Txt$) + 1)
    Input #1, Txt$(UBound(Txt$))
Loop
Close #1

Avatar billede joern Nybegynder
17. september 2001 - 18:42 #6
Hej Texas2.

WP,D,001, 62.564646, 8.4533453, 15/09/2001, 00:00:00, 2101
Jeg er helt nybegynder når det gælder VB, men det jeg ønsker, er at læse en efter en linie fra filen, og lægge indholdet i et 2D array, hvor hver del i linien over (delene er adskilt med komma), er lagret hver for sig.

Den linie du gengiver har 8 felter, adskilt af komma.  Jeg forudsætter at alle linier har 8 felter, nogle kan evt. være tomme.  Er der varierende antal felter skal koden være anderledes.
I VB5 som jeg anvender kan et dynamisk array som anført ovenfor - ikke være 2-dimensionelt.  Du skal derfor (hvis VB5) være klar over hvor mange poster der maximalt kan forekomme.  Mit eksempel - 300.


Dim linie, data (300,8) as String
Dim a, b, x, y as integer

Open \"datafil\" for input as #1
  Do while EOF(1) = False
  Line input #1, linie
    for a = 0 to 6       
      b=instr(linie, \",\")
      data ( x, a ) = left(linie, b-1)
      linie = mid(linie, b+1)
    next a
    Data( x, 8) = linie 
    x = x + 1
  Loop
  Close #1

Jeg har ikke afprøvet koden, men brug den til inspiration.

M.v.h.  Jørn
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
Kurser inden for grundlæggende programmering

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