aardio 文档

枚举与迭代

集合对象

集合对象在这里泛指被其他对象管理的一组具有类似行为的对象,例如桌面上的所有窗口, 目录下的所有文件,aardio 语言中表示复合数据的 table 对象

枚举、迭代

枚举函数的主要特点:

迭代器工厂函数的主要特点:

注意这只是一种应用于 aardio 标准库的约定,非硬件规定。

示例:遍历窗口

调用 winex.enum 枚举所有桌面窗口:

import winex;

//枚举所有窗口(包括子窗口)。
winex.enum( 

    function(hwnd,depth){
        print( 
            depth/*深度*/,
            hwnd/*窗口句柄*/,
            win.getText(hwnd,30)/*标题*/ 
        )
    } 
)

请参考:定义函数

从上面的示例可以看出:

调用 winex.each 遍历所有顶层桌面窗口:

import winex;

for hwnd,title,theadId,processId in winex.each( ) { 
    print( hwnd,title,theadId,processId )
}

请参考:泛型 for 与迭代器

从上面的示例可以看出:

示例:遍历目录下的文件

fsys.enum(path,fileMask,callback,subDirectory) 可用于遍历目录下的全部文件。 path 指定目录,fileMask 指定通配符或通配符数组,callback 指定回调函数,subDirectory 指定是否递归搜索所有子目录(省略则默认为 true )。

示例:

import fsys;
fsys.enum( "/", "*.*",
    function(dirname,filename,fullpath,findData){ 
        if(filename) print("文件名:" + filename); 
        else print( "目录名:" + dirname);
    } 
);

fsys.each(path,pattern,fileMask,findOption) 用于创建遍历目录的迭代器,遍历目录时不会递归搜索子目录。 path 指定目录。可选用 pattern 指定匹配模式串。可选用 fileMask 指定通配符或通配符数组。findOption 为 "file" 则仅限查找匹配的文件,为 "dir" 则仅限查找匹配的目录,不指定则不作限制。

import fsys;

for i,filename in fsys.each("/"){
    print(filename);
}

Markdown 格式