Je dispose d'une grille "virtuelle", correspondant à un quadrillage sur une carte. Chacune des mailles (cases) de cette grille est référencée par une abscisse (caractères) et une ordonnée (nombre). J'ai ainsi 793848 cases référencées de A1 à iA744.
J'ai une liste de cases extraites de cette grille parce qu'elles présentent un intérêt particulier.
Je voudrais pour toutes ces cases extraites, déterminer lesquelles sont voisines les unes des autres dans la grille (adjacentes ou ayant un coin en commun), c'est à dire obtenir une matrice de voisinage de ce style:
Code : Tout sélectionner
A1 A2 B3 C2
A1 0 1 0 0
A2 1 0 1 0
B3 0 1 0 1
C2 0 0 1 0
(0 indique que les cases sont distantes (ou confondues), 1 indique qu'elles sont voisines).
Pour déterminer si deux cases sont voisines, je compare la partie "caractères" et la partie "nombres" séparément. Pour les nombres pas de problème,mais pour les caractères, je ne vois pas vraiment comment déterminer si deux caractères se suivent dans l'alphabet, et de plus, certains caractères utilisés ne sont pas des lettres (" ] _ \ ^ ").
En revanche, les codes ASCII de tous ces caractères se suivent. Je voudrais donc récupérer ces codes ASCII pour effectuer des comparaisons du genre:
Code : Tout sélectionner
if(code_ascii(substr(case1,2,2)) == code_ascii(substr(case2,2,2))+1) {...}
Y'a-t-il un moyen de faire cela? Je n'ai pas trouvé de fonction correspondante.
Merci d'avance.