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

C++Builder Discussion :

Application ISO8859 + Excel


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Par défaut Application ISO8859 + Excel
    Bonjour à tous,

    Je fais appel à vous afin que vous puissiez m'aider à comprendre le pourquoi du comment à mon problème.

    J'ai une application en C sous Builder 6 dans laquelle je simule un écran à pixel (genre console GameBoy) à l'aide d'un StrinGrid sur lequel des textes apparaissent en plusieurs langues. En résumé, chaque case du StringGrid corresponde à un pixel que je mets en noir ou en blanc.

    Les textes à afficher sont contenus dans un fichier Excel qui est chargée à l'ouverture de l'application: 1 ligne par mot qui est traduit en plusieurs langues (soit 500 lignes pour 500 mots et 24 colonnes pour 24 langues).Pour faciliter l’appel d’un mot à afficher sur l’écran simuler, chaque ligne correspond à une variable. Il suffira alors de détecter la langue sélectionnée dans l'application puis d’appelé la variable lié au mot et on viendra alors trouvé le mot traduit dans la bonne langue.

    Parmi ces langues du fichier Excel il y a le Russe utilisant l’ISO-8859-5 avec tout son ensemble de caractères spéciaux. Cependant, lorsque je charge mon tableau de mots, ces caractères spéciaux sont traduits par de « ? ». Logique me direz vous, car il me faut l’ISO-8859-5 dans mon application et non celle par défaut (ISO-8859-1).

    Mais voilà j’ai beau changer l’ISO avant le chargement. Il me charge malheureusement toujours des « ? ». Ainsi, pour exemple avec le mot « lundi » en russe « Понедельник », j’ai « ???????? »

    Voici la fonction utilisée pour le chargement appelé pendant que l'on balaye l'ensemble du fichier excel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CellText = ReadTextOnExcelCell(WorksheetIndex, NbLanguage+XL_COL_OFFSET, Line-2);
     
    où: WorksheetIndex est la page du fichier excel
    NbLanguage est le nombre de langue soitt le nombre de colonne
    XL_COL_OFFSET est juste un offset car les traduction des mots commencent colonnes 6
    avec

    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
    AnsiString TForm1::ReadTextOnExcelCell(int WorksheetIndex, int Column, int Line)
    {
        if(Column==26) //Colonne des mots en Russe
        {
          this->Font->Charset = RUSSIAN_CHARSET;                                    //!!!!!!!!!!   ISO 5
          Font->Charset = RUSSIAN_CHARSET;                                             //!!!!!!!!!!   ISO 5
        }
        Else // colonnes autres langues
        {
          this->Font->Charset = DEFAULT_CHARSET;
          Form1->Font->Charset = DEFAULT_CHARSET;
        }
     
        //Sheet contains 256 column and 65 536 lines
        if(Column < 257 && Line < 65537)
        {
            Variant Sheet = GlobalParameters.vXLWorkbook.OlePropertyGet("Worksheets", WorksheetIndex);
            GlobalParameters.vCell = Sheet.OlePropertyGet("Cells", Line, Column);
            Variant vValue = GlobalParameters.vCell.OlePropertyGet("Value");
            return vValue;
        }
        return "";
    }

    Je me pose donc la question de savoir si ce « Font->Charset = RUSSIAN _CHARSET; » qui est lié à ISO-8859-5 s’applique bien aux fonctions OlePropertyGet me permettant de chargé le mot traduit.

    En espérant avoir été clair...

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Par défaut
    Pour ceux qui sont intéresses j'ai un peu avancé:

    J'ai activer dans Panneau Config/ Option régions et linguistique/ Options Avancées/ Langue pour les programmes non Unicode

    Builder 6 n'est pas Unicode apparemment. On choisit le RUSSE, on reboot et on relance l'application. Les caractère Russes sont bien traduits mais pour les autres langues tout les caractère accentués ne sont pas retranscris....

    C'est donc une solution de rapidité mais qui ne résolu pas entièrement le problème car l'appli doit pouvoir gérer le multi-langages.

    Allez je poursuis mes recherches....

    Bonnes fêtes de fin d'année!!

Discussions similaires

  1. démarrage application via excel
    Par cobra 32 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2009, 12h01
  2. Modification d'une application sous Excel language Vba
    Par Mézeau Emilien dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/04/2008, 09h13
  3. Problème Application.FileSearch excel 2007
    Par 13mike dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2007, 09h31
  4. [VBA]application via excel
    Par yaz1234 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/05/2007, 07h24
  5. Aidez-Moi Sur Une Petite Application sous Excel
    Par The_Haunted dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/11/2006, 03h40

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