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.
Partager