IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Gestion des accents : quel casse-tête [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Gestion des accents : quel casse-tête
    Bonjour à toutes et à tous,

    Dans un programme, mes fichiers *.pas sont encodés en UTF8.

    Quand j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      s:= Copy('Problème 1', 10, 1);
    ça me retourne ' ' ; c'est-à-dire l'espace compris entre Problème et 1. Le 'è' est considéré comme composé de deux octets.

    J'aimerais qu'il soit considéré comme un caractère sur 1 octet seulement. J'ai essayé différentes chose : UniCodeString, UTF8Encode, UTF8Décode , ... je m’emmêle les crayons, je ne m'en sors pas.

    Que faut-il faire pour gérer les caractères accentués comme étant codés sur un seul octets ?

    Cordialement.

    Pierre.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Il suffit d'utiliser les fonctions UTF8Copy, UTFLen (ou UTF8Length ?) et consorts qui envisagent les caractères UTF8 et ne dissèquent pas les octets qui les composent.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 952
    Points : 9 281
    Points
    9 281
    Par défaut
    hello,
    comme le dit tourlourou il faut utiliser Utf8Copy car ta chaîne 'Problème 1' dans les versions contemporaines de Lazarus est en UTF8.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s:= Utf8Copy('Problème 1', 10, 1);
    donne bien 1 comme résultat.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #4
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Merci, avec UTF8Copy, ça fonctionne bien. Entre temps, j'ai fait cet essai sans UTF8 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S:= Copy('Problème 1', Length('Problème 1'), 1));
    et, que je mette un accent à "problème" ou pas, ça fonctionne aussi !

    Cordialement.

    Pierre.

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par ChPr Voir le message
    et, que je mette un accent à "problème" ou pas, ça fonctionne aussi !
    C'est normal. Voilà l'explication :

    Nom : chaine_avec_accent.png
Affichages : 139
Taille : 18,5 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    Citation Envoyé par ChPr Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S:= Copy('Problème 1', Length('Problème 1'), 1));
    et, que je mette un accent à "problème" ou pas, ça fonctionne aussi !
    Oui mais si le caractère que tu veux sélectionner a un accent tu n'y arriveras pas alors qu'avec le fonctions en UTF8 oui.
    Cela est du au fait que TOUT ce qui n'est pas ASCII (0 à 127) est codé en plusieurs octets en UTF8.
    Et UTF8 est le codage standard de FPC (depuis le version 2) et LAZARUS.

    Cordialement

  7. #7
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par acaumes Voir le message
    ... Oui mais si le caractère que tu veux sélectionner a un accent tu n'y arriveras pas alors qu'avec le fonctions en UTF8 oui. ...
    Cette remarque est décisive

    Cordialement.

    Pierre.

  8. #8
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut, Pierre

    Si tu le souhaites, et si cela peux t'aider, tu peux jeter un oeil sur une de mes unités BZTypesHelpers

    Cette unité rajoute des fonctions au types de base dans Lazarus, c'est très utile^^ et notamment pour gérer des string en UTF8 directement.

    A+

    Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/10/2010, 00h23
  2. [EZPDF] gestion des accents
    Par cyreel dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 26/06/2007, 18h59
  3. [Regex] gestion des accents dans un mot
    Par joseph_p dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 10/05/2006, 09h04
  4. Gestion des historiques, quel choix ?
    Par ftrifiro dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/09/2005, 15h18
  5. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo