Accueil > Forum > > > > Création d'un programme permettant de lire un fichier unicode
Création d'un programme permettant de lire un fichier unicode
vendredi 16 mai 2008 à 10:12:52 |
Création d'un programme permettant de lire un fichier unicode

Lesthat59
|
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; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Buttons; type TForm1 = class(TForm) MainMenu1: TMainMenu; OpenFileDialog: TOpenDialog; Fichier1: TMenuItem; Ouvrir1: TMenuItem; SaveDialog1: TSaveDialog; PrintDialog: TPrintDialog; Memo1: TMemo; BitBtn1: TBitBtn; Enregistrersous1: TMenuItem; Enregistrer1: TMenuItem; N1: TMenuItem; Miseenpage1: TMenuItem; Imprimer1: TMenuItem; PrinterSetupDialog: TPrinterSetupDialog; procedure Quitter1Click(Sender: TObject); procedure Ouvrir1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Imprimer1Click(Sender: TObject); procedure Miseenpage1Click(Sender: TObject); { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Quitter1Click(Sender: TObject); begin Close; end; procedure TForm1.Ouvrir1Click(Sender: TObject); begin if OpenFileDialog.Execute then end; procedure TForm1.BitBtn1Click(Sender: TObject); begin Close; end; procedure TForm1.Imprimer1Click(Sender: TObject); begin if PrintDialog.Execute then end; procedure TForm1.Miseenpage1Click(Sender: TObject); begin PrinterSetupDialog.Execute; end; end. ---------------------------------------------------------
Configuration du pc: Windows 2000 pro, Delphi 7 édition pro
|
|
vendredi 16 mai 2008 à 16:38:03 |
Re : Création d'un programme permettant de lire un fichier unicode

l0sth34d2
|
Réponse acceptée !
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 else Result := Result + Value[I]; Inc(I); until I > Length(Value); except Result := ''; end; end;
|
|
vendredi 16 mai 2008 à 16:46:51 |
Re : Création d'un programme permettant de lire un fichier unicode

l0sth34d2
|
Réponse acceptée !
Petit oubli 
Ajoute ceci au début:
type Str002 = string[2];
Et voici la function Hex2Dec..
function Hex2Dec(Value: Str002): Byte; var Hi, Lo: Byte; begin Hi := Ord(Upcase(Value[1])); Lo := Ord(Upcase(Value[2])); if Hi > 57 then Hi := Hi - 55 else Hi := Hi - 48; if Lo > 57 then Lo := Lo - 55 else Lo := Lo - 48; Result := 16 * Hi + Lo end;
|
|
mardi 20 mai 2008 à 23:33:29 |
Re : Création d'un programme permettant de lire un fichier unicode

Delphiprog
|
Réponse acceptée !
@l0sth34d2 : tu crois que ça vaut encore le coup de se décarcasser alors que tu n'as reçu aucune réponse ni validation ? Encore un qui va se faire blacklister d'ici peu, tant pis pour lui...
May Delphi be with you !
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
|
|
mercredi 21 mai 2008 à 15:18:30 |
Re : Création d'un programme permettant de lire un fichier unicode

l0sth34d2
|
Réponse acceptée !
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...
|
|
jeudi 22 mai 2008 à 09:28:42 |
Re : Création d'un programme permettant de lire un fichier unicode

Lesthat59
|
Réponse acceptée !
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!
|
|
vendredi 23 mai 2008 à 09:12:08 |
Re : Création d'un programme permettant de lire un fichier unicode

Lesthat59
|
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!
|
|
Cette discussion est classée dans : sender, procedure, tobject, tmenuitem, tform1
Répondre à ce message
Sujets en rapport avec ce message
Newbie & TCPI/IP [ par Megafan ]
Bonjour je suis complétement débutant en delphi, par contre je suis pas mauvais en VB.Pourquoi je change allez vous dire ?Parce que VB ne tourne pas s
probleme avec sockets [ par PsyClown44 ]
Salut!J'ai un prob avec le composant TClientSocket : je n'arrive pas a recevoir de paquets lors d'une connexion!Voila le code:unit Unit1;interfaceuses
"Incompatible types :''Cardinal' and 'String' " [ par Don0Choa ]
Bonjour, je fais un petit prog permettant de fair des boite de dialogue en séléctionnant les bouttons, icones etc...Mais voila j'ai une erreur comem d
WebBrowser et page control [ par delphigenial ]
Voila, pour mon navigateur j'ai mis un page control et un Webbrowser à l'interieur, je n'arrive pas à faire en sorte qu'on puisse creer un nouvel ongl
procedure 'repetée' [ par karakvb ]
bon voila mon probleme: a la place de ca: procedure TForm1.Image1Click(Sender: TObject); begin image1.picture.loadfromfile(fichier); end;procedure TFo
[Socket] TcpServer-TcpClient : Erreur 10035 [ par Gmartintin ]
Bonjour à tous, Pour tester les sockets en Delphi 7 sans les composants Indy, j'essaie de mettre en place un TcpServer et un TcpClient, sur deux appli
TTcpClient: Recuperation des données HTML? [ par anykey ]
Voilà je voudrai simplement utiliser TTcpClient pour me connecter sur un serveur HTTP. J'arrive bien a me connecter, mais (evidemment il y a un mais),
Récupération d'une valeur [ par ouaich85 ]
Bonjour, voici mon code : unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrl
connexion client server avec socket [ par tchakadim ]
salut,jé fait un prog simple d'envoie et de reception des caractères mai jé un pb c'est que l'envoi du serveur au client ne s'effectue pas alors que d
afficher une ligne !!! [ par Hardouz ]
salut voici un bou de Code que je vien de faire a l'aide de plusieur membres du Cs je vous remerci bien :) mais je veut faire afficher la ligne qui co
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|