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:
avec
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
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
Partager