begin process at 2010 03 18 22:22:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Création d'un programme permettant de lire un fichier unicode


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales