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 � ???????? � :calim2:
Voici la fonction utilis�e pour le chargement appel� pendant que l'on balaye l'ensemble du fichier excel:
Code:
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:
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...:aie:
Merci d'avance