Come posso incrementare un ciclo utilizzando il formato esadecimale?Ciao,
Voglio creare un elenco e popolarlo con le seguenti voci: AB63, AB64,... AB79, AC63,...AZ79.
Sfortunatamente, non sono riuscito a capire come incrementare in modo esadecimale ("J" = Hex(4A), ecc.)
Quindi, per le lettere JO (Hex4A - Hex4F), ho creato cicli separati, il che è molto complicato.
Qualcuno conosce un modo per incrementare in modo esadecimale, in modo da poter mantenere tutto in un ciclo?
Grazie per l'aiuto.
Kevin
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++;
);
);
Automazione e scriptingRi: Come posso incrementare un ciclo utilizzando il formato esadecimale?Potresti dare un'occhiata alla struttura del ciclo For Each(). Ha una struttura di indicizzazione molto più flessibile.
Ri: Come posso incrementare un ciclo utilizzando il formato esadecimale?buona chiamata a 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
10 d.C
11 d.C
AE09
AE10
AE11
AF09
AF10
AF11
BD09
BD10
BD11
BE09
BE10
BE11
BF09
BF10
BF11
Ri: Come posso incrementare un ciclo utilizzando il formato esadecimale?Brama,
Wow, grazie mille. Dedicherò più tempo alla comprensione della riga "Scrivi". Apprezzo il vostro aiuto!
Kevin
Ri: Come posso incrementare un ciclo utilizzando il formato esadecimale?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" );Grazie Esperti!
Ri: Come posso incrementare un ciclo utilizzando il formato esadecimale?@lala - esempio interessante. Spiegazione: la funzione open solitamente utilizza un nome file come primo parametro, ma può accettare un parametro blob dei dati effettivi, che richiede un secondo parametro poiché non esiste un'estensione file. "testo" significa interpretare i dati come un file di testo, ovvero un file simile a CSV. Questo CSV ha un valore per riga e nessuna virgola.
Ri: Come posso incrementare un ciclo utilizzando il formato esadecimale?Grazie Craige!
