Newsgroup: it.comp.lang.visual-basic
Titolo: LISTBOX E COMMONDIALOG

ciao, ho un problema che non riesco a risolvere. In un progetto ho inserito
un commondialog e le ho dato la flag AllowMultiSelect che permette di aprire
più di un file. Ho inserito poi un codice che aggiunge il file aperto in una
listbox. Il problema è che se apro più di un file vedo nella listbox un solo
elemento che è la loro cartella. Come posso fare a fare apparire i file in
tanti elementi separati?

 ha scritto nel messaggio
news:bbQ0a.92133$YG2.2...@twister1.libero.it...


 di file per volta e nessuno vorrebbe aprirli uno per uno
Infatti mica dicevo uno alla volta in quel senso, intendevo dire che con la
list puoi ciclare i file selezionati uno per uno!
Cioè i files selezionati (quanti vuoi) non ti verranno restituiti in
un'unica stringa, ma uno per uno
ciaociao


 
   Ma non è vero che sono separati da spazi!!!
   Sono separati dal caratteri chr$(0)!!!!
   In pratica la stringa che file name restituisce è cosi :
   path+chr$(0)+file1+chr$(0)+file2+chr$(0)+...fileN
   basta che fai una spilt per chr$(0) e il gioco è fatto, hai un Array fatto
cosi:
   array(0) = path
   array(1) = file1
   array(2) = file2
   ...
   array(n) = fileN
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

    path+chr$(0)+file1+chr$(0)+file2+chr$(0)+...fileN
scusa, ma ho provato e il risultato è
path+chr$(32)+file1+chr$(32)+file2+chr$(32)+...fileN


  Aggiungi questa costante alla proprietà Flags della commonDialog :
    cdlOFNExplorer
  in pratica
    CD1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
  e riprova.


 Ciao
ciaociao

 (path+nomefile+estenzione)
  Non è possibile!!!!
  Come fai a vedere che cosa ti ritorna la prop. FileName?


 Ciao
ciaociao


  E chi ti dice che quello che vedi tra il path e i file sia uno spazio?
  invece di debug.print scrivi solo print e stampalo sul form vedrai che
quelli non sono spazi.


 quelli non sono spazi.
1) A parte il fatto che con la costante che mi hai detto di aggiungere i
files non li vedo proprio
2) Togliendo la costante (e quindi vedo i files) ho fatto cosi:
apro un file che sta in "c:\" e si chiama "pippo.txt" e in s_input c'è "c:\
pippo.txt".
se poi scrivo nella finestra immediata:
?mid(s_input,4,1)=chr$(0)
ottengo FALSE
se scrivo
?mid(s_input,4,1)=chr$(32)
ottengo TRUE


 ottengo TRUE
E questo invece è strano.
Sei sicuro?
Anche a me risulta che il separatore quando ci sono almeno due file
selezionati sia CHR$(0)
Ciao
Alberto

 Sei sicuro?
The cdlOFNExplorer and cdlOFNNoDereferenceLinks flags work only under
Windows 95, Windows NT 4.0, or later versions. Multiselect common dialogs
under Windows 95/98 using cdlOFNExplorer use null characters for delimiters.
Under both Windows NT 4.0 and Windows 95 (and later versions), if you do not
choose the cdlOFNAllowMultiselect flag, then both the cdlOFNExplorer and
cdlOFNLongNames flags have no effect and are essentially the default.
If you use the cdlOFNAllowMultiselect flag by itself under both Windows NT
4.0 and Windows 95 (and later versions), you will not have support for long
filenames. This is because the multiple filenames come back space delimited
and long filenames could include spaces. You cannot avoid this behavior if
you have Windows NT 3.5. If you use cdlOFNAllowMultiselect, you cannot see
long filenames. If you add the cdlOFNExplorer flag under Windows 95 or
later, you will be able to both multiselect and see long filenames. But the
filenames come back null character delimited and not space delimited.
Credo quindi che si parli della stessa cosa ma su sistemi operativi
diversi...
Ciao
Alberto

 ha
scritto:

 mmmm...me stai a dì che Marg c'ha NT 3.5? Ma LoL!!!!
Ciaoo


 Ciaoo
ciaociao


 cosa puo' essere stato???
 bho...ciaooo


  bho...ciaooo
ok, lo scoprirò da solo!
Ciaociao


il carattere che separa č chr$(0)
adesso vi posto il mio codice cosě vedete...
Dim tmpvar() As String, strnga As String, strr(0 To 10000) As String, xxy As
Integer
Private Sub Aggiungi_Click()
With cdialog 'Common dialog
    .Filter = "File mp3 | *.mp3"
    .Flags = cdlOFNFileMustExist Or cdlOFNPathMustExist Or
cdlOFNAllowMultiselect Or cdlOFNExplorer
    .FileName = ""
    .ShowOpen
End With
nomef = cdialog.FileName
If nomef <> "" Then
    strnga = Replace(nomef, Chr(0), Chr(13))    'Se non metto questo la
prossima sub non funziona
    Call divstr(strnga)
End If
End Sub
Private Sub divstr(strn as string)
xxy = 0
tmpvar = Split(strn, Chr(13))
For Each tmp In tmpvar
xxy = xxy + 1
strr(xxy) = tmp
Next
    If xxy >= 2 Then
    For cntaa = 2 To xxy
        elenco.AddItem (strr(1) & "\" & strr(cntaa))
    Next
    Else: elenco.AddItem (nomef)
    End If
Questo funziona, ho gia provato
Ciao, Devaraja