窗口程序集名 | 保 留 | 保 留 | 备 注 |
通用对话框类 | | | |
变量名 | 类 型 | 数组 | 备 注 |
文件覆盖提示1 | 整数型 | |
目录必须存在1 | 整数型 | |
不改变目录1 | 整数型 | |
是否多选1 | 整数型 | |
文件记录 | 字节集 | |
打开文件 | 打开文件名_ | |
创建时提示1 | 整数型 | |
文件必须存在1 | 整数型 | |
创建时提示1 =
#OFN_CREATEPROMPT 文件必须存在1 =
#OFN_FILEMUSTEXIST 文件覆盖提示1 =
#OFN_OVERWRITEPROMPT 目录必须存在1 =
#OFN_PATHMUSTEXIST 不改变目录1 = 0
是否多选1 = 0
|
文件对话框初始化 | | |
|
过滤器 | 文本型 | | | |
初始过滤器 | 整数型 | | | | 初始目录 | 文本型 | | | | 默认文件后缀 | 文本型 | | | | 创建时提示 | 逻辑型 | | | | 文件必须存在 | 逻辑型 | | | | 文件覆盖提示 | 逻辑型 | | | | 目录必须存在 | 逻辑型 | | | | 不改变目录 | 逻辑型 | | | | 是否多选 | 逻辑型 | | | |
打开文件.实例句柄 =
取实例句柄_ (取执行文件名 ())
打开文件.过滤器 =
子字节集替换 (到字节集 (删全部空 (过滤器
)),
{ 124
},
{ 0
}, ,
) +
{ 0
} +
{ 0
}打开文件.过滤器索引 =
选择 (初始过滤器 ≤ 0, 1, 初始过滤器 + 1
)打开文件.初始目录 = 初始目录
打开文件.默认扩展名 = 默认文件后缀
如果真 (是否为空 (创建时提示
) =
假)
创建时提示1 =
选择 (文件必须存在,
#OFN_CREATEPROMPT, 0
)

如果真 (是否为空 (文件必须存在
) =
假)
文件必须存在1 =
选择 (文件必须存在,
#OFN_FILEMUSTEXIST, 0
)

如果真 (是否为空 (文件覆盖提示
) =
假)
文件覆盖提示1 =
选择 (文件覆盖提示,
#OFN_OVERWRITEPROMPT, 0
)
如果真 (是否为空 (目录必须存在
) =
假)
目录必须存在1 =
选择 (目录必须存在,
#OFN_PATHMUSTEXIST, 0
)
如果真 (是否为空 (不改变目录
) =
假)
不改变目录1 =
选择 (不改变目录,
#OFN_NOCHANGEDIR, 0
)
如果真 (是否为空 (是否多选
) =
假)
是否多选1 =
选择 (是否多选,
#OFN_ALLOWMULTISELECT, 0
)

|
打开 | 逻辑型 | |
|
窗口句柄 | 整数型 | | | |
类型 | 整数型 | | | | 文件名 | 文本型 | | | | 对话框标题 | 文本型 | | | | 对话框样式 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
是否成功 | 逻辑型 | | |
temp | 字节集 | | |
文件名数组 | 文本型 | | 0 |
N | 整数型 | | |
所选文件 | 文本型 | | |
打开文件.标题 = 对话框标题
连续赋值 ({ }, 打开文件.文件名, 打开文件.文件标题, temp, 文件记录
)打开文件.窗口句柄 = 窗口句柄
如果真 (不改变目录1 = 0
)
文件记录 =
{ }
判断 (文件名 ≠
“”)
temp =
到字节集 (文件名
)
temp =
子字节集替换 (temp,
{ 59
},
{ 0
}, ,
)

temp = 文件记录
打开文件.文件名 = temp + 取空白字节集 (选择 (是否多选1 ≠ 0, 2048, 256) - 取字节集长度 (temp) + 1)打开文件.文件名最大长度 =
取字节集长度 (打开文件.文件名
)打开文件.结构大小 = 76
判断 (类型 = 0
) 
打开文件.标记 =
位或 ( #OFN_HIDEREADONLY, #OFN_EXPLORER, #OFN_ENABLESIZING, 创建时提示1, 文件必须存在1, 文件覆盖提示1, 目录必须存在1, 不改变目录1, 是否多选1
)
如果真 (对话框样式 ≠ 0
)

打开文件.标记 =
位或 (打开文件.标记,
#OFN_ENABLEHOOK, #OFN_EXPLORER )
是否成功 = 取打开文件名_ (打开文件)
判断 (类型 = 1
) 
打开文件.标记 =
位或 ( #OFN_EXPLORER, #OFN_ENABLESIZING, 文件覆盖提示1, 目录必须存在1, 不改变目录1, 是否多选1
)
是否成功 =
取保存文件名_ (打开文件
)



如果真 (是否成功
)

文件记录 = 打开文件.文件名

temp = 打开文件.文件名

temp =
取字节集左边 (temp,
寻找字节集 (temp,
{ 0, 0
},
) - 1
)

判断 (寻找字节集 (temp,
{ 0
},
) ≠ -1
且 是否多选1 =
#OFN_ALLOWMULTISELECT )

文件名数组 =
分割文本 (到文本 (子字节集替换 (temp,
{ 0
},
{ 124
}, ,
)),
“|”,
)

如果真 (取文本右边 (文件名数组
[1
], 1
) ≠
“\”)


文件名数组
[1
] = 文件名数组
[1
] +
“\”

计次循环首 (取数组成员数 (文件名数组
) - 1, N
)


判断 (取数组成员数 (文件名数组
) - 1 ≠ N
)



所选文件 = 所选文件 + 文件名数组
[1
] + 文件名数组
[N + 1
] +
“;”







所选文件 = 所选文件 + 文件名数组
[1
] + 文件名数组
[N + 1
]

处理事件 ()

计次循环尾 ()

文件名 = 所选文件


文件名 =
取字节集数据 (temp,
#文本型, )
连续赋值 ({ }, 打开文件.文件名, 打开文件.文件标题, temp, 文件记录)所选文件 =
“”清除数组 (文件名数组
) 返回 (是否成功
)