OVH Cloud OVH Cloud

Importation fichier texte [WD7.5-206g]

9 réponses
Avatar
Christophe COGNET
Bonjour
j'ai en fait 2 problèmes je souhaiterais dans un premier temps importer un
fichier texte OEM dans un fichier hyperfile 7 au format ANSI hors la
fonction himportetexte avec la constante OEMversANSI ne fonctionne pas elle
a été enlevé. Y aurait il une autre solution ?
le deuxième problème est que dans mon fichier texte la première ligne est la
ligne de titre comment faire pour lui dire de ne pas l'importer ou alors de
lui dire d'ouvrir le fichier texte pour supprimer cette première ligne.

Merci à ceux qui pourront m'aider

9 réponses

Avatar
Romain PETIT
"Christophe COGNET" avait énoncé :
Bonjour
j'ai en fait 2 problèmes je souhaiterais dans un premier temps importer un
fichier texte OEM dans un fichier hyperfile 7 au format ANSI hors la
fonction himportetexte avec la constante OEMversANSI ne fonctionne pas elle
a été enlevé. Y aurait il une autre solution ?



Bonjour,

Pourquoi ne pas gérer toi-même ton importation ?
Ce n'est pas très compliqué, il suffit juste de travailler un peu et de
lire l'aide.


En gros (et sans avoir vérifié ce code) :

c est un entier = 0
sSep est une chaine = TAB // séparateur dans le fichier
sNomFichier = "C:monfichier.txt"
eNumFic est un entier = fOUvre(sNomFichier, folecture)
si eNumFic>0 alors
boucle
c++
si c=1 alors flitligne(eNumFic) //on lit 1 ligne d'en-tête
sLigne = flitligne(eNumFic)
si sLigne = eot alors sortir
//transformation OEM -> Ansi
sLigne = OemVersAnsi(sLigne)
MONFICHIER.MARUB1 = ExtraitChaine(sLigne, 1, sSep)
MONFICHIER.MARUB2 = val(ExtraitChaine(sLigne, 2, sSep)) //numérique
MONFICHIER.MARUB3 = ExtraitChaine(sLigne, 3, sSep)
...
Hajoute(MONFICHIER)
// doublon, intégrité, toussa
fin
fFerme(eNumfic)
fin

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Christophe COGNET
En tout premier lieu je te remercie de ton aide mais débutant sur windev il
y a 2 ou 3 truc que je n'est pas bien saisi :
Comment se fait il que tu ne type pas la variable sNomFichier
Dans la partie suivante pourquoi avoir quelque chose de différent pour la
rubrique 2 est ce pour importer du numérique ?
MONFICHIER.MARUB1 = ExtraitChaine(sLigne, 1, sSep)
MONFICHIER.MARUB2 = val(ExtraitChaine(sLigne, 2, sSep)) //numérique
MONFICHIER.MARUB3 = ExtraitChaine(sLigne, 3, sSep)

Merci

"Romain PETIT" a écrit dans le message de
news:
"Christophe COGNET" avait énoncé :
> Bonjour
> j'ai en fait 2 problèmes je souhaiterais dans un premier temps importer


un
> fichier texte OEM dans un fichier hyperfile 7 au format ANSI hors la
> fonction himportetexte avec la constante OEMversANSI ne fonctionne pas


elle
> a été enlevé. Y aurait il une autre solution ?

Bonjour,

Pourquoi ne pas gérer toi-même ton importation ?
Ce n'est pas très compliqué, il suffit juste de travailler un peu et de
lire l'aide.


En gros (et sans avoir vérifié ce code) :

c est un entier = 0
sSep est une chaine = TAB // séparateur dans le fichier
sNomFichier = "C:monfichier.txt"
eNumFic est un entier = fOUvre(sNomFichier, folecture)
si eNumFic>0 alors
boucle
c++
si c=1 alors flitligne(eNumFic) //on lit 1 ligne d'en-tête
sLigne = flitligne(eNumFic)
si sLigne = eot alors sortir
//transformation OEM -> Ansi
sLigne = OemVersAnsi(sLigne)
MONFICHIER.MARUB1 = ExtraitChaine(sLigne, 1, sSep)
MONFICHIER.MARUB2 = val(ExtraitChaine(sLigne, 2, sSep)) //numérique
MONFICHIER.MARUB3 = ExtraitChaine(sLigne, 3, sSep)
...
Hajoute(MONFICHIER)
// doublon, intégrité, toussa
fin
fFerme(eNumfic)
fin

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
Romain PETIT
"Christophe COGNET" vient de nous annoncer :
En tout premier lieu je te remercie de ton aide mais débutant sur windev il
y a 2 ou 3 truc que je n'est pas bien saisi :
Comment se fait il que tu ne type pas la variable sNomFichier



