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

 Delphi Discussion :

Copier de l'UNICODE


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 117
    Points : 68
    Points
    68
    Par défaut Copier de l'UNICODE
    Bonjour,

    J'utilise un TRichEdit pour travailler sur du texte UNICODE, et au chargement du fichier, tout est OK.

    En revanche, si je veux extraire du texte, disons vMot, quelle fonction dois-je utiliser ?

    vMot est déclaré en WideString

    La méthode FindText touve les début/fin de vMot dans mon TRichEdit, mais Copy me renvoie des ???????? comme contenu de vMot.

    Je suppose qu'il faut utiliser une fonction CopyWideString, mais mes recherches pour cette mystérieuse fonction n'ont pas abouti, si ce n'est à ce post ....

    Je suis sous D2005 personnal

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 696
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 696
    Points : 13 135
    Points
    13 135
    Par défaut
    TRichEdit unicode sous D2005... étonnant lorsqu'on sait que l'unicode n'a été introduit dans Delphi que depuis D2009

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ Delphidebutant, regarde si ces fonctions te conviennent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    function AnsiToUnicode(const str: AnsiString; codePage: Integer): UnicodeString; 
    var 
      len: Integer; 
    begin 
      {$IFDEF UNICODE} 
      if codePage = 0 then codePage := DefaultSystemCodePage; 
      if codePage = 0 then codePage := StringCodePage(str); 
      DefaultSystemCodePage := codePage; 
      {$ENDIF} 
      if str = '' then Result := '' 
      else 
      begin 
        len := MultiByteToWideChar(codePage, 0, PAnsiChar(str), -1, nil, 0); 
        if len > 1 then 
        begin 
          SetLength(Result, len - 1); 
          MultiByteToWideChar(codePage, 0, PAnsiChar(str), -1, PWideChar(Result), len); 
        end 
        else Result := ''; 
      end; 
    end; 
     
    function UnicodeToAnsi(const str: UnicodeString; codePage: Integer): AnsiString; 
    var 
      len: Integer; 
    begin 
      {$IFDEF UNICODE} 
      if codePage = 0 then codePage := DefaultSystemCodePage; 
      if codePage = 0 then codePage := StringCodePage(str); 
      DefaultSystemCodePage := codePage; 
      {$ENDIF} 
      if str = '' then Result := '' 
      else 
      begin 
        len := WideCharToMultiByte(codePage, 0, PWideChar(str), -1, nil, 0, nil, nil); 
        if len > 1 then 
        begin 
          SetLength(Result, len - 1); 
          WideCharToMultiByte(codePage, 0, PWideChar(str), -1, PAnsiChar(Result), len, nil, nil); 
        end 
        else Result := ''; 
      end; 
    end;
    Utilises aussi StrCopy()

    @+,

    Cincap

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 117
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par cincap Voir le message
    Bonjour à toutes et à tous,

    @ Delphidebutant, regarde si ces fonctions te conviennent :


    Utilises aussi StrCopy()

    @+,

    Cincap
    Merci pour ta réponse.

    La fonction qui semblerait m'intéresser (AnsiToUnicode) renvoie un UnicodeString, type de variable non reconnue en standard.

    Quel uses faudrait-il rajouter ?

    Un point pas clair du tout pour moi, c'est que TrichEdit utilise une propriété Lines, qui est un strings, et une propriété cachée Text, qui semble être un string (j'ai un msg d'erreur, si je demande l'aide locale Delphi : Unable to locate ypelink:T:system.TrucMachin, et l'aide Borland me renvoie un gateway 504 dans les dents) .

    Comment Delphi transfome une liste de string en un string unique, avec les caractères de fin de chaine ?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ delphidebutant, je pense que c'est Mapi à ajouter dans le uses.

    Désolé, je ne sais pas tester.

    @+,

    Cincap

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 117
    Points : 68
    Points
    68
    Par défaut
    Cette page donne tout ce qu'il faut pour voir des chaines internes à l'appli comme dans le richedit, et donc pouvoir bosser dessus comme je veux le faire

    http://koti.mbnet.fi/akini/delphi/urldecodeutf8/


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

Discussions similaires

  1. [WD-2003] Copier coller en texte unicode sans mise en forme
    Par Lucas42 dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/01/2010, 17h56
  2. Copier un .com sur le 1er secteur d'une disquette
    Par zdra dans le forum Assembleur
    Réponses: 5
    Dernier message: 23/08/2002, 18h03
  3. Copier le texte d'un ListBox dans le clipboard.
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/08/2002, 08h20
  4. Copier et afficher une copie d'ecran
    Par Bobx dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2002, 22h20
  5. Copier une image (jpeg) dans le presse papier
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/07/2002, 14h51

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