De rien.
Pour aller un peu plus loin et faire profiter tout le monde, voici un bout de code pour expliquer:
On commence par déclarer une liste, et la remplir avec un numéro croissant:
byte listeTriee[255];
for (int i = 0; i < 255; i++)
listeTriee[i] = i;
On a ainsi la liste des locos non triée, désignée par leur position dans l'EEPROM.
Puis on réalise le tri proprement dit par la méthode dite du tri à bulle: (
https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles)
for (int i = 255 - 2; i >= 0; i--)
{
for (int j = 0; j <= i; j++)
{
if (loco[listeTriee[j+1]].adresse < loco[listeTriee[j]].adresse)
{
byte t = listeTriee[j + 1];
listeTriee[j + 1] = listeTriee[j];
listeTriee[j] = t;
}
}
}
Si l'ordre entre deux locos n'est pas le bon, on échange simplement les octets de la liste triée.
Pour tester sur le nom ou autre chose, il suffit de remplacer le '.adresse' par autre chose. Pour trier dans l'ordre inverse, changer le '<' par un '>' !
Je n'ai ni compilé ni testé ce code...