Ralala,
Parce que j'ai écrit "En gros (et sans avoir vérifié ce code)"

Dans la partie suivante pourquoi avoir quelque chose de différent pour la
rubrique 2 est ce pour importer du numérique ?



Ben oui, c'est un exemple si la rubrique MARUB2 est de type numérique.

Etre débutant ne signifie pas qu'on doit se faire macher tout le
travail.
Quand j'étais moi-même débutant, je me plongeais dans l'aide et dans le
déboggueur en pas à pas pour voir ce que faisait mon code.
Rien ne vaut la pratique pour apprendre, surtout ce genre de choses
basiques.

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Christophe COGNET
Alors j'ai bien suivi tes conseils j'ai trituré l'aide dans tous les sens
j'ai bien suivi tous ce qu'il disent pourtant il y a un problème dés le
départ.
quand je fait flitligne(idfic) il ne me remonte que la première rubrique de
mon fichier texte (fichier texte ayant TAB comme séparateur de colonne et RC
en fin d'enregistrement)
Par exemple si dans mon fichier texte j'ai
1645 TOTO Titi(RC)
et que je fais
scontenu=flitlignet(idfic)
info(scontenu)
il me remonte seulement 1645


"Christophe COGNET" a écrit dans le message
de news:bn9btp$5vs$
En tout premier lieu je te remercie de ton aide mais débutant sur windev


il
y a 2 ou 3 truc que je n'est pas bien saisi :
Comment se fait il que tu ne type pas la variable sNomFichier
Dans la partie suivante pourquoi avoir quelque chose de différent pour la
rubrique 2 est ce pour importer du numérique ?
MONFICHIER.MARUB1 = ExtraitChaine(sLigne, 1, sSep)
MONFICHIER.MARUB2 = val(ExtraitChaine(sLigne, 2, sSep)) //numérique
MONFICHIER.MARUB3 = ExtraitChaine(sLigne, 3, sSep)

Merci

"Romain PETIT" a écrit dans le message de
news:
> "Christophe COGNET" avait énoncé :
> > Bonjour
> > j'ai en fait 2 problèmes je souhaiterais dans un premier temps


importer
un
> > fichier texte OEM dans un fichier hyperfile 7 au format ANSI hors la
> > fonction himportetexte avec la constante OEMversANSI ne fonctionne pas
elle
> > a été enlevé. Y aurait il une autre solution ?
>
> Bonjour,
>
> Pourquoi ne pas gérer toi-même ton importation ?
> Ce n'est pas très compliqué, il suffit juste de travailler un peu et de
> lire l'aide.
>
>
> En gros (et sans avoir vérifié ce code) :
>
> c est un entier = 0
> sSep est une chaine = TAB // séparateur dans le fichier
> sNomFichier = "C:monfichier.txt"
> eNumFic est un entier = fOUvre(sNomFichier, folecture)
> si eNumFic>0 alors
> boucle
> c++
> si c=1 alors flitligne(eNumFic) //on lit 1 ligne d'en-tête
> sLigne = flitligne(eNumFic)
> si sLigne = eot alors sortir
> //transformation OEM -> Ansi
> sLigne = OemVersAnsi(sLigne)
> MONFICHIER.MARUB1 = ExtraitChaine(sLigne, 1, sSep)
> MONFICHIER.MARUB2 = val(ExtraitChaine(sLigne, 2, sSep)) //numérique
> MONFICHIER.MARUB3 = ExtraitChaine(sLigne, 3, sSep)
> ...
> Hajoute(MONFICHIER)
> // doublon, intégrité, toussa
> fin
> fFerme(eNumfic)
> fin
>
> --
> Romain PETIT
> http://cerbermail.com/?IJmancZl88
> (cliquez sur le lien ci-dessus pour me contacter en privé)
>




Avatar
Romain PETIT
"Christophe COGNET" a écrit :

Par exemple si dans mon fichier texte j'ai
1645 TOTO Titi(RC)
et que je fais
scontenu=flitlignet(idfic)
info(scontenu)
il me remonte seulement 1645



Ce n'est pas possible.
Soit ton fichier est différent de ce que tu dis (un RC quelque part),
soit ton code est en cause.

Ou alors il s'agit d'un bug du même ordre que celui-ci (mais je n'y
crois pas trop) :

http://minilien.com/?PC8484Ix3B
ou
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm¯be02%240%245101%24626a54ce%40news.free.fr&rnum=1&prev=/groups%3Fhl%3Dfr%26ie%3DISO-8859-1%26q%3Dbug%2Bflitligne%26sa%3DN%26tab%3Dwg%26meta%3D


Peux-tu publier ton code ici et copier-coller le début de ton fichier
texte ?

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Christophe COGNET
CODE MIS SUR UN BOUTON

cmpt est un entier = 0
sSep est une chaîne = "TAB" // séparateur dans le fichier
//(J'ai essayer avec ou sans les guillemet rien y fait, j'ai aussi essayer
de changer le séparateur et mettre un ; mais idem)

