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

Contribuez Pascal Discussion :

Lire au moyen des expressions régulières toutes les chaînes EPD/FEN d'un fichier


Sujet :

Contribuez 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 Lire au moyen des expressions régulières toutes les chaînes EPD/FEN d'un fichier
    Bonjour !

    J'étais très content d'avoir écrit cette petite unité, alors je la partage avec vous.

    Imaginez que vous vous voulez charger une liste de chaînes à partir d'un fichier contenant des chaînes au format FEN (représentant un moment dans une partie d'échecs).

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    n7/3p1p2/NpkNp1p1/1p2P3/3Q4/6B1/b7/4K3 w - - 0 1
    K6Q/1p6/pPq4P/P2p2P1/4pP1N/7k/n5R1/1n2BB2 w - - 0 1
    8/8/8/3p4/1N1P2Kp/Bkp5/5Q2/4N3 w - - 0 1

    Maintenant imaginez que le fichier se présente comme ceci.

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FEN[121] = "n7/3p1p2/NpkNp1p1/1p2P3/3Q4/6B1/b7/4K3 w - - 0 1 "; // Sam Loyd (1856) 4-move mate [Qg1] - (5)
    FEN[122] = "K6Q/1p6/pPq4P/P2p2P1/4pP1N/7k/n5R1/1n2BB2 w - - 0 1 "; // Sam Loyd (1867) 4-move mate [BxP] - (11)
    FEN[123] = "8/8/8/3p4/1N1P2Kp/Bkp5/5Q2/4N3 w - - 0 1 "; // Sam Loyd (1867) 4-move mate [Qf8] - (13)

    Là les expressions régulières sont vos amies.

    Le fichier utilisé par le programme de démonstration est téléchargeable sur cette page.

    Le programme charge 150 000 chaînes en moins de deux secondes.

    Toutefois, j'ai observé, en 32 bits (sous Windows, je ne sais plus quelle version du compilateur) que le programme ne s'arrêtait plus... Il faudrait signaler le bug...

    Il faudrait que j'écrive une autre version de l'unité avec la redoutable bibliothèque FLRE pour voir la différence.

    En espérant que ce code puisse vous être utile, même si vous ne vous intéressez pas aux échecs. Il peut être adapté à un autre besoin.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Trouver une expression régulière pour les valeurs des noeuds XML
    Par Motin dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 05/10/2011, 17h51
  2. Réponses: 2
    Dernier message: 19/02/2010, 16h37
  3. Réponses: 0
    Dernier message: 24/11/2009, 09h20
  4. Réponses: 1
    Dernier message: 04/05/2009, 08h31
  5. Réponses: 4
    Dernier message: 25/07/2006, 17h37

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