28. juli 2006 - 21:12Der er
17 kommentarer og 1 løsning
Læs/skriv til fil igen igen
Hejsa. Jeg er begynder i VB og vil gerne lave et program der kan læse og skrive nye data til en text fil. Jeg er klar over at det er beskrevet mange gange før, men jeg kan ikke finde et sted hvor det er skrevet sort på hvidt til en begynder. Anyway...
Min fil indholder, for hvert punkt, et navn (title$) og en adresse (file$). Sådan ser filen ud med tre punkter:
[database] file1=mms://radioitalia.wm.p1.str3.com/vditalia Title1=[Italia][Italian]Solo Musica Italiana Length=-1 file2=http://www.rtl.it/mediaplayer/rtlTV.asx Title2=[Italia][Italian]Italy Music Length=-1 file3=http://media.kataweb.it/MIBGetPointer.aspx?LIVE=2 Title3=[Italia][Italian]Deejay TV Length=-1 NumberOfEntries=3 Version=2
Hvordan læser jeg hvert "title$" til en combobox og loader "file$" til textbox??? Jeg vil gerne have mulighed for at ændre/slette/tilføje. Er dette alt for svært for en begynder? (Bruger VB6)
Open FilNavn For Output As #FilNummer Linje = Text1.Text Print #FilNummer, Linje Text1.Text = "" Close #FilNummer
End Sub
mvh
mvhansen
Synes godt om
Slettet bruger
29. juli 2006 - 14:36#4
Jeg kan ikke få det til at virke! Nu kommer alle data til text1. Jeg vil jo gerne have dem som "sæt"
Synes godt om
Slettet bruger
29. juli 2006 - 15:11#5
Jeg vil gerne have "Title" ind i comboboxen og når man skifter så "file" i textbox1 Måske er det lidt dårligt forklaret, men det minder vel lidt om at hente bestemte data fra en .xml eller .ini fil?
Har desvaerre ikke tid lige nu, men proev lige foelgende. Filen bliver indlaest i en variabel, altsaa hele filen. Derfra kan du bearbejde din streng og hente de informationer du vil. Hvis du har indlaest din fil i text1.text kan du splitte den op, linie for linie.
indarr = Split(Text1.Text, vbCrLf)
Nu er hver linie i din txt-fil laest ind i dit array. Altsaa indarr(0) ="file1=mms://radioitalia.wm.p1.str3.com/vditalia" indarr(1) ="Title1=[Italia][Italian]Solo Musica Italiana" o.s.v. med left kan du evt finde starten paa din string. text2.text = left (indarr(0), 5) text2.text vil saa vaere lig med "file1"
Synes godt om
Slettet bruger
30. juli 2006 - 11:54#9
Fedt, tusinde tak. Nu kan jeg hente hver linje ind enkelvis, men kan man ikke lave en løkke der stopper ved 3. sidste linje??
Lige nu bruger jeg: Combo1.AddItem indarr(2), 0 Combo1.AddItem indarr(4), 0 Combo1.AddItem indarr(6), 0
Synes godt om
Slettet bruger
30. juli 2006 - 12:04#10
ØØhh, den skriver jo også file1= kan man fjerne det så kun linket står tilbage?
I det tilfaelde kan du fjerne de foerste 5 tegn. Text2.Text = Right(Text1.Text, Len(Text1.Text) - 5) Nu er det ikke altid 5 tegn du skal fjerne, saa bliver du noedt til at soege efter = og se hvillken plads det staar paa. Eller du kan bruge split igen og splitte teksten ved = og saa smide det foerste vaek.
For at finde den foerste forekomst af = kan du bruge Text2.Text = InStr(1, Text1.Text, "=") 1 betyder hvor den starter med at soege. text1.text er teksten du soeger i og = er den tekst du soeger efter. Skulle man lige samle det lidt saa ;-) Text2.Text = Right(Text1.Text, Len(Text1.Text) - InStr(1, Text1.Text, "=")) Saa kommer alt efter foerste = med
Synes godt om
Slettet bruger
30. juli 2006 - 12:32#13
Du skriver text1.text? Det kan jeg ikke få til at virke! Den er jo faktisk tom endnu (skal senere blive = combo1.text så man kan rette kanal navnet)
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.