Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Les Défis DELPHI - Générez de jolis fichiers ASCII !

Image non disponible

Le 6e défi proposé par l'équipe Delphi est la création d'une application qui, à partir d'un texte en entrée, d'une police de caractères, d'une largeur et d'une hauteur saura générer un art ASCII dans un fichier texte.

L'art ASCII consiste à réaliser des images uniquement à l'aide des lettres et caractères spéciaux contenus dans le code ASCII (1).

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Sujet du défi

Le 6e défi proposé par l'équipe Delphi est la création d'une application qui, à partir d'un texte en entrée, d'une police de caractères, d'une largeur et d'une hauteur saura générer un art ASCII dans un fichier texte.

L'utilisateur devra saisir un texte avec la police de caractères de son choix.

L'utilisateur devra également spécifier le nombre de caractères utilisés pour la largeur et la hauteur de l'art ASCII que l'application va lui générer.

L'application devra être capable de générer un fichier ASCII dessinant le texte saisi par l'utilisateur avec sa police de caractères utilisée.

Le fichier généré ne pourra utiliser que des caractères ASCII non étendus et supérieurs ou égaux à 32. La police de caractères utilisée pour visualiser les fichiers générés est :

Police de caractères
Sélectionnez
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Courier New'
Font.Style = []

Le fichier généré possèdera le nombre de caractères saisi pour la largeur et pour la hauteur par l'utilisateur.

Et comme rien ne vaut un exemple… Imaginons celui-ci :

Exemple en art ASCII / deux polices différentes / largeur 80 caractères / hauteur 25 caractères
Sélectionnez

PPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZ  DELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELP  
COMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMD  HIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDE  
ELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPH  VELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELO  
IDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDE  VELOPPEZCOMDELPHID  PPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZ  
EVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVE  LOPPEZCOMDELPHIDEV  COMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMD  
ELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELO  PPEZCOMDELPHIDEVEL  ELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPH  
OPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPP  EZCOMDELPHIDEVELOP  IDEVE         L          O        P     PEZCOM D             ELPH         IDEVEL  
PEZCOMDEL      PHI   DE   VE       LO   P        P       EZC  OMD      ELPHIDEVE  OPPEZCO       MD   EL  PHID       E     VEL    OPP   E   Z  COMDELP       HIDEVE  
LOPPEZCO        MD   E    LP        H            I        DE  VE        LOPPEZCO  LOPPEZC   OM  DE   LP  HIDE   VE  LO    PPE    ZCO   MD     ELPHIDE   VE  LOPPEZ  
MDELPHID        EV        EL        O            P        PE  ZC        OMDELPHI  COMDELP     HIDEV     ELOPP     EZCO     M    DELP   HI     DEVELOP     PEZCOMDE  
DEVELOP         PEZ      CO    M    D            E   L    PH  I         DEVELOPP  LPHIDEV     ELOPPE    ZCOMD     ELPH     I    DEVE   L      OPPEZCO     MDELPHID  
EZCOMDE         LPHI    DEV         E   LO  PP   E  ZCO   MD  E         LPHIDEVE  EVELOPP      EZCOMD  ELPHID      EVE          LOPP       E  ZCOMDEL     PHIDEVEL  
LOPPEZC       OMDELP    HID       EVE   LO  PP   E  ZCO   MD  E       LPHIDEVELO  OPPEZCO      MDELP    HIDEV      ELO  P       PEZC     OMD  ELPHIDE     VELOPPEZ  
PPEZCOM     DELPHID     EVE     LOPPE   ZC  OM   D  ELP   HI  D     EVELOPPEZCOM  COMDELP      HIDE     VELOP      PEZ  CO   MD ELPH   IDEVE  LOP  PE     ZCOMDELP  
DELPHID    EV   EL       OP   PEZ   C   OM  DE   L   P    HI  D    EV   ELOPPEZC  HIDEVEL   OPP EZC      OMDE   LPH     ID   EV ELOP   PEZCO  MDE  LP   HI  DEVELO  
OMDELPH         I         D         E   VE  LO   P        PE  Z         COMDELPH  PPEZCOM    DE  L   PH  IDEV     E         LOP  PEZ   COMDE       LP    H   IDEVE  
IDEVELOPP      EZ   COM   DE       LP   HI  DE   V      ELOP  PEZ      COMDELPHI  LOPPE                                   Z CO           MD                  ELPHI  
DEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCO  MDELPHIDEVELOPPEZCOMDELPHIDE  DEVEL                              OPPEZCOMD           EL       P          HIDEV  
VELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMD  ELPHIDEVELOPPEZCOMDELPHIDEVE  ELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOP  
LOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDEL  PHIDEVELOPPEZCOMDELPHIDEVELO  PEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZC  
PPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPH  IDEVELOPPEZCOMDELPHIDEVELOPP  OMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDE  
EZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHID  EVELOPPEZCOMDELPHIDEVELOPPEZ  LPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHI  
HIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDE  LOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPP 
DELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELP  DEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVE 
VELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELO  EZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCOMDELPHIDEVELOPPEZCO 

I-A. Prérequis

Pour réaliser ce défi, une simple édition personnelle de Delphi suffit. Pas besoin d'avoir les bibliothèques spécifiques aux versions Pro/Entreprise/Architecte !
Certaines versions personnelles de DELPHI sont disponibles au téléchargement sur Developpez.com.

Il peut être nécessaire de savoir farfouiller dans la rubrique DELPHI et plus particulièrement dans :

I-B. Les objectifs du défi

Le logiciel doit comporter les éléments suivants :

  1. créer l'interface utilisateur de l'application ;
  2. respecter le sujet du défi :
    1. l'utilisateur devra saisir un texte avec la police de caractères de son choix,
    2. l'utilisateur devra également spécifier le nombre de caractères utilisés pour la largeur et la hauteur de l'art ASCII que l'application va lui générer,
    3. l'application devra être capable de générer un fichier ASCII dessinant le texte saisi par l'utilisateur avec sa police de caractères utilisée,
    4. le fichier généré ne pourra utiliser que des caractères ASCII non étendus et supérieurs ou égaux à 32. La police de caractères utilisée pour visualiser les fichiers générés est :
    Police de caractères
    Sélectionnez
    Font.Charset = ANSI_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Courier New'
    Font.Style = []
    
  3. Laissez libre cours à votre imagination et proposez vos propres fonctionnalités.

Les participants doivent respecter les règles du défi et le déroulement du défi, et plus précisément que « l'utilisation de composantes ou bibliothèques autres que celles fournies en standard par Borland sont interdites, qu'elles soient commerciales, freewares, open source, etc. »


Extrait de Wikipedia.

  

Copyright © 2008 Équipe Delphi Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.