Avatar billede juks Novice
22. november 2005 - 10:27 Der er 9 kommentarer og
1 løsning

text fil sammenlign

hej , jeg har en txt fil der indeholde 2 kolonner

i VB har jeg så en variable med den skal jeg søge igennem textfilen og når jeg finder den skal jeg tage kolonne 2 i den række jeg har fundet også hente værdien ind i en ny variable, hvordan gør jeg har tænkt lidt over at bruge array men kan ikke få det til at virke helt
Avatar billede juks Novice
22. november 2005 - 10:29 #1
filen er komma sep. og indeholder overskrifter(dette kan ændres).
Avatar billede kabbak Professor
22. november 2005 - 11:55 #2
Læs ind i Variablen sådan her

Dim Data(1000, 1) As Variant

Private Sub Command1_Click()
Dim Kol1 As Variant, Kol2 As Variant, I As Long
I = 0
Open "c:\Testdata.txt" For Input As #1
Do Until EOF(1)
Input #1, Kol1
Input #1, Kol2
Data(I, 0) = Kol1
Data(I, 1) = Kol2
I = I + 1
Loop
Close 1
Text1 = Data(0, 0) ' overskrifter
Text2 = Data(0, 1) ' overskrifter
End Sub
Avatar billede juks Novice
22. november 2005 - 14:59 #3
men den tager den pr linje.

det jeg skal have er pr række sådan at

hvis filen ser sådan ud .:
tal1;tal2
100;200
300;400
500;500

skal kol1,kol2 give
100;200
300;400
500;500
hvis man køre løkken 3 gange
Avatar billede kabbak Professor
22. november 2005 - 15:03 #4
du skriver "ilen er komma sep. og indeholder overskrifter(dette kan ændres)."

den tager ikke en linie når den er kommasepareret, den tager kun til kommaet
Avatar billede kabbak Professor
22. november 2005 - 15:04 #5
den skal kun køres 1 gang, variablen huskes til programmet lukkes
Avatar billede juks Novice
22. november 2005 - 15:13 #6
ok prøver lige igen jeg har disse tal i en csv-fil ...


100.100.10    5003.1.010
100.100.15    5003.1.020
100.100.20    5003.1.030
100.100.25    5003.1.010

så skal jeg har jeg skal jeg søge i den fil efter fx. 100.100.15 hvis den finder det tal skal den returnere 5003.1.020 (der er tallet i kollone 2)
Avatar billede kabbak Professor
22. november 2005 - 15:15 #7
en csv-fil fra excel er simikolon separeret
Avatar billede juks Novice
22. november 2005 - 15:25 #8
100.100.10;5003.1.010;5003. 1
100.100.15;5003.1.020;5003. 1
100.100.20;5003.1.030;5003. 1
100.100.25;5003.1.010;5003. 1
100.100.30;5003.1.020;5003. 1
100.100.35;5003.1.030;5003. 1
100.100.40;5003.1.040;5003. 1
100.100.45;5003.1.050;5003. 1
100.100.50;5003.1.060;5003. 1
100.100.55;5003.1.070;5003. 1
100.100.60;5003.1.080;5003. 1
100.100.65;5003.1.090;5003. 1
100.100.70;5003.1.100;5003. 1

hentet direkte fra filen
Avatar billede kabbak Professor
22. november 2005 - 16:55 #9
der er jo 3 kolonner og adskildt af ;
Avatar billede juks Novice
25. november 2005 - 11:25 #10
Sub Split_(Kol1, orgmap, newmap)
Dim new_map As String
Dim o_map As String
Dim lng, start, pkt, pkt_new, antal As Integer
start = 1
Do
start = pkt + 1
    pkt = InStr(start, Kol1, Chr(9))
    If pkt > 0 Then
        antal = antal + 1
        If antal = 1 Then
            o_map = Left(Kol1, pkt - 1)
        lng = pkt
        End If
        If antal = 3 Then pkt_new = pkt + 1
        If antal = 4 Then
            new_map = Mid$(Kol1, start, lng - 1)
          Exit Do
        End If
    Else
    End If


Loop Until pkt = 0

orgmap = o_map
replacestring new_map, Chr(9), ""

newmap = new_map

End Sub
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