Fichier vers tableau[RESOLU]
Fichier vers tableau[RESOLU]
Bonsoir
Encore un truc que j'ai du zapper ,veuillez m'en excuser.
Comment peut on charger des fichiers que j'ai sur mon DD (des noms d'oiseaux et d'especes) dans des tableaux .
Merci
Encore un truc que j'ai du zapper ,veuillez m'en excuser.
Comment peut on charger des fichiers que j'ai sur mon DD (des noms d'oiseaux et d'especes) dans des tableaux .
Merci
Dernière modification par ach le sam. 13/févr./2021 17:33, modifié 1 fois.
Re: Fichier vers tableau
Tout depend de comment sont ecris et stockés tes noms d'oiseaux !
regarde du côté de DIM, MAP voir même LIST
Mais donne nous un exemple de contenu ce sera plus aisé
regarde du côté de DIM, MAP voir même LIST
Mais donne nous un exemple de contenu ce sera plus aisé
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Fichier vers tableau
bonjour,
une manière de procéder avec une liste chainée (sur des images)
après relecture j'ai peut être pas compris la question mais je laisse l'exemple qui permet de recuperer les noms de fichiers dans un répertoire tout de mème
une manière de procéder avec une liste chainée (sur des images)
après relecture j'ai peut être pas compris la question mais je laisse l'exemple qui permet de recuperer les noms de fichiers dans un répertoire tout de mème
Code : Tout sélectionner
dir$=GetUserDirectory(#PB_Directory_Pictures) ; remplacer le contenu de dir$ par le chemin du repertoire a lire
ExamineDirectory(1,dir$,"*.*") ;
NewList files.s()
Repeat
If NextDirectoryEntry(1)
If DirectoryEntryType(1)=1
ext$=LCase(GetExtensionPart(dir$+"\"+DirectoryEntryName(1)))
Select ext$
Case"jpg","png","bmp","tif"
AddElement(files())
files()=DirectoryEntryName(1)
EndSelect
EndIf
Else
Break
EndIf
ForEver
ForEach files()
Debug files()
Next
Re: Fichier vers tableau
fichiers text (moineaurougegorgegrimpereaumesange grise etc) (passereaux rapaces perroquets....)Ar-S a écrit :Tout depend de comment sont ecris et stockés tes noms d'oiseaux !
regarde du côté de DIM, MAP voir même LIST
Mais donne nous un exemple de contenu ce sera plus aisé
je voudrais recuperer tout cela dim oiseaux(50),dim especes(20)
Re: Fichier vers tableau
si il n'y a pas de séparateur entre les noms ça vas être compliquéach a écrit :fichiers text (moineaurougegorgegrimpereaumesange grise etc) (passereaux rapaces perroquets....)
se serait plus simple avec
moineau,rouge gorge,grimpereau,mésange grise
par exemple.
Re: Fichier vers tableau
bsr à tous
Pour me part le mieux serait de tous mettre dans des listes pour
faire les tris sauver au format.csv ou en datas
et ensuite créér une base données SQL.
Cordialement
Pour me part le mieux serait de tous mettre dans des listes pour
faire les tris sauver au format.csv ou en datas
et ensuite créér une base données SQL.
Cordialement
Dernière modification par kernadec le dim. 07/févr./2021 22:36, modifié 1 fois.
Re: Fichier vers tableau
avec des , comme separateur par exemple.
Code : Tout sélectionner
Dim contenu.s(50)
If OpenFile(1,"fichier.txt")
pos=0
Repeat
r$=ReadString(1)
nb=CountString(r$,",")
For rd=1 To nb+1
contenu(pos)=StringField(r$,rd,",")
pos+1
Next
Until Eof(1)
closefile(1)
EndIf
For a=0 To 50
Debug Str(a)+" - "+contenu(a)
Next
Dernière modification par case le mer. 10/févr./2021 19:02, modifié 1 fois.
Re: Fichier vers tableau
Le mode de récupération des données du fichier txt avec séparateurs et findstring() est le plus simple.
Après pour le traitement tu as plein de solutions.
Exemple avec des maps
La même chose avec une Macro pour simplifier la syntaxe d'ajout d'oiseau, le résultat est le même.
Après pour le traitement tu as plein de solutions.
Exemple avec des maps
Code : Tout sélectionner
Structure Oiseau
Nom.s ; Nom scientifique..
Type.s ; rapace etc
Vie.s ; diurne/nocturne
EndStructure
NewMap Espece.Oiseau()
; Ici, nous utilisons l'élément courant après l'insertion du nouvel élément
;
Espece("Moineau")\Nom = "Moineaunus Turbiculé"
Espece()\type = "mini oiseau"
Espece()\vie = "Diurne"
Espece("Buse")\Nom = "Busetis Aucunidée"
Espece()\type = "Rapace"
espece()\vie = "Diurne"
ForEach Espece()
Debug "Nom de l'oiseau: "+MapKey(Espece())
Debug "Nom scientifique: "+Espece()\nom
Debug "Types: "+Espece()\Type.s
Debug "Vie: "+Espece()\vie.s
Debug ""
Next
Code : Tout sélectionner
Structure Oiseau
Nom.s ; Nom scientifique..
Type.s ; rapace etc
Vie.s ; diurne/nocturne
EndStructure
NewMap Espece.Oiseau()
; Macro pour simplifier la syntaxe d'ajout d'oiseau
Macro AddOiseau(N,NS,T,V)
Espece(N)\Nom = NS
Espece()\type = T
Espece()\vie = V
EndMacro
; ---------------------------------------------------
; Ici, nous utilisons l'élément courant après l'insertion du nouvel élément
;
AddOiseau("Moineau","Moineaunus Turbiculé", "mini oiseau", "Diurne")
AddOiseau("Buse", "Busetis Aucunidée", "Rapace", "Diurne")
ForEach Espece()
Debug "Nom de l'oiseau: "+MapKey(Espece())
Debug "Nom scientifique: "+Espece()\nom
Debug "Types: "+Espece()\Type.s
Debug "Vie: "+Espece()\vie.s
Debug ""
Next
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Fichier vers tableau
Merci à vous je vais aller tester tout cela.Ar-S a écrit :Le mode de récupération des données du fichier txt avec séparateurs et findstring() est le plus simple.
Après pour le traitement tu as plein de solutions.
Exemple avec des maps
La même chose avec une Macro pour simplifier la syntaxe d'ajout d'oiseau, le résultat est le même.Code : Tout sélectionner
Structure Oiseau Nom.s ; Nom scientifique.. Type.s ; rapace etc Vie.s ; diurne/nocturne EndStructure NewMap Espece.Oiseau() ; Ici, nous utilisons l'élément courant après l'insertion du nouvel élément ; Espece("Moineau")\Nom = "Moineaunus Turbiculé" Espece()\type = "mini oiseau" Espece()\vie = "Diurne" Espece("Buse")\Nom = "Busetis Aucunidée" Espece()\type = "Rapace" espece()\vie = "Diurne" ForEach Espece() Debug "Nom de l'oiseau: "+MapKey(Espece()) Debug "Nom scientifique: "+Espece()\nom Debug "Types: "+Espece()\Type.s Debug "Vie: "+Espece()\vie.s Debug "" Next
Code : Tout sélectionner
Structure Oiseau Nom.s ; Nom scientifique.. Type.s ; rapace etc Vie.s ; diurne/nocturne EndStructure NewMap Espece.Oiseau() ; Macro pour simplifier la syntaxe d'ajout d'oiseau Macro AddOiseau(N,NS,T,V) Espece(N)\Nom = NS Espece()\type = T Espece()\vie = V EndMacro ; --------------------------------------------------- ; Ici, nous utilisons l'élément courant après l'insertion du nouvel élément ; AddOiseau("Moineau","Moineaunus Turbiculé", "mini oiseau", "Diurne") AddOiseau("Buse", "Busetis Aucunidée", "Rapace", "Diurne") ForEach Espece() Debug "Nom de l'oiseau: "+MapKey(Espece()) Debug "Nom scientifique: "+Espece()\nom Debug "Types: "+Espece()\Type.s Debug "Vie: "+Espece()\vie.s Debug "" Next
Re: Fichier vers tableau
Bonsoircase a écrit :avec des , comme separateur par exemple.Code : Tout sélectionner
Dim contenu.s(50) If OpenFile(1,"fichier.txt") pos=0 Repeat r$=ReadString(1) nb=FindString(r$,",") For rd=1 To nb+1 contenu(pos)=StringField(r$,rd,",") pos+1 Next Until Eof(1) closefile(1) EndIf For a=0 To 50 Debug Str(a)+" - "+contenu(a) Next
J'ai un probleme et ne trouve pas l'issue:
Le programme me" debug" 9 dates sur 20,10 achats sur 20 et 6 prix sur 20???
Où je me trompe ?
Merci encore pour votre aide
Code : Tout sélectionner
Dim contenu$(50)
If OpenFile(1,"Datachats.txt")
pos=0
Repeat
r$=ReadString(1)
nb=FindString(r$,",")
For rd=1 To nb+1
contenu$(pos)=StringField(r$,rd,",")
pos+1
Next
Until Eof(1)
CloseFile(1)
EndIf
For a=0 To 50
Debug Str(a)+" - "+contenu$(a)
If contenu$(a)=""
Break
EndIf
Next
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Dim contenu$(50)
If OpenFile(1,"Achats.txt")
pos=0
Repeat
r$=ReadString(1)
nb=FindString(r$,",")
For rd=1 To nb+1
contenu$(pos)=StringField(r$,rd,",")
pos+1
Next
Until Eof(1)
CloseFile(1)
EndIf
For a=0 To 50
Debug Str(a)+" - "+contenu$(a)
If contenu$(a)=""
Break
EndIf
Next
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Dim contenu$(50)
If OpenFile(1,"Prixachats.txt")
pos=0
Repeat
r$=ReadString(1)
nb=FindString(r$,",")
For rd=1 To nb+1
contenu$(pos)=StringField(r$,rd,",")
pos+1
Next
Until Eof(1)
CloseFile(1)
EndIf
For a=0 To 50
Debug Str(a)+" - "+contenu$(a)
If contenu$(a)=""
Break
EndIf
Next
; Mon fichier Datachats.text
; Janvier,Janvier,Janvier,Janvier,Janvier,Fevrier,Fevrier,Fevrier,Fevrier,Fevrier,Mars,Mars,Mars,Mars,Mars,Avril,Avril,Avril,Avril,Avril,
; Mon fichier Achats.text
; Friskies,Cartouche d'encre,Petrole,Cafe,Pain,Friskies,Cartouche d'encre,Petrole,Cafe,Pain,Friskies,Cartouche d'encre,Petrole,Cafe,Pain,Friskies,Cartouche d'encre,Petrole,Cafe,Pain,Friskies,Cartouche d'encre,Petrole,Cafe,Pain,
; Mon fichier Prixachats.text
; 3.13,21.99,14.97,4.31,2.50,3.13,21.99,14.97,4.31,2.50,3.13,21.99,14.97,4.31,2.50,3.13,21.99,14.97,4.31,2.50,3.13,21.99,14.97,4.31,2.50,
Re: Fichier vers tableau
salut, je devais être fatigué, il faut remplacer findstring(r$,",") par CountString(r$,",")
car findstring(r$,",") renvoi la position de la virgule la plus a gauche de la chaine.
alors que CountString(r$,",") renvoi le nombre de virgules dans la chaine ce qui donne le nombre d'elements a recuperer avec stringfield.
désolé
car findstring(r$,",") renvoi la position de la virgule la plus a gauche de la chaine.
alors que CountString(r$,",") renvoi le nombre de virgules dans la chaine ce qui donne le nombre d'elements a recuperer avec stringfield.
désolé
Re: Fichier vers tableau
T'excuses pas...J'aurais du aller voir dans l'aide la def de findstring et countstring.case a écrit :salut, je devais être fatigué, il faut remplacer findstring(r$,",") par CountString(r$,",")
car findstring(r$,",") renvoi la position de la virgule la plus a gauche de la chaine.
alors que CountString(r$,",") renvoi le nombre de virgules dans la chaine ce qui donne le nombre d'elements a recuperer avec stringfield.
désolé
maintenant c'est parfait cela fonctionne trés bien.
Merci
Re: Fichier vers tableau
Cool.
Tu peux ajouter [RESOLU] dans le titre de ton 1er sujet.
Tu peux ajouter [RESOLU] dans le titre de ton 1er sujet.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Fichier vers tableau (resolu)
ach a écrit :Bonsoir
Encore un truc que j'ai du zapper ,veuillez m'en excuser.
Comment peut on charger des fichiers que j'ai sur mon DD (des noms d'oiseaux et d'especes) dans des tableaux .
Merci
Re: Fichier vers tableau
bsr ach
je te copie l'exemple de l'aide voir l'onglet File du manuel
Readfile() devrait faire l'affaire pour la lecture seule
cordialement
je te copie l'exemple de l'aide voir l'onglet File du manuel
Readfile() devrait faire l'affaire pour la lecture seule
cordialement
Code : Tout sélectionner
If CreateFile(0, "Test.txt") ; Crée un nouveau fichier vide ou recrée une fichier vide s'il existe déjà
FileSeek(0, Lof(0)) ; Place le pointeur à la fin du fichier en utilisant le résultat de Lof()
WriteStringN(0, "... une autre ligne à la fin du fichier.")
CloseFile(0)
EndIf
If ReadFile(0, "Test.txt") ; Si le fichier peut être lu , on continue...
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
Debug ReadString(0) ; Affiche du fichier
Wend
CloseFile(0) ; Ferme le fichier précédemment créé ou ouvert
Else
MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf