如何使用十六进制格式增加循环?你好,
我想创建一个列表并用以下条目填充它:AB63,AB64,... AB79,AC63,... AZ79。
不幸的是,我还无法弄清楚如何以十六进制方式增加(“J”= Hex(4A)等)
因此,对于字母 JO(Hex4A - Hex4F),我创建了单独的循环,这非常麻烦。
是否有人知道以十六进制递增的方法,以便我可以将其全部保存在一个循环内?
感谢您的帮助。
凯文
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++;
);
);
自动化和脚本回复:如何使用十六进制格式增加循环?您可以看一下 For Each() 循环结构。它具有更灵活的索引结构。
回复:如何使用十六进制格式增加循环?很好地调用了 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
回复:如何使用十六进制格式增加循环?克雷格,
哇,非常感谢。我会花更多时间理解“写入”行。感谢您的帮助!
凯文
回复:如何使用十六进制格式增加循环?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" );谢谢专家!
回复:如何使用十六进制格式增加循环?@lala - 有趣的例子。说明:open 函数通常使用文件名作为其第一个参数,但可以采用实际数据的 blob 参数,这需要第二个参数,因为没有文件扩展名。“text”表示将数据解释为文本文件,即类似 CSV 的文件。此 CSV 每行有一个值,没有逗号。
回复:如何使用十六进制格式增加循环?谢谢 Craige!
