French lecture d'un fichier text sur reseau local

logemag

Member
Licensed User
Longtime User
Bonjour, je cherche à lire un fichier txt sur un ordinateur en réseau local, pour cela je me sers de la superbe librairie SMB, j'arrive à avoir l’arborescence sans problème, mais je n'arrive pas à lire en direct un simple fichier text d'une seule ligne, mon code pour simplifier :

B4X:
Sub Process_Globals
Dim SMB1 As SMB
End Sub

Sub Globals
dim x, y as string
End Sub

Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then
        SMB1.Initialize("SMB1")
    End If
       SMB1.ListFiles("smb://MONPC-PC/Users/Public/Documents/", "*.txt")
End Sub

Sub SMB1_ListCompleted(Url As String, Success As Boolean, Entries() As SMBFile)
If Not(Success) Then 
   ToastMessageShow(LastException, False)
Else
   For z = 0 To Entries.Length -1
      Log("*********************")
      Log("URL = " & Url)
      Log("Entries("& z &") = " & Entries(z).Name) 
   Next
   x = File.ReadString(Url, Entries(0).Name)   
   Log(x)
   y = File.ReadString(Url, Entries(1).Name)   
   Log(y)   
End If
End Sub

dans le log il me retourne bien les bonnes valeurs :
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
*********************
URL = smb://MONPC-PC/Users/Public/Documents/
entries(0) = test1.txt
*********************
URL = smb://MONPC-PC/Users/Public/Documents/
entries(1) = test2.txt

main_smb1_listcompleted (B4A line: 23)
x = File.ReadString(Url, Entries(0).Name)

mais il me renvoie l'erreur qu'il n'arrive pas à lire x, pourtant l'url est bonne et le fichier existe ! je ne comprends pas l'erreur. En débug il me souligne en rouge :

LastException.java.io.FileNotFoundException:/smb:/MONPC-PC/Users/Public/Documents/test1.txt(No such file or directory)

Je ne cherche pas à le télécharger sur mon Doïd, mais juste le lire en live... Merci d'avance !
 
Last edited:

logemag

Member
Licensed User
Longtime User
Merci Klaus, c'est pas grave, j'enregistre le fichier sur DirRoot... et le supprime ensuite après interprétation des données, et ça marche parfaitement. j'attendais une librairie comme ça depuis longtemps, mon projet oblige une interconnexion entre un log crée en VB et une base Androïd, ça m'aide beaucoup !

Juste une question comme ça, comment serait-il possible de rechercher les PCs connectés au réseau local ? en fait trouver leurs noms comme dans la recherche réseau de windows ?
 

venj

Member
Licensed User
Longtime User
Bonjour à vous,

Je comprends qu'on ne puisse peut-être pas lire un fichier texte de façon « live » à partir, par exemple d'un disque dur connecté à notre réseau local (plus exactement connecté au port USB du routeur), donc qu'on doive le télécharger sur notre tablette avant de le lire n'est pas vraiment un inconvénient mais lorsqu'il s'agit d'une vidéo de plusieurs centaines de megs, ça devient beaucoup plus ardu surtout si ce n'est que pour vérifier si c'est le bon fichier en ne regardant que les quelques premières secondes de la vidéo en question.

Donc, ma question, est-ce qu'il y a un moyen de le faire ? (aller récupérer l'emplacement et le nom du fichier avec la librairie SMB et ensuite visionner « live » la vidéo avec, par exemple, VideoView ou VideoViewExt ou directement avec une application vidéo intégrée à Android à l'aide de « Intent »).

Je sais qu'une application comme ES Explorateur le fait très bien sur mon réseau (donc j'en conclu que c'est possible) mais j'aimerais bien pouvoir le faire à l'intérieur de MON application créée avec B4a.

Merci beaucoup,
venj
Québec, Canada
 
Top