Miten saisin siirrettyä commondialogissa valitun tiedoston nimen muuttujaan?
Entä miten saan siirrettyä commondialogista valitun tiedosto formaatin muuttujaan?
tuomas kirjoitti:
Miten saisin siirrettyä commondialogissa valitun tiedoston nimen muuttujaan?
Tiedoston nimi löytyy muuttujasta CommonDialog.FileName.
tuomas kirjoitti:
Entä miten saan siirrettyä commondialogista valitun tiedosto formaatin muuttujaan?
Valittu formaatti tulee suoraan mukaan tiedostonimeen, jos käyttäjä ei ole kirjoittanut muuta päätettä. Muuttujasta CommonDialog.FilterIndex myös selviää, monesko formaatti listalta oli valittuna.
Miten tuosta saisi sitten poistettua kyseisen tiedoston polun niin että vain nimi jäisi?
Hae nimen viimeinen \-merkki. Nimi on heti sen jälkeen. Basiccien koodivinkkejä yhdistelemällä ratkaisu löytyy helposti :)
Homma hoitunee kätevimmin Mid-funktiolla, joka palauttaa tekstistä vain tietyn osan. Vilkaisepa tosiaan hausta ja koodivinkeistä.
tuomas kirjoitti:
Miten tuosta saisi sitten poistettua kyseisen tiedoston polun niin että vain nimi jäisi?
CommonDialog.FileTitle
Mitenköhän tuo onnistuisi..?
Voisiko joku auttaa hieman koodin kanssa?
Tässä on mitä sain itse aikaan mutta se ei toimi..
toivottavasti olen oikeilla jäljillä..
Dim A As Integer TiedostonNimi = CommonDialog1.FileName For i = 1 To Len(TiedostonNimi) If Left(TiedostonNimi, A) = "/" Then Mid(TiedostonNimi, A, Len(TiedostonNimi)) = Nimi A = A + 1 End If Next ' Nimi.Caption = Nimi
Blaze tiesikin helpomman tavan..kiitos!
EDIT:
Entä mieten tuosta saisi vielä erotettua tuon tiedoston tunnisteen?
ja lisättyä sen johonkin muuttujaan.
vaikka soveltemalla jotenkin tuota pientä koodin pätkääni..jota en saanut itse toimimaan kunnolla..
Huomaako siinä kukaan mitään virheitä?
Lähetin CommonDialogiin liittyvän koodivinkin kerran, kannattaa vilkaista:
https://www.ohjelmointiputka.net/koodivinkit/
Tuomas, pistä ihmeessä "Option Explicit" ohjelman alkuun ja säädä se oletukseksi asetuksista. (kohta "Require Variable Declaration")
Teet tuossa parikin virhettä, merkki ei ole / vaan \ ja sitten tuo "mid(jotain) = nimi" on väärinpäin, pitäisi olla varmaan jotain "nimi = mid(jotain)". Tai oikeastaan tuo pitänee pistää kokonaan uusiksi.
Mutta koska helpompiki tapa löytyy niin:
Dim KokoTiedostoNimi As String Dim TiedostoNimi As String Dim TiedostoPaate As String CommonDialog1.ShowOpen KokoTiedostoNimi = CommonDialog1.FileName TiedostoNimi = CommonDialog1.FileTitle 'Palautetaan pisteen jälkeinen osa, ohjelma taitaa kaatua jos päätettä ei löydy TiedostoPaate = Right(TiedostoNimi, Len(TiedostoNimi) - InStrRev(TiedostoNimi, ".", , vbTextCompare)) MsgBox "KokoTiedostoNimi = " & KokoTiedostoNimi & vbLf & "TiedostoNimi = " & TiedostoNimi & vbLf & "TiedostoPaate = " & TiedostoPaate, vbOKOnly, "Tiedosto"
Aihe on jo aika vanha, joten et voi enää vastata siihen.