Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    53

    [vb6] problema con commondialog e apertura file multipli.

    Salve ragazzi.
    In un programma uso la commondialog per aprire dei file di testo ed ho abilitato i seguenti flag:

    codice:
    CommonDialog1.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer + cdlOFNHideReadOnly
    Dopo aver selezionato i file, andando a vedere la proprietà FileName della commondialog, mi ritrovo una stringa di questo tipo:

    d:\path dei file selezionatifile1file2file3

    Le MSDN dicono semplicemente che se si abilita il flag: cdlOFNAllowMultiselect (Selezione multipla dei file) con il flag cdlOFNExplorer (visualizzazione stile windows explorer), il separatore tra i file non è lo spazio ma il carattere null.

    Il (mio) problema è che in fase di RunTime non posso fare la split della proprietà FileName della commondialog, con il carattere  e quindi non ho modo di ricavare i nomi dei file, aggravante, i file che devo trattare sono tutti senza estensione.

    Come posso risolvere?

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Originariamente inviato da A\|dR3\V
    Il (mio) problema è che in fase di RunTime non posso fare la split della proprietà FileName della commondialog, con il carattere 
    Perchè no ?
    Il carattere di separazione è vbNullChar
    codice:
    Dim StrTemp As String
    Dim CartellaSelezione As String
    Dim File() As String
    Dim Cont As Long
    
    CD.FileName = ""
    CD.Flags = &H80204
    CD.ShowOpen
    StrTemp = CD.FileName
    
    If (Len(StrTemp) > 0&) Then
      If (InStr(1, StrTemp, vbNullChar) > 0&) Then
        CartellaSelezione = Left$(StrTemp, InStr(1&, StrTemp, vbNullChar))
        StrTemp = Mid$(StrTemp, InStr(1&, StrTemp, vbNullChar) + 1&)
        File = Split(StrTemp, vbNullChar)
      Else
        CartellaSelezione = Left$(StrTemp, InStr(1&, StrTemp, "\"))
        StrTemp = Mid$(StrTemp, InStr(1&, StrTemp, "\") + 1&)
        ReDim File(0)
        File(0) = StrTemp
      End If
    
      MsgBox "Cartella :" & vbCrLf & vbCrLf & CartellaSelezione
      For Cont = 0& To UBound(File)
        MsgBox "File " & CStr(Cont + 1&) & " :" & vbCrLf & vbCrLf & File(Cont)
      Next Cont
    End If
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    53
    ok.
    come non detto. :rollo: :rollo:
    funziona perfettamente, è solo che prima facevo:
    codice:
    source = Split(filename1, "")
    invece di
    codice:
    source = Split(filename1, vbNullChar)
    grazie mille!!


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.