IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Pascal Discussion :

Réalisation d'un dictionnaire [Free Pascal]


Sujet :

Langage Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut Réalisation d'un dictionnaire
    Bonjour !

    Je cherche à fabriquer un dictionnaire d'ouvertures pour un jeu d'échecs. Les données sont contenues dans un fichier texte que j'ai trouvé sur cette page :

    http://www.rebel.nl/edsoft.htm
    http://www.rebel.nl/download/eco.zip

    Les données se présentent ainsi :

    A00 Polish (Sokolsky) opening
    1.b2b4
    Soit une séquence de coups ("b2b4"), à laquelle sont associés un code ("A00") et une description ("Polish (Sokolsky) opening"), qu'il n'est peut-être pas utile de séparer.

    J'ai fabriqué une unité qui se présente ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    unit eco;
     
    // http://www.chessinformant.org/
    // http://www.rebel.nl/edsoft.htm
     
    {$MODE DELPHI}
     
    interface
     
    type
      TOpening = record
        code, name, moves: string;
      end;
     
    function GetOpening(const aMoves: string): string;
     
    implementation
     
    const
      DATA: array[1..1970] of TOpening = (
        (code: 'A00'; name: 'Polish (Sokolsky) opening'; moves: 'b2b4'),
        ...
      );
     
    function GetOpening(const aMoves: string): string;
    var
      i: integer;
    begin
      i := 0;
      repeat
        Inc(i);
      until (i > High(DATA)) or (DATA[i].moves = aMoves);
      if i > High(DATA) then
        result := ''
      else
        result := Concat(DATA[i].code, ' ', DATA[i].name);
    end;
     
    end.
    J'aurais aimé savoir si vous connaissez d'autres façons d'obtenir le même résultat.

    Pour la commodité de la discussion, je joins l'unité complète, avec un programme de test, ainsi que le fichier texte original, et le programme que j'ai écrit pour extraire les données et fabriquer l'unité.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réaliser un dictionnaire de données
    Par Tofalu dans le forum Contribuez
    Réponses: 10
    Dernier message: 19/08/2023, 19h04
  2. réalisation d'un dictionnaire de traductions
    Par kamclasse dans le forum Général Java
    Réponses: 8
    Dernier message: 27/11/2015, 13h03
  3. Réponses: 0
    Dernier message: 15/06/2014, 03h45
  4. Aide pour Réaliser un dictionnaire de données
    Par fanny69 dans le forum Modélisation
    Réponses: 8
    Dernier message: 14/12/2011, 18h46
  5. Réalisation d'un dictionnaire de synonymes en Java
    Par menoulette dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 24/05/2011, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo