14. august 2008 - 22:13Der er
13 kommentarer og 1 løsning
dele linie i 3 og gemme i array
dette virker fint med at dele det i (0, X) og (1, X) men hvis jeg tilføjer (2,X) så kommer der fejl...
nogen forslag?
ReDim buffet_liste(1, X) 'redim til det antal data der er X = 0 Open DataFil For Input As #1 Do Line Input #1, Linje D = Split(Linje, ";") ' deler linjen efter ; buffet_liste(0, X) = D(0) ' tildeler buffet nr buffet_liste(1, X) = D(1) ' tildeler buffet buffet_liste(2, X) = D(2) ' tildeler pris X = X + 1 Loop Until EOF(1) Close 1
hvis jeg holder musen over D(0), D(1) og D(2) så viser den fint hvad hver variabel indeholder og de inde holder hver den data de skal fra første linie... den vil bar ikke gå viderere. den går kold nede ved (2, X)
Dim buffet_liste() As Variant 'redim til det antal data der er DataFil = "C:\data\minfil.txt" Dim X As Integer X = 0 Open DataFil For Input As #1 Do ReDim Preserve buffet_liste(X) Line Input #1, Linje buffet_liste(X) = Split(Linje, ";") ' tildeler buffet nr X = X + 1 Loop Until EOF(1) Close 1
data ligger nu i buffet_liste(X)(0) buffet_liste(X)(1) buffet_liste(X)(2)
@kabbak, den skriver også her "subscript out of range"
alt koden ser således ud: (er dig jeg har fået det fra kabbak hvis det hjælper :) )
Public Sub HentDataBuffet() Dim X As Integer, D As Variant, Linje As String, DataFil As String DataFil = App.Path & "\buffet.txt" ' hvis den er i samme bibliotek som programmets exe fil X = 0 Open DataFil For Input As #1 Do Line Input #1, Linje X = X + 1 ' tæller data Loop Until EOF(1) Close 1
ReDim buffet_liste(1, X) 'redim til det antal data der er X = 0 Open DataFil For Input As #1 Do Line Input #1, Linje D = Split(Linje, ";") ' deler linjen efter ; buffet_liste(0, X) = D(0) ' tildeler buffet nr buffet_liste(1, X) = D(1) ' tildeler buffet buffet_liste(2, X) = D(2) ' tildeler pris X = X + 1 Loop Until EOF(1) Close 1 End Sub
jeg har bare tilføjet: "buffet_liste(2, X) = D(2)" ellers ikke ændret noget
tjek i din gamle dil om du har flere end en tom linje i bunden, hvis du har det, får du fejl.
Hvis du læser den i Notepad, må cursoren, kun lige hoppe lige under sidste datalinje, hvis den går længere, så slet de tomme, indtil du er under den sidste linje.
det var filen der var et mellemrum der ikke skulle være der :)
så nu spiller det.
lige et bonus spørgsmål så...
det der bliver gemt i buffet_liste(1,X) det er en lang række retter der er sepereret af "#" alle disse retter bliver nu hentet frem på en gang og vist som en lang linie.
f.eks.: Røget ørred med flødestuvet spinat # Gratineret kylling med pastasalat # Fyldt svinemørbrad # Ostegratinerede krydderkartofler # Oksekødsfyldte pandekager # Mixet salat med dressing # Cheese cake med ananas
når data fra buffet_liste(1,X) hentes kan man så via split få den til at i den textbox hvor teksten hentes frem at den tilføjer linieskift hver gang den støder på et "#" ?
har førsøgt lidt med count og split, men da der kun er en linie så er jeg gået lidt kold i det...
"det der bliver gemt i buffet_liste(1,X) det er en lang række retter der er sepereret af "#" alle disse retter bliver nu hentet frem på en gang og vist som en lang linie."
det burde da bare være en ret i buffet_liste(1,X), hvor kommer de andre og # fra ??
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.