Comment incrémenter une boucle au format hexadécimal ?Bonjour,
Je souhaite créer une liste et la remplir avec les entrées suivantes : AB63, AB64,... AB79, AC63,...AZ79.
Malheureusement, je n'ai pas réussi à comprendre comment incrémenter de manière hexadécimale ("J" = Hex(4A), etc.)
Ainsi, pour les lettres JO (Hex4A - Hex4F), j'ai créé des boucles séparées, ce qui est très fastidieux.
Est-ce que quelqu'un connaît un moyen d'incrémenter de manière hexadécimale, afin que je puisse garder tout cela dans une seule boucle ?
Merci pour votre aide.
Kévin
JMP17
// Loop rows AB-AI; loop columns 63-79
// A = ASCII (41)
// I = ASCII (49)
For( firstChar = 41, firstChar < 42, firstChar++,
For( secondChar = 41, secondChar < 50, secondChar++,
For( number = 63, number < 80, number++,
// Build the list element
firstCharVal = Hex To Char( Char( firstChar ) );
secondCharVal = Hex To Char( Char( secondChar ) );
dataList[listIndex] = firstCharVal || secondCharVal || Char( number );
// Increase the index
listIndex++;
);
);
);
// Loop row AJ; loop columns 63-79
// J = ASCII (4A)
For( firstChar = 41, firstChar < 42, firstChar++,
For( number = 63, number < 80, number++,
// Build the list element
firstCharVal = Hex To Char( Char( firstChar ) );
dataList[listIndex] = firstCharVal || Hex To Char( "4A" ) || Char( number );
// Increase the index
listIndex++;
);
);
Automatisation et scriptRe : Comment incrémenter une boucle au format hexadécimal ?Vous pourriez jeter un œil à la structure de la boucle For Each(). Il a une structure d’indexation beaucoup plus flexible.
Re : Comment incrémenter une boucle au format hexadécimal ?bon appel à ForEach !
first = {"A", "B"};
second = {"D", "E", "F"};
number = 9 :: 11;
For Each( {f}, first, //
For Each( {s}, second, //
For Each( {n}, number, //
Write( Eval Insert( "\!n^f^^s^^right(char(/*6 digits of leading zeros*/1e6+n),2)^" ) )
)
)
);
AD09
AD10
AD11
AE09
AE10
AE11
AF09
AF10
AF11
BD09
BD10
BD11
BE09
BE10
BE11
BF09
BF10
BF11
Re : Comment incrémenter une boucle au format hexadécimal ?Craig,
Wow, merci beaucoup. Je vais passer un peu plus de temps à comprendre la ligne "Ecrire". J'apprécie ton aide!
Kévin
Re : Comment incrémenter une boucle au format hexadécimal ?txt="hex";first = {"A", "B"};
second = {"D", "E", "F"};
number = 9 :: 11;
For Each( {f}, first, //
For Each( {s}, second, //
For Each( {n}, number, //
txt=txt||( Eval Insert( "\!n^f^^s^^right(char(1e6+n),2)^" ) )
)
)
);
d1=Open( Char To Blob(txt), "text" );Merci les experts !
Re : Comment incrémenter une boucle au format hexadécimal ?@lala - exemple intéressant. Explication : la fonction open utilise généralement un nom de fichier pour son premier paramètre, mais peut prendre un paramètre blob des données réelles, ce qui nécessite un deuxième paramètre puisqu'il n'y a pas d'extension de fichier. « texte » signifie interpréter les données comme un fichier texte, ce qui signifie un fichier de type CSV. Ce CSV a une valeur par ligne et pas de virgules.
Re : Comment incrémenter une boucle au format hexadécimal ?Merci Craige!
