Arrays 循环通过由字符索引的数组

Arrays 循环通过由字符索引的数组,arrays,pascal,Arrays,Pascal,我的问题很简单。如何在Pascal中循环遍历这样的数组 P : array[char] of list; 我发现了一些关于for in循环的有希望的信息,但它们似乎不是用fpc编译的 谢谢 我希望这会对你有所帮助 type ch_array = array[char] of 1..26; var alphabet: ch_array; c: char; begin ... for c:= 'A' to 'Z' do alphabet[c] := ord

我的问题很简单。如何在Pascal中循环遍历这样的数组

P : array[char] of list;
我发现了一些关于for in循环的有希望的信息,但它们似乎不是用fpc编译的


谢谢

我希望这会对你有所帮助

type
   ch_array = array[char] of 1..26;
var
   alphabet: ch_array;
   c: char;
 begin
    ...
   for c:= 'A' to 'Z' do
    alphabet[c] := ord(c);  
   (* the ord() function returns the ordinal values *)
更多信息可在此链接查看。


谢谢

如果要在整个范围内迭代,请尝试

var c : char;
for c:=low(P) to high(p) do
   OperationOn(P[c]);
或者(更现代,需要2.6.x+)


你能修改你的代码以便编译吗(为了将来读者的利益)
Ord
是一个内在函数,而不是数组<代码>命令[m]不正确。此外,代码中任何地方都没有变量
m
。(我知道你的答案已被接受,但其中包含无效内容,可能会让在搜索中发现此内容的未来读者感到困惑。)@KenWhite感谢你注意到这一点。我把ord[m]改为ord[c]。因为ord()函数只返回序数值,在我们的例子中,该语句只是一个赋值操作,所以它可以是类似于
alphabet[c]:=c否,仍有部分错误。:-)
Ord
是一个函数,您不能使用
[]
调用函数;您用
()
调用它,因此正确的代码是
Ord(c)
。我帮你修好了。:-)
var t: list
for t in P do
  writeln(t.count);