Board logo

标题: [文本处理] 如何按指定字符分割含特殊符号的.RC文件, 并提取其中的字符做变量?? [打印本页]

作者: 好哇    时间: 2012-1-24 23:45     标题: 如何按指定字符分割含特殊符号的.RC文件, 并提取其中的字符做变量??

本帖最后由 好哇 于 2012-1-25 00:38 编辑

新年好!

这个问题我搜索过, 基本都是分割小说的. 我还想提取当中的字符作为变量, 后续有需要用, 但我写得不好.

从 exe/dll 导出来的 菜单/对话框 的文本文件 *.rc
导出来的同类型资源被包含在一个文件里了, 比如 菜单类, 只一个 menu.rc , 而不是按原有序号名称分别生成 100.rc, 106.rc, 200.rc ...

要求:
1. 在 RC 文件里, 菜单/对话框 的关键词分别为 MENU/DIALOGES , 这些名词是固定的, 而具体的资源名字位于这些关键词的前面, 通常是不连续的数字, 但也可能是英文单词. 我想把它分割开来, 并按提取到的实际名字命名;

2. 菜单/对话框/字符串 的内容会包含特殊字符, 要按原样和原来的缩进格式输出, 以免导入或运行的时候出错;

附上资料:

menu.rc 的内容:
100 MENU
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
POPUP "文件(&F)"
{
        MENUITEM "新建(&N)\tCtrl+N",  40000
        MENUITEM "打开(&O)...\tCtrl+O",  40001
            ......
}
}
106 MENU
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
POPUP "+"
{
        MENUITEM "撤销(&U)",  40300
        MENUITEM "重做(&R)",  40301
        MENUITEM SEPARATOR
           ......
}
}
...


dialoges.rc 内容:
100 DIALOGES 0, 0, 255, 100
STYLE DS_FIXEDSYS | DS_NOFAILCREATE | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Explorer"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
FONT 8, "Tahoma"
{
   CONTROL "OK", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 195, 75, 50, 14
}

201 DIALOGES 0, 0, 188, 129
STYLE DS_FIXEDSYS | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "打开方式..."
......


比如, 搜索带有"DIALOGES"的行, 以原格式分割, 并命名新的文件为"100.rc", "201.rc", ......
怎么样使执行效果又快又好?

非常感谢!!
作者: applba    时间: 2012-1-25 01:04

看看批处理对%的处理机制就让人望而却步了,所以使用批处理使用不行~
Tab字符为神马要处理?
作者: 好哇    时间: 2012-1-25 10:19

不是吧,真的不可以吗?
如果能处理Tab字符那就最好咯,原汁原味当然是最好了,我的要求高了?
作者: find    时间: 2012-1-25 11:49

你自己写的哪里不好?贴出来看看先




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2