sNomFichier est une chaîne = "C:mes projetstestident.lst"
sLigne est un entier
eNumFic est un entier

eNumFic = fOuvre(sNomFichier, foLecture)
SI eNumFic <>-1 ALORS
HCréation(IDENTITE)
BOUCLE
cmpt++

SI cmpt=1 ALORS
fLitLigne(eNumFic) //on lit 1 ligne d'en-tête
Info(sLigne)
cmpt++
FIN
sLigne = fLitLigne(eNumFic)
Info(eNumFic)
Info(sLigne)
SI sLigne = EOT ALORS
SORTIR
FIN

sLigne = OemVersAnsi(sLigne)
TxtIdPsydoc = ExtraitChaîne(sLigne, 1, sSep)
TxtNomIDENT =ExtraitChaîne(sLigne, 2, sSep) //numérique
TxtNJFilleIDENT = ExtraitChaîne(sLigne, 3, sSep)
TxtPrenomIDENT = ExtraitChaîne(sLigne, 4, sSep)
TxtDateNaissIDENT = ExtraitChaîne(sLigne, 5, sSep)
TxtSexeIDENT = ExtraitChaîne(sLigne, 6, sSep)


//Hajoute(IDENTITE)
// doublon, intégrité, toussa
FIN
fFerme(eNumFic)
SINON
Erreur(ErreurInfo())
FIN



fichier Texte à importer format OEM


FTAB/#Num,ro interne #Nom #Nom de jeune fille #Pr,nom #Date de naissance
#Sexe
1645 ABBRO Raymond 11/11/1933 M
261 AUBDAILLAH Fatna 06/01/1956 F
1561 ABECAISSIS Simon 06/01/1959 M
1454 ABIDI Bilal 29/12/1979 M
244 ACEDDOI Antoine 24/12/1952 M
646 ADAMO Claudine 17/11/1939 F
1496 ADAMOI Marc 15/10/1956 M
1282 ADDOUFFER Rachid 21/07/1971 M



"Romain PETIT" a écrit dans le message de
news:
"Christophe COGNET" a écrit :

> Par exemple si dans mon fichier texte j'ai
> 1645 TOTO Titi(RC)
> et que je fais
> scontenu=flitlignet(idfic)
> info(scontenu)
> il me remonte seulement 1645

Ce n'est pas possible.
Soit ton fichier est différent de ce que tu dis (un RC quelque part),
soit ton code est en cause.

Ou alors il s'agit d'un bug du même ordre que celui-ci (mais je n'y
crois pas trop) :

http://minilien.com/?PC8484Ix3B
ou



http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm¯be02%240%245101%24626a54ce%40news.free.fr&rnum=1&prev=/groups%3Fhl%3Dfr%26ie%3DISO-8859-1%26q%3Dbug%2Bflitligne%26sa%3DN%26tab%3Dwg%26meta%3D


Peux-tu publier ton code ici et copier-coller le début de ton fichier
texte ?

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
Romain PETIT
"Christophe COGNET" a formulé la demande :

sLigne est un entier



C'est gros comme une maison...
Tu me copieras 100 fois
"Je vérifie mon typage de variable avant de poster sur fdcaw"

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Christophe COGNET
Alors la je n'ai rien dire cela devait être gros pour ke je le vois lol
Merci encore
"Romain PETIT" a écrit dans le message de
news:
"Christophe COGNET" a formulé la demande :

> sLigne est un entier

C'est gros comme une maison...
Tu me copieras 100 fois
"Je vérifie mon typage de variable avant de poster sur fdcaw"

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
Fabrice Burghgraeve
salut.

"Christophe COGNET" a écrit dans le message
de news:bnanke$hg0$
CODE MIS SUR UN BOUTON

cmpt est un entier = 0
sSep est une chaîne = "TAB" // séparateur dans le fichier



(...)
En complement de la reponse de Romain,
Ce n'est probablement pas la chaine de caracteres "TAB" qui est le
séparateur.


--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD