PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Problème sur la lecture fichier texte
Problème sur la lecture fichier texte
Débuté par Cédric, 29 mar. 2017 11:57 - 2 réponses
Membre enregistré
58 messages
Popularité : +1 (1 vote)
Posté le 29 mars 2017 - 11:57
Bonjour,
J'ai deux applications sur le même PC, sur ma première application j'écrit un fichier texte, la seconde application doit le lire mais seule la première lettre du fichier est lue. Si je place le code de lecture sur la première application j'arrive à lire le fichier. Je n'arrive pas à trouver d'explication.

Première application
IDFichier est un entier
ResEcriture est un booléen
IDFichier = fOuvre("C:\ATS\info.txt",foCréationSiInexistant+foEcriture)
SI IDFichier <> -1 ALORS
// Écriture d'une ligne dans ce fichier
ResEcriture = fEcritLigne(IDFichier, "test")
FIN
fFerme(IDFichier)

ResLecture est une chaîne
IDFichier = fOuvre("C:\ATS\info.txt", foLectureEcriture)
SI IDFichier <> -1 ALORS
// Lecture d'une ligne dans ce fichier
ResLecture = fLitLigne(IDFichier)
FIN
fFerme(IDFichier)
Info(ResLecture)


L'info() fait bien apparaitre le message "test".

Deuxième application
IDFichier est un entier
ResLecture est une chaîne
IDFichier = fOuvre("C:\ATS\info.txt", foLectureEcriture)
SI IDFichier <> -1 ALORS
// Lecture d'une ligne dans ce fichier
ResLecture = fLitLigne(IDFichier)
FIN
fFerme(IDFichier)
Info(ResLecture)


L'info() fait bien apparaitre le message "t".

J'ai essayé avec d'autre méthode fChargeTexte(), fChargeBuffer() même problème, l'application qui écrit arrive à lire, l'application qui ne fait que lire ne marche pas.

Avez vous une explication?
Merci
Posté le 29 mars 2017 - 14:23
Bonjour

déjà, oublie flit et fecrit, et utilise fchargetexte et fsauvetexte à la
place, c'est beaucoup plus simple et rapide

Ensuite, les symptômes que tu décris se produisent quand un des
programmes travaillent en ansi et l'autre en unicode. La chaine en
unicode contenant des zéro, le coté ansi interprète comme la fin de
chaine et hop, seulement une lettre.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 3/29/2017 à 3:57 AM, "ÿÿÿÿÿÿ" a écrit :
Bonjour,
J'ai deux applications sur le même PC, sur ma première application
j'écrit un fichier texte, la seconde application doit le lire mais seule
la première lettre du fichier est lue. Si je place le code de lecture
sur la première application j'arrive à lire le fichier. Je n'arrive pas
à trouver d'explication.

Première application
IDFichier est un entier
ResEcriture est un booléen
IDFichier = fOuvre("C:\ATS\info.txt",foCréationSiInexistant+foEcriture)
SI IDFichier <> -1 ALORS
// Écriture d'une ligne dans ce fichier
ResEcriture = fEcritLigne(IDFichier, "test")
FIN
fFerme(IDFichier)

ResLecture est une chaîne
IDFichier = fOuvre("C:\ATS\info.txt", foLectureEcriture)
SI IDFichier <> -1 ALORS
// Lecture d'une ligne dans ce fichier
ResLecture = fLitLigne(IDFichier)
FIN
fFerme(IDFichier)
Info(ResLecture)


L'info() fait bien apparaitre le message "test".

Deuxième application
IDFichier est un entier
ResLecture est une chaîne
IDFichier = fOuvre("C:\ATS\info.txt", foLectureEcriture)
SI IDFichier <> -1 ALORS
// Lecture d'une ligne dans ce fichier
ResLecture = fLitLigne(IDFichier)
FIN
fFerme(IDFichier)
Info(ResLecture)


L'info() fait bien apparaitre le message "t".

J'ai essayé avec d'autre méthode fChargeTexte(), fChargeBuffer() même
problème, l'application qui écrit arrive à lire, l'application qui ne
fait que lire ne marche pas.

Avez vous une explication?
Merci
Membre enregistré
58 messages
Popularité : +1 (1 vote)
Posté le 29 mars 2017 - 15:12
Bonjour,
Voilà mon problème:
Dans mon application je mélangeai des chaine déclarée en ANSI et du texte écrit directement.

il ne faut donc pas écrire

valeur_1 est une chaîne ANSI = "je"
valeur_2 est une chaîne ANSI = "fait un"
fSauveTexte("C:\ATS\info.txt", valeur_1 + valeur_2 + " test")


mais

valeur_1 est une chaîne ANSI = "je"
valeur_2 est une chaîne ANSI = "fait un"
valeur_3 est une chaîne ANSI = valeur_1 + valeur_2 + " test"
fSauveTexte("C:\ATS\info.txt", valeur_3)


Merci Fabrice, il s'agissait bien d'un problème de format.