PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → flitligne et table ajoute
flitligne et table ajoute
Débuté par corinne briche, 03 mai 2005 11:46 - 8 réponses
Posté le 03 mai 2005 - 11:46
Bonjour,

Comme d'habitude je ne m'en sors pas sur une fonction qui va très
certainement vous sembler bateau.
Le but du jeu, remplir une table mémoire à partir d'un fichier texte,
(résultat d'une requete exportée en fichier txt)
le fichier comporte un nombre de ligne variable en fonction du résultat de
la recherche et 37 colonnes
En fonction de mes besoins j'affiche ou non telle ou telle colonne
J'ai regardé la fonction : flitligne en utilisant l'assistant
l'ouverture du fichier est ok , le trace me trace bien mon fichier mais
j'arrive pas à ajouter les lignes de résultat dans ma table_mémoire
(moimême)
la fonction, ne génére aucune erreur.
Merci de votre aide

PS : je ne veux pas importer mon fichier txt dans une table physique, c'est
vraiment du temporaire


code utilisé via l'assistant :

nIdFic = fOuvre("C:\travail_archange\fic_camp\selection_recherche.txt",
foLectureEcriture)
SI nIdFic=-1 ALORS
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
SINON
// Première ligne
sMaChaîne = fLitLigne(nIdFic)
TANTQUE sMaChaîne<>EOT
// Traitement de la ligne lue
Trace(sMaChaîne)
TableAjouteLigne(MoiMême,sMaChaîne)
TableAffiche(MoiMême)
// Ligne suivante
sMaChaîne = fLitLigne(nIdFic)
FIN
FIN
// Fermeture du fichier
fFerme(nIdFic)
Posté le 03 mai 2005 - 13:18
hello

essai peut etre en mettant le nom de la table a la place de "moimeme"
et sinon a tu des "TAB" dans ton fichier pour separer les differents champs qui rempliront tes colonnes ?

bon dev a+
Posté le 03 mai 2005 - 14:05
merci de ta réponse
j'ai fait le test avec "nom de ma table" idem
oui j'ai des tab, et quand je fais
tableajouteligne(nomdematable,""+tab+""+tab"+etc..etc)
tableaffiche(nomdematable)
rien de plus ! ma table est vide



"digi" <guest@newsgroup.fr> a écrit dans le message de news:
4277360e$1@news.pcsoft.fr...

hello

essai peut etre en mettant le nom de la table a la place de "moimeme"
et sinon a tu des "TAB" dans ton fichier pour separer les differents
champs qui rempliront tes colonnes ?

bon dev a+

Posté le 03 mai 2005 - 15:54
Essaye ça :

NumCol , NumLigne sont des entiers

sMaChaîne = fLitLigne(nIdFic)
TANTQUE sMaChaîne<>EOT
NumLigne = TableAjouteLigne(MaTable)
SI NumLigne = -1 ALORS Erreur("Erreur ...") ; SORTIR
POUR NumCol = 1 A 37 // 37 = NbColonne
MaTable[NumLigne][NumCol] = ExtraitChaine(sMaChaine,NumCol,TAB)
FIN
sMaChaîne = fLitLigne(nIdFic)
FIN
fFerme(nIdFic)

A+
Posté le 03 mai 2005 - 16:30
re

j ai fait un test en creant une table TABLE1 avec 3 colonnes (colonne1,colonne2,colonne3) et en mettant le code suivant dans un bouton :

TableAjoute(Table1,"A1"+TAB+"B1"+TAB+"C1")
TableAjoute(Table1,"A2"+TAB+"B2"+TAB+"C2")
TableAjoute(Table1,"A3"+TAB+"B3"+TAB+"C3")

cela ajoute bien 3 lignes avec les valeurs A1 etc ...
la table est une table memoire

bon dev a+
Posté le 03 mai 2005 - 16:41
Je pense que tableaffiche affiche toujours une table vide des le debut, il aurait fallu mettre un multitache() apres tableajouteligne ou simplement supprimer tableaffiche qui dans ce cas a le meme effet que de garder la derniere table dans ce cas une table vide.
Posté le 03 mai 2005 - 19:19
Merci cédric, ca marche !
avec quelques petits "trucs" bizarre
en fait je récupére bien mes valeurs dans chaque colonne, mais dans ma table
j'ai une ligne remplie
une ligne vide, une ligne remplie, une ligne vide etc... etc...
donc pour une lecture de 5 lignes : 10 lignes dans la table
certainement le code de fin de ligne dans le txt, mal intéprétée ?

si tu as une idée ?

de plus je t'ai envoyé un mail sur ton add wanadoo

merci

"cedric" <audemar.cedric@wanadoo.fr> a écrit dans le message de news:
42775a8d$1@news.pcsoft.fr...

Essaye ça :

NumCol , NumLigne sont des entiers

sMaChaîne = fLitLigne(nIdFic)
TANTQUE sMaChaîne<>EOT
NumLigne = TableAjouteLigne(MaTable)
SI NumLigne = -1 ALORS Erreur("Erreur ...") ; SORTIR
POUR NumCol = 1 A 37 // 37 = NbColonne
MaTable[NumLigne][NumCol] = ExtraitChaine(sMaChaine,NumCol,TAB)
FIN
sMaChaîne = fLitLigne(nIdFic)
FIN
fFerme(nIdFic)

A+
Posté le 03 mai 2005 - 22:35
Bonjour

Il faut remplacer moimeme par le nom de la table si le code n'est pas dans
l'initialisation de la table
d'autre par il faut dans ton fichier txt que les champs soient séparés par
des ,
il faut éviter le tableaffiche pour ne pas ralentir l'exécution c'est a
faire en fin de code

Patrick

"corinne briche" <corinne.briche@archange-groupe.com> a écrit dans le
message de news: 427721a9@news.pcsoft.fr...

Bonjour,

Comme d'habitude je ne m'en sors pas sur une fonction qui va très
certainement vous sembler bateau.
Le but du jeu, remplir une table mémoire à partir d'un fichier texte,
(résultat d'une requete exportée en fichier txt)
le fichier comporte un nombre de ligne variable en fonction du résultat de
la recherche et 37 colonnes
En fonction de mes besoins j'affiche ou non telle ou telle colonne
J'ai regardé la fonction : flitligne en utilisant l'assistant
l'ouverture du fichier est ok , le trace me trace bien mon fichier mais
j'arrive pas à ajouter les lignes de résultat dans ma table_mémoire
(moimême)
la fonction, ne génére aucune erreur.
Merci de votre aide

PS : je ne veux pas importer mon fichier txt dans une table physique,
c'est
vraiment du temporaire


code utilisé via l'assistant :

nIdFic = fOuvre("C:\travail_archange\fic_camp\selection_recherche.txt",
foLectureEcriture)
SI nIdFic=-1 ALORS
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
SINON
// Première ligne
sMaChaîne = fLitLigne(nIdFic)
TANTQUE sMaChaîne<>EOT
// Traitement de la ligne lue
Trace(sMaChaîne)
TableAjouteLigne(MoiMême,sMaChaîne)
TableAffiche(MoiMême)
// Ligne suivante
sMaChaîne = fLitLigne(nIdFic)
FIN
FIN
// Fermeture du fichier
fFerme(nIdFic)

Posté le 04 mai 2005 - 12:16
Hello !
Essaye de faire un TableAjoute et non un TableAjouteLigne.
JiPi

corinne briche a couché sur son écran :
Merci cédric, ca marche !
avec quelques petits "trucs" bizarre
en fait je récupére bien mes valeurs dans chaque colonne, mais dans ma table
j'ai une ligne remplie
une ligne vide, une ligne remplie, une ligne vide etc... etc...
donc pour une lecture de 5 lignes : 10 lignes dans la table
certainement le code de fin de ligne dans le txt, mal intéprétée ?

si tu as une idée ?

de plus je t'ai envoyé un mail sur ton add wanadoo

merci

"cedric" <audemar.cedric@wanadoo.fr> a écrit dans le message de news:
42775a8d$1@news.pcsoft.fr...

Essaye ça :

NumCol , NumLigne sont des entiers

sMaChaîne = fLitLigne(nIdFic)
TANTQUE sMaChaîne<>EOT
NumLigne = TableAjouteLigne(MaTable)
SI NumLigne = -1 ALORS Erreur("Erreur ...") ; SORTIR
POUR NumCol = 1 A 37 // 37 = NbColonne
MaTable[NumLigne][NumCol] = ExtraitChaine(sMaChaine,NumCol,TAB)
FIN
sMaChaîne = fLitLigne(nIdFic)
FIN
fFerme(nIdFic)

A+


--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net