|
| 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 |
| |
| |
| | | |
|
| | | | |
| | |
|