Gambas-it

Gambas3 => Segnalazione bug => Topic aperto da: allegfede - 02 Febbraio 2017, 10:10:28

Titolo: [BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 02 Febbraio 2017, 10:10:28
vorrei segnalarmi che Rdir nel passaggio da Gambas 3.8.4 a Gambas 3.9.2 ha perso la possibilita' di scansionare cartelle remote.

Questo codice:
Codice: [Seleziona]
Public Sub Form_Open()
Dim oggetto As String
 
  For Each oggetto In RDir("/mnt/Stranamore/Dischi Stranamore 2007", "*.mp3")
    TextArea1.Text = oggetto & gb.CrLf & TextArea1.Text
  Next

End

restituiva con SUCCESSO i file mp3 nelle cartelle (e sottocartelle) con la versione 3.8.4
Ora invece non trova nulla.

Questo codice invece:
Codice: [Seleziona]
Public Sub Form_Open()
Dim oggetto As String
 
  For Each oggetto In RDir(user.home, "*.mp3")
    TextArea1.Text = oggetto & gb.CrLf & TextArea1.Text
  Next

End

funziona in entrambe le versioni
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: Gianluigi - 02 Febbraio 2017, 12:19:23
vorrei segnalarmi che Rdir nel passaggio da Gambas 3.8.4 a Gambas 3.9.2 ha perso la possibilita' di scansionare cartelle remote.

Questo codice:
Codice: [Seleziona]
Public Sub Form_Open()
Dim oggetto As String
 
  For Each oggetto In RDir("/mnt/Stranamore/Dischi Stranamore 2007", "*.mp3")
    TextArea1.Text = oggetto & gb.CrLf & TextArea1.Text
  Next

End

restituiva con SUCCESSO i file mp3 nelle cartelle (e sottocartelle) con la versione 3.8.4
Ora invece non trova nulla.


Forse perché cerchi nella cartella sbagliata, o con necessità di essere root? Potresti provare a vedere se così funziona:
Codice: [Seleziona]
RDir("/media/tuoNome/NomeDevice", "*.mp3")

 :ciao:
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 03 Febbraio 2017, 14:01:30
pero' con la versione 3.8.4 di gambas funziona sulla path inserita.

con la 3.9.2 subentra il problema.

come da: http://gambaswiki.org/bugtracker/edit?object=BUG.1074&from=L21haW4-

il sistema mi permette di fare il list : ls -la /path/remota

perche' l'ho mantata propio li con l'fstab

PS: su /media/mionomeutente non c'e' proprio nulla ne con nautilus ne da shell :-(
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: Gianluigi - 03 Febbraio 2017, 16:00:37
Ho visto che hai chiesto a Minisini, bene, vediamo cosa ci dice.
Io al contrario tuo se collego una pendrive non vedo nulla in /mnt, boh dipenderà dalla distribuzione.

 :ciao:
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 03 Febbraio 2017, 18:40:47
si la pendrive la mette in media (di solito linux), ma il mio e' un collegamento permanente ad un NAS. E nel nas c'e' uno share che monto all'avvio con una riga nell'FStab.

Il path di montaggio lo scegli tu nel file di configurazione fstab :D
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: kicco - 04 Febbraio 2017, 13:55:17
Citazione
E nel nas c'e' uno share che monto all'avvio con una riga nell'FStab.
per montare la cartella usi CIFS?
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 05 Febbraio 2017, 14:17:37
penso di si, dovrebbe esere cifs (e' uno share samba)
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: kicco - 05 Febbraio 2017, 17:41:05
Citazione
pero' con la versione 3.8.4 di gambas funziona sulla path inserita.
con la 3.9.2 subentra il problema.
Stessa  versione del sistema operativo?
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 06 Febbraio 2017, 13:05:40
identica versione del s.o.

se avete una condivisione samba, potete riprodurre il comportamento? Minisini non mi ha piu' risposto :-(
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: kicco - 06 Febbraio 2017, 13:41:37
Premetto che: non sono un esperto, ma ho sbattuto la testa prima con smb e poi con cifs. :hard:
È necessario che tu acceda alla cartella remota con le credenziali di root, non è meglio usare quelle di guest?
Io per accedere alle cartelle remote uso: ... cifs   guest,dir_mode=0777,file_mode=0777,_netdev   0 0, ovviamente preceduto dall'indirizzo della cartella di origine e seguito da quella di destinazione.
 :ciao:

Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 06 Febbraio 2017, 13:51:18
la condivisione la monto al boot con una riga apposita in fstab:
Citazione
//192.168.1.252/Stranamore /mnt/Stranamore cifs credentials=/root/.credQnap1,iocharset=utf8,file_mode=0777,_netdev,sec=ntlm,dir_mode=0777 0 0

In root c'e' un file di testo che contiene username e password di un utente che ha i giusti permessi per operare su quella cartella remota (e sue sottocartelle).
I permessi dell'utente sono settati nel software di gestione del nas.
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: kicco - 06 Febbraio 2017, 13:59:54
In root c'e' un file di testo che contiene username e password di un utente che ha i giusti permessi per operare su quella cartella remota (e sue sottocartelle).
OK!  Allora mi sembra tutto a posto :-\
Attendiamo cosa dirà Minisini... se dirà!
 :ciao:
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 06 Febbraio 2017, 17:55:15
mhh lo vedo latitante :D
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 08 Febbraio 2017, 19:35:27
minisini ....
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: kicco - 08 Febbraio 2017, 19:50:58
minisini ....
...se ci sei batti un colpo!!  :hatecomputer:   :hard:
Titolo: Re:[BUG] RDir non funziona su percorsi remoti
Inserito da: allegfede - 23 Febbraio 2017, 12:58:20
siccome ho reinstallato il sistema operativo, sto' riprovando a fare un debdel sistema.

Gambas 3.8.4 da repository ufficiali di Ubuntu - gnome, tutto va come deve essere (allegato 1)


oltre al fatto che questa procedura:
Codice: [Seleziona]
Public Sub Button_SubFolders_Click()
Dim Canzoni As String[]
Dim Canzone As String
Dim Radice As String
Dim contatore As Integer


  Dialog.Title = "Seleziona la cartella da cui vuoi iniziare la scansione."
  Dialog.Path = Label_MediaFolder.Text
  If Dialog.SelectDirectory() Then
     Return
     Else
       radice = Dialog.Path
       canzoni = RDir(radice, "*.mp3")       'carico solo i file mp3
       canzoni.Insert(RDir(radice, "*.ogg"))  ' .... e quelli .OGG
  Endif
 
  Me.Mouse = Mouse.Wait
 
  ProgressBar_scan.Value = 0
  contatore = 0
  For Each canzone In canzoni
    ProgressBar_scan.Value = contatore / canzoni.Count
    canzone = radice & "/" & canzone
    If PresenteInLista(canzone) = False Then  'in questo modo e' piu' veloce
      Label_Duration.Tag = ""
      GetInfo(canzone)
      AddSong(canzone)
    Endif
    contatore = contatore + 1
  Next
  Me.Mouse = Mouse.Arrow

  Message.Info("Completed scan of:" & gb.crlf & Radice & gb.CrLf & "and sub-folders!", "done")
End

Public Function PresenteInLista(path As String) As Boolean
Dim presente As Boolean = False
 
  ColumnView_Discoteca.MoveFirst
  Repeat
    'ColumnView_Discoteca.Item.Selected = True
    If ColumnView_Discoteca.Item[3] = path Then
      presente = True
      Break
    Endif

  Until ColumnView_Discoteca.Movenext()
 
  Return presente
End


Public Sub AddSong(path As String)
Dim chiave As String
 
  ' e' una canzone NUOVA e quindi la sua chiave NON e' l'id ma NEW e poi un contatore progressivo
  chiave = "new" & ColumnView_Discoteca.Count
 
  ColumnView_Discoteca.Add(chiave, "", PictureBox_New.Picture)
 
  ColumnView_Discoteca.Item[1] = TextBox_artist.Text
  ColumnView_Discoteca.Item[2] = TextBox_title.Text
  ColumnView_Discoteca.Item[3] = path
  ColumnView_Discoteca.Item[4] = TextArea_TAGS.Text
  ColumnView_Discoteca.Item[5] = Label_EntryIN.Text
  ColumnView_Discoteca.Item[6] = Label_EntryOUT.Text
  ColumnView_Discoteca.Item[7] = Label_DJ.Text
  ColumnView_Discoteca.Item[8] = False
  ColumnView_Discoteca.Item[9] = False
  ColumnView_Discoteca.Item[10] = TextBox_year.Text
  ColumnView_Discoteca.Item[11] = TextArea_Comments.Text
  ColumnView_Discoteca.Item[12] = Label_Duration.Text
 
End

Public Sub GetInfo(filepath As String)
Dim RitornoTAG As String
Dim aScan As String[]
Dim NomeFile As String

  NomeFile = File.BaseName(filepath)
 
  TextArea_Comments.Clear
  TextArea_TAGS.Clear
 
  Select Case LCase(File.Ext(filepath))
   
    Case "mp3"
      EstraiTagmp3(filepath)
     
      CalcolaDurata(filepath)
     
      Label_EntryIN.Text = "00:00:00"
      Label_EntryOUT.Text = Label_Duration.Text
      Label_DJ.Text = "00:00:00"
     
    Case "ogg", "flac"
      'EstraiTagmp3(filepath)

      Exec ["ogginfo", filepath] To RitornoTAG
      For Each RitornoTAG In Split(RitornoTAG, "\n")
        RitornoTAG = Trim(RitornoTAG)
        aScan = Scan(RitornoTAG, "*: *m:*s")
         If aScan.Count = 3 Then
          'Return CInt(CInt(aScan[1]) * 60 + CFloat(Replace(aScan[2], ",", ".")) + 0.5)
         Endif
      Next
     
      CalcolaDurata(filepath)
     
      Label_EntryIN.Text = "00:00:00"
      Label_EntryOUT.Text = Label_Duration.Text
      Label_DJ.Text = "00:00:00"
     
  End Select

sembra mandare in crash Gambas (e mi ricordo che fosse proprio questa la molla che mi convinse a passare all'ultima release del linguaggio), con questo messaggio:
Citazione
** Oops! Internal error! **
** Cannot create signal handler pipes: Troppi file aperti
** Program aborting. Sorry! :-(
** Please send a bug report at gambas@users.sourceforge.net