Gambas-it

Gambas3 => Programmazione => Topic aperto da: vuott - 14 Aprile 2012, 16:02:18

Titolo: [Risolto] Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: vuott - 14 Aprile 2012, 16:02:18
Poniamo il caso di voler salvare due tipi di file, utilizzando anche una finestra Dialog.SaveFile.
Con Dialog.Filter abbiamo deciso che i due tipi di file possono essere o quello con estensione .xxx oppure quello con estensione .yyy .
Come si sa, è possibile scegliere una delle due estensioni operando nella finestra di dialogo nell'apposito Combo "Tipo di File", dove appaiono le due diverse estensioni impostate precedentemente con Dialog.Filter.

Sappiamo anche che Dialog.Filter si comporta più o meno come un array stringa[].
Diciamo che... non appena si è scelto il tipo di file, vorremmo che in console venga scritta l'estensione (il tipo di file) fra le due, che abbiamo appena scelto.

...se fosse un normale oggetto ComboBox, potremmo interrogare il suo indice: ComboBox1.Index
(cfr. fsurfing in: http://www.gambas-it.org/smf/index.php?topic=2075.msg22852#msg22852)

ma in questo caso, invece ?
Titolo: Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: md9327 - 16 Aprile 2012, 13:58:09
...per il valore???...  ;D
Titolo: Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: vuott - 16 Aprile 2012, 18:59:52
...per il valore???...  ;D

...in che...zenzo ?  :rolleyes:
Titolo: Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: md9327 - 17 Aprile 2012, 10:23:32
Nel senso che lo vai cercare tramite un Find nella proprietà Text...  ;D

Credo però di non aver compreso bene la tua domanda...

Vuoi conoscere l'indice del valore selezionato, oppure il valore stesso?

Nel primo caso a che ti serve? Ad ogni modo basta che ti crei prima un array con i filtri, che poi interroghi una volta selezionata l'estensione dalla dialog.
Titolo: Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: vuott - 17 Aprile 2012, 16:49:08
Nel senso che lo vai cercare tramite un Find nella proprietà Text...  ;D

Non è proprio quello che cerco, poiché facendo:
Codice: gambas [Seleziona]

Dialog.Filter = ["*.xxx", "*.yyy"]

Print Dialog .Filter.Find("*.yyy")

in console ottengo la posizione del valore presente nell'array da me richiamato; in questo caso sarebbe: 1 .


Vuoi conoscere l'indice del valore selezionato, oppure il valore stesso?
...«la seconda che hai detto !»


Credo però di non aver compreso bene la tua domanda...
In pratica vorrei che, quando nella finestra scelgo il tipo di estensione, apparisse nell'altro campo della finestra, dedicato all'immissione del nome del file, l'estensione di volta in volta prescelta.

Fino ad ora ho trovato solo questo modo:
Codice: gambas [Seleziona]

......
Dialog.Filter = ["*.xxx", "File XXX", "*.yyy", "File YYY"]

Dialog.Path = "/un_percorso_qualsiasi/*.xxx"

If Dialog.SaveFile() Then Return
......

Alla prima apertura della finestra di dialogo è impostata l'estensione .xxx, e conseguentemente nel relativo campo del nome del file appaiono i caratteri: *.xxx.
Noto che cambiando nel Combo il tipo di file, e quindi di estensione (nell'esempio: .yyy), nel relativo campo del nome del file appaiono i caratteri attinenti all'altra estensione *.yyy . Mi sembra, però, che non funziona con il metodo .OpenFile.
Titolo: Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: md9327 - 18 Aprile 2012, 10:32:41
Allora non ho capito una cippa... ;D

Per campo di immissione ingtendi quello della dialog, giusto? Nel qual caso la cosa viene gestista dalla classe medesima, per cui se ne vuoi modificare il comportamento devi creartene una tua.
Se invece vuoi che ti venga notificato il cambio di estensione dalla dialog, per poter effettuare presentazioni in altre parti del tuo codice, allora la cosa credo sia NON fattibile, in quanto la dialog è per sua natura modale, e per cui si appropria degli eventi applicativi, lasciando a bocca asciutta tutto il resto.

...sempre se ho capito bene (sai com'è, stò periodo sono un pò fuori, quasi come ceskho...  ;D )
Titolo: Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: vuott - 18 Aprile 2012, 11:31:56
...sempre se ho capito bene (sai com'è, stò periodo sono un pò fuori, quasi come ceskho...  ;D )
...sembra davvero che in questo forum essere Moderatori leda gravemente alla propria salute !  :P
Titolo: Re: [Risolto] Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: md9327 - 18 Aprile 2012, 11:41:11
E' una malattia degenerativa... guarda come stà ceskho!  :rotfl: :rotfl: :rotfl:
Titolo: Re: [Risolto] Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
Inserito da: vuott - 06 Marzo 2013, 23:34:29
.... ritorno su questa mia precedente discussione ritenendo di aver finalmente risolto così:

Codice: gambas [Seleziona]
Private percorso As String


Public Sub Form_Open()

 percorso = "*.*"

End


Public Sub Button1_Click()

  With Dialog
    .Filter = ["*." & File.Ext(percorso), "File "])
    If OpenFile() Then Return   ' oppure ".SaveFile"
    percorso = .Path
    ..........
  End With
 
End