Lesthat59
Messages postés3Date d'inscriptionvendredi 25 mars 2005StatutMembreDernière intervention23 mai 2008
-
16 mai 2008 à 10:12
Lesthat59
Messages postés3Date d'inscriptionvendredi 25 mars 2005StatutMembreDernière intervention23 mai 2008
-
23 mai 2008 à 09:12
Bonjour, voici mon problème:
Je suis apprentis en alternance informatique (1ère année) et mon tuteur me demande de lui programmer en Delphi un programme capable de lire un fichier unicode, c'est à dire, de le convertir de manière à ce qu'il soit lisible, enregistrable sous un fichier par exemple .doc et imprimable.
Le seule problème c'est que je commence seulement à aborder la programmation orienté objet sous java en formation.....
Mon tuteur étant d'une compréhension "hors norme", il ma laissé que deux jours pour lui faire ce programme.
N'ayant aucune base en Delphi je demande donc a n'importe quel personne qui maitriserai ce langage de m'aider car la je suis vraiment dans une sale situation...
Pour l'instant le peu de code que j'ai tenté d'écrire est le suivant:
-------------------------------------------------------------------
unit Main;
l0sth34d2
Messages postés76Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention13 novembre 20081 16 mai 2008 à 16:38
Ce n'est certainement pas les autres qui vont faire tout ton programme, tu n'as pratiquement rien fait à part avoi r mis la procedure "Close", le opendialog qui s'execute et qui ne fait rien et le printdialog qui s'execute et qui ne fait rien.
Toutefois, voici une function qui te sera utile pour convertir un texte unicode en string:
function UnicodeToStr(Value: string): string;
var
I: Integer;
function HexToStr: string;
begin
Result := chr(Hex2Dec(Copy(Value, I + 1,2)));
Inc(I, 2);
end ;
begin
I : = 1;
Result := '';
try
repeat
if Value[I] = '%' then Result : = Result + HexToStr
l0sth34d2
Messages postés76Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention13 novembre 20081 21 mai 2008 à 15:18
Delphiprog, il faut voir sa du bon côté, peut-être que la réponse va pouvoir aider quelqu'un d'autre que lui! .. Du moins, c'est ce que je me dis pour ne pas peté les plombs...
Lesthat59
Messages postés3Date d'inscriptionvendredi 25 mars 2005StatutMembreDernière intervention23 mai 2008 22 mai 2008 à 09:28
Bonjour,
Mille pardon pour le retard dans les validations de réponses.
J'ai rencontré des problème de connexion au travail.
Je te remercie enormément pour ton code il m'a aidé grandement à avancer dans mon travail.
Encore désolé pour le retard!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Lesthat59
Messages postés3Date d'inscriptionvendredi 25 mars 2005StatutMembreDernière intervention23 mai 2008 23 mai 2008 à 09:12
Bonjour,
Mon nouveau problème est le suivant:
Mon entreprise reçoit souvant des lettre provenant de pologne, écrit dans un fichier . doc, et à la police Times New Roman.
Lorsque l'on fait un copier/coller dans un fichier .txt Les caractères spéciaux ne sont pas visibles.
Le but de l'application serait de pouvoir ouvrir le fichier .doc et de le convertir en fichier .txt tout en conservant les caractère d'origine.
Pour le moment, j'essaye de tester (en grand debutant que je suis...) de diverse manière en utilisant les canvas mais cela affiche des caractère bizard comme: []&.
Voici le source dans le lequel on essaye avec les caractère chinois( a savoir que mon tuteur est aussi perdu que moi sur le sujet):
procedure XieHanZi(Canvas:TCanvas; x,y:integer; GB:string);
var
W:PWideChar;
GBlength, UNILength, WSize:integer;
begin
GBLength:=Length(GB);
WSize:=GBLength*2 + 2;
GetMem(W, WSize);
ZeroMemory(W,WSize);
MultiByteToWideChar(CP_UTF8,0,PChar(GB),GBLength,W,WSize);
// Get length of UNICODE string
UNILength:=LStrLenW(W);
// Write the text
TextOutW(Canvas.Handle, x,y,W,UNILength);
// Clean up
FreeMem(W, GBLength*2+2);
end;
procedure TFrameForm.FormPaint(Sender: TObject);
var
x : integer;
y : integer;
row,col:integer;
const
hh = 10;
begin
Canvas.Font.Name :='Times New Roman';
Canvas.Font.Style :=[];
y:=0;
Canvas.Font.CharSet:= ANSI_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= DEFAULT_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= SYMBOL_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= SHIFTJIS_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= HANGEUL_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= GB2312_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= CHINESEBIG5_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= OEM_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= JOHAB_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= HEBREW_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= ARABIC_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= GREEK_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= TURKISH_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= VIETNAMESE_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= THAI_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= EASTEUROPE_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= RUSSIAN_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= MAC_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
Canvas.Font.CharSet:= BALTIC_CHARSET ; XieHanZi (Canvas,50, y, #$01+#$26 ); y:=y+20;
end;
end.
-----------------------------------------------
Merci d'avance pour ta réponse!