PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Comment remplir un tableau à partir d'un fichier externe
Comment remplir un tableau à partir d'un fichier externe
Iniciado por dell, 03,mar. 2018 13:02 - 8 respuestas
Miembro registrado
7 mensajes
Publicado el 03,marzo 2018 - 13:02
bonjour a tous

je suis pratiquement désespérée je n'arrive pas a trouver comment remplir une table de ma base à partir d'un fichier qui se trouve dans un des répertoires de mon PC. Je m'explique : je veux qu'à partir d'un bouton que je clic , une fenetre me dirigeant dans le répertoire de mon pc contenant le fichier s'ouvre, je voudrais que la sélection se fasse automatiquement et puisse par la même occasion importer toutes les données de ce fichier dans ma table.

prière de m'aider svp
Merci

--
byme
Miembro registrado
1.002 mensajes
Publicado el 03,marzo 2018 - 13:37
bonjour,

regarde les fonction fselecteur et himportetexte, si tu trouves ton bonheur

jordan
Miembro registrado
7 mensajes
Publicado el 03,marzo 2018 - 14:04
j'ai déjà essayer ces deux fonctions et toujours rien.je les utilisé comme pas possible mais ça n'importe toujours pas les données de mon fichier dans ma table

--
byme
Miembro registrado
1.002 mensajes
Publicado el 03,marzo 2018 - 19:12
montre ton code pour voir ce que tu as fait.

de plus tu ne dit quel fichier tu veux utiliser pour remplir ta "table" (base de donnée ou table physique à l'affichage) ?

jordan
Miembro registrado
7 mensajes
Publicado el 07,marzo 2018 - 15:28
Bonjour

je veux utiliser un fichier txt qui se trouve sur mon disque C, le principe est que lorsque je clique sur mon bouton la fenêtre Windows où se trouve mon fichier s'ouvre , lorsque je le sélectionne , mon tableau se rempli automatiquement selon les informations du fichier.
IDFichier est un entier
ligne est une chaîne

// Ouverture d'un fichier externe
IDFichier = fOuvre("C:\Test\tjf.txt", foLectureEcriture)

TANTQUE ligne <>EOT ET ligne <>""

TableAjouteLigne(TABLE_Ritable)
TableEnregistre(TABLE_Ritable)


--
byme
Miembro registrado
1.002 mensajes
Publicado el 07,marzo 2018 - 16:20
En partant du prince que ton fichier texte est structuré avec chaque ligne separée par un RC et chaque colonne separée par un ";"

Tu peux faire
sFichier est une chaîne = fChargeTexte(fSélecteur("", "", "Sélectionnez un fichier...", "Tous les fichiers (*.*)" + TAB + "*.*", "*.*"))
SI sFichier <> "" ALORS
TableSupprimeTout(table_Ritable)
POUR TOUTE chaîne sLigne de sFichier SEPAREE PAR RC
TableauAjouteLigne(Table_Ritable,ExtraitChaîne(sLigne,1,";")) /// je ne sais pas la structure de ta table
FIN
FIN


C'est un exemple
Miembro registrado
7 mensajes
Publicado el 07,marzo 2018 - 17:17
a mon grand désespoir ce code ne passe pas, ma table est constitué de 13 colonnes. Mon tableau respecte la même structure que le fichier , donc normalement le remplissage ne devrait pas temps être compliqué

je vous montre le code que j'utilise pour sélectionner le fameux fichier , qui ensuite me montre le chemin dans un libellé saisie et qui normalement devrait par la même occasion remplir mon table :(;(
NomCheminFichier est une chaîne
NomCheminFichier = fSélecteur("Test","*.txt","","txt","txt",fselOuvre)

Info(NomCheminFichier)

SAI_Chemin..Valeur=NomCheminFichier


--
byme
Mensaje modificado, 07,marzo 2018 - 17:18
Miembro registrado
1.002 mensajes
Publicado el 07,marzo 2018 - 17:40
Ta table est rempli comment ? par programmation ?

tu me dit que ta table a 13 colonne donc voila un code avec 13 colonnes parce que clairement le code fonctionne je l'utilise tous les jours
sFichier est une chaîne = fChargeTexte(fSélecteur("", "", "Sélectionnez un fichier...", "Tous les fichiers (*.*)" + TAB + "*.*", "*.*"))
SI sFichier <> "" ALORS
TableSupprimeTout(table_Ritable)
POUR TOUTE chaîne sLigne de sFichier SEPAREE PAR RC
TableauAjouteLigne(Table_Ritable,ExtraitChaîne(sLigne,1,";"),ExtraitChaîne(sLigne,2,";"),ExtraitChaîne(sLigne,3,";"),ExtraitChaîne(sLigne,4,";"),ExtraitChaîne(sLigne,5,";"),ExtraitChaîne(sLigne,6,";"),ExtraitChaîne(sLigne,7,";"),ExtraitChaîne(sLigne,8,";"),ExtraitChaîne(sLigne,9,";"),ExtraitChaîne(sLigne,10,";"),ExtraitChaîne(sLigne,11,";"),ExtraitChaîne(sLigne,12,";"),ExtraitChaîne(sLigne,13,";"))
FIN
FIN


Pour eviter le quiproquo, on parle bien d'une table que tu créer avec l'ihm, et non d'une base de donnée et "table" est different de "tableau"

Jordan
Publicado el 14,agosto 2019 - 14:54
Bonjour, je vous relance parce que je suis entrain de faire exactement la même aujourd'hui et j'ai aucune idée de comment faire, donc j'ai fait ce code puis on me dit que c'est disponible pour un élément de type entier. Qu'est-ce que cela peut vouloir dire s'il vous plaît?