Autore Topic: [Risolto] Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile  (Letto 932 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
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 ?
« Ultima modifica: 18 Aprile 2012, 11:32:18 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
« Risposta #1 il: 16 Aprile 2012, 13:58:09 »
...per il valore???...  ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
« Risposta #2 il: 16 Aprile 2012, 18:59:52 »
...per il valore???...  ;D

...in che...zenzo ?  :rolleyes:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
« Risposta #3 il: 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.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
« Risposta #4 il: 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.
« Ultima modifica: 14 Dicembre 2012, 11:57:39 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
« Risposta #5 il: 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 )

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Ottenere l'estensione del tipo di file scelto in Dialog.SaveFile
« Risposta #6 il: 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
« Ultima modifica: 06 Marzo 2013, 23:34:55 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
E' una malattia degenerativa... guarda come stà ceskho!  :rotfl: :rotfl: :rotfl:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
.... 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
« Ultima modifica: 06 Marzo 2013, 23:37:48 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »