French choisir un fichier

fgh3966

Active Member
Licensed User
Bonjour

En recherchant des exemples afin de traiter des fichiers, je trouve souvent des exemples avec ce code source su genre : (File.dirrootexternal,"my.CSV",",") , mais j'utilise ContentChooser et le problème c'est que je n'arrive pas a adapter le code.
Par exemple :
exemple:
For Each Row() As String In su.LoadCSV (File.dirrootexternal,"my.CSV",",")
' You can access the LINE with
' dim s as string = Row(0) ' 1. line
'dim values() as string = Row(0) ' get the columns from one line...
' use values to the access the columns... 0 to x (values(0) 1st column, value(1) the second....)
For Each n As String in Row
   Log(n)
Next
Next

et moi j'utilise

exemple:
Private Sub LoadCSV_Click   
    #if B4A
    Wait For (FileHandler1.Load) Complete (Result As LoadResult)
    #else if B4i
    Wait For (FileHandler1.Load(Me, B4XPages.GetNativeParent(Me).TopRightButtons.Get(1))) Complete (Result As LoadResult)
    #end if
    'txtField.textfield.enabled = True
    HandleLoadResult(Result)
End Sub

Si j'ai bien compris le code que j'utilise génère ou transforme une variable string, ce qui est différent de ce que fait :For Each Row() As String In su.LoadCSV (File.dirrootexternal,"my.CSV",",")

Comment peut on procéder ?
Merci d'avance.
 

Cableguy

Expert
Licensed User
Longtime User
Bonjour

En recherchant des exemples afin de traiter des fichiers, je trouve souvent des exemples avec ce code source su genre : (File.dirrootexternal,"my.CSV",",") , mais j'utilise ContentChooser et le problème c'est que je n'arrive pas a adapter le code.
Par exemple :
exemple:
For Each Row() As String In su.LoadCSV (File.dirrootexternal,"my.CSV",",")
' You can access the LINE with
' dim s as string = Row(0) ' 1. line
'dim values() as string = Row(0) ' get the columns from one line...
' use values to the access the columns... 0 to x (values(0) 1st column, value(1) the second....)
For Each n As String in Row
   Log(n)
Next
Next

et moi j'utilise

exemple:
Private Sub LoadCSV_Click  
    #if B4A
    Wait For (FileHandler1.Load) Complete (Result As LoadResult)
    #else if B4i
    Wait For (FileHandler1.Load(Me, B4XPages.GetNativeParent(Me).TopRightButtons.Get(1))) Complete (Result As LoadResult)
    #end if
    'txtField.textfield.enabled = True
    HandleLoadResult(Result)
End Sub

Si j'ai bien compris le code que j'utilise génère ou transforme une variable string, ce qui est différent de ce que fait :For Each Row() As String In su.LoadCSV (File.dirrootexternal,"my.CSV",",")

Comment peut on procéder ?
Merci d'avance.
Bonjour,

Meme si les 2 codes realisent la meme tache, ils le font de façons bien differente.
le premier code, avec file.DirRootExternal tu specifies le nom du fichier et sa localisation.
Dans le deuxieme (content choser) tu vas donner au utilisateur la possibilité de choisir le fichier et ainsi sa localisation.
Je t'invite d'abord a bien comprendre comment le content chooser fonctionne.
 
  • Like
Reactions: zed

zed

Active Member
Licensed User
Pour info, la 1ère version ne doit pas être utilisée.
1ère raison DirRootExternal ne peut plus être utilisé.
2ème raison, c'est que tu dois être certain que le fichier existe. Si le fichier est absent, c'est le crash.

La 2ème version, permet à l'utilisateur de sélectionné un fichier. Dans ce cas, pas d'erreur possible, c'est certain que le fichier existe.

La 1ère version charge et boucle le fichier csv en même temps.
La 2ème version, 1 tu charges le fichier et 2 tu boucles.

Tu dois juste te concentrer sur ContentChooser. L'autre version est une perte de temps. Ca ne sert PLUS à rien
 
Last edited:
Top