Kävin väsäämään MP3 soitinta ja jumituin sen niin sanotun soittolista tallennukseen ja lataukseen. Miten saan tallennuksen ASCII tiedostoon toimimaan yhdessä Microsoft Common Dialog Control 6.0:n kanssa?
ASCII tallennus:
Open tiedosto.txt For Output As #1 Print #1, Text1.Text Close #1 End Sub
Miten saan tuommoisen toimimaan common dialogilla?
Kirjoita tiedoston nimen kohdalle CommonDialogiin kirjoitettu tiedostonimi, joka tulee kontrollin FileName-ominaisuuteen. Tarkista kuitenkin ensin, että nimi ei ole tyhjä peruutuspainikkeen painamisen takia.
Katsoppa tätä koodivinkkiä.
Ja esimerkki joka tallentaa tekstilaatikon sisällön käyttäjän commond ialogista valitsemaan tiedostoon:
Private Sub Command1_Click() 'eli tallennus nimellä On Error GoTo cancel 'jos käyttäjä painaa cancel, mennään kohtaan cancel (cancel-napista 'tapahtuu virhe) 'Suodattimet (näkyvät tiedostotyyppi-osiossa) CommonDialog1.Filter = "Kaikki tiedostot|*.*|Tekstitiedostot|*.txt" 'eli filterit asetetaan tyyliin "teksti|tiedostot|teksti2|tiedostot2" 'näytetään tallenna nimellä -ikkuna CommonDialog1.ShowSave 'jos halutaan avata, ShowSaven tilalle ShowOpen 'avataan käyttäjän valitsema tiedosto open CommonDialog1.FileName for output as #1 print #1, Text1.Text Close #1 Exit Sub cancel: Exit Sub End Sub
Kopioitu suurelta osin tuosta koodivinkistä.
Edit. Antti ehätti hieman edelle.
Private Sub cmdSavePlaylist_Click() Common.FileName = "" Common.Filter = "WBP|*.wbp" Common.ShowSave If Common.FileName = "" Then Exit Sub Dim i As Integer Dim path As String i = 0 Open Common.FileName For Output As #1 Do Paths.List(i) = path Print #1, path i = i + 1 Loop End Sub
Tommosella koodilla yritin tallentaa niitten tiedostojen polkuja tiedostoon. Kaikki meni muuten hyvin, mutta se looppaa tota niin kauan että tulee overflow. Miten sen overflowin tulemisen voi estää?
Laittamalla tuohon looppiin joku ehto, jolla se lopetetaan.
Jos lisään tohon äskeiseen koodiini i = i + 1 jälkeen if lausekkeen
If i > 99 then exit sub
niin tulostaa 100 tyhjää riviä tiedostoon *.wbp.
Edit. Voiko joku tehä tosta toimivan esimerkin? Kun se ei tulosta edes niitä polkuja vaan pelkkiä tyhjiä rivejä :( Oon pihalla ku lumiukko...
Näytät kirjottavan sinne tiedostoon path-muuttujan. Ko. muuttujalle ei missään vaiheessa aseteta arvoa, joten tyhjiä rivejähän sinne ilmestyy.
Todennäkösesti haluaisit vaihtaa tuon pathin ja listboksin paikkaa tuossa printtaamista edeltävällä rivillä.
Juu katos siinähän se virhe olikii... En huoman sitä :D
EDIT:Miten saan tietooni kuinka monta saraketta(tai mitä nyt onkaa) listboxissa on?
Sarakkeet:
Dim numCols As Integer
numCols = List1.Columns
Rivit:
Dim numLines As Integer
numLines = List1.ListCount
Aihe on jo aika vanha, joten et voi enää vastata siihen.