PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Tester si un fichier est bien en txt unicode
Tester si un fichier est bien en txt unicode
Iniciado por roumegou, 06,abr. 2020 09:42 - 4 respuestas
Publicado el 06,abril 2020 - 09:42
Bonjour,
tout est dans le titre.

Un très gros fichier d'origine excel m'a été présenté la première fois
comme étant e type ttxt unicode; d'où l'adaptation de mon programme à
ce format pas très pratique.
Or il est très souvent uploadé 'en ftp) par les utilisateurs en txt tab
ascii et donc l'intégration (en procedure schedullées) échoue.

J'aimerais tester rapidement que le fmt est incorrect et renvoyer tout
de suite un message.
Comment réaliser cela ?

(à part essayer de tester une en-tête ?)
Merci de vos réponses/

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Publicado el 06,abril 2020 - 10:52
Bonjour,

Avec la fonction ..unicode peut être.

SI Champ1..Unicode = Faux ALORS
Trace("Faux")
SINON
Trace("Vrai")
FIN



Alain
Miembro registrado
499 mensajes
Publicado el 06,abril 2020 - 11:13
Bonjour,

Vous pouvez tester si le fichier contient un BOM (Byte Ordre Marker) : https://fr.wikipedia.org/wiki/Indicateur_d%27ordre_des_octets, il est de mémoire obligatoire pour UTF-16 et UTF-32 (à savoir que ce que WinDev appelle Unicode est de l'UTF-16). Il est par contre optionnel en UTF-8.

Autre possibilité, comme la plupart des caractères latins sont codés dans le premier plan unicode, en UTF-16/32 vous avez un octet à 0 qui suit ou précède le code du caractère : en ANSI, "E" est codé x45, en UTF-16 il est codé en x0045 ou x4500, suivant l'endianness. Cet octet à 0 étant nul en ANSI (et signale souvent la fin de la chaine), avoir une ou plusieurs occurrences de cet octet permettrait de valider qu'il s'agit bien d'un format Unicode.
Publicado el 06,abril 2020 - 18:25
Bonjour,

Avec la fonction ..unicode peut être.

SI Champ1..Unicode = Faux ALORS
Trace("Faux")
SINON
Trace("Vrai")
FIN



Alain


merci Alain
je vais regarder

et mes excuses à tous pour cette erreur de post au mauvais endroits
(pas compris ma fausse manip ??)

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Publicado el 06,abril 2020 - 18:48
Bonjour,

Avec la fonction ..unicode peut être.

SI Champ1..Unicode = Faux ALORS
Trace("Faux")
SINON
Trace("Vrai")
FIN



Alain


bon même en passant par un champs de saisie, déclaré en Unicode
charger des données aNSI donne du chinois mais cela ne retourne pas
faux

Bon je vais me débrouiller autrement.
Merci encore de ton aide

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus