| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1893 人关注过本帖, 1 人收藏
标题:【散分】谁来写个让文档只显示小节号的.exe
只看楼主 加入收藏
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
结帖率:100%
收藏(1)
 问题点数:0 回复次数:17 
【散分】谁来写个让文档只显示小节号的.exe
有如下文档,大家可以复制保存为c://1.txt
然后写个.exe
open    1://1.txt
扫描所有字符
如果是小节号,保留;
不是就删除
然后每行一组的输出
比如下面的这些,最后输出效果为
1.1
1.2
1.3
......
4.1
4.2.1
4.2.2        
4.2.3
......
最后导出满足以上输出效果的2.txt
程序代码:
<h5>第一章 Word2007概述  </h5>
</div>
<div class="rightList">
<ul>
<li>1.1<a href="http://tech.">Word2007概述</a></li>
<li>1.3<a href="http://tech.">初体验-功能区</a></li>
<li>1.5<a href="http://tech.">初体验-额外选项卡</a></li>
<li>1.7<a href="http://tech.">初体验-软件操作的快捷方式</a></li>
</ul>
<ul>
<li>1.2<a href="http://tech.">Word的启动与退出及第一印象</a></li>
<li>1.4<a href="http://tech.">初体验-对话框启动器</a></li>
<li>1.6<a href="http://tech.">初体验-浮动工具栏</a> </li>
<li></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第二章 文档的基本操作  </h5>
</div>
<div class="rightList">
<ul>
<li>2.1<a href="http://tech.">创建新文档</a></li>
<li>2.3<a href="http://tech.">打开文档</a></li>
</ul>
<ul>
<li>2.2<a href="http://tech.">输入文本、保存文档</a></li>
<li></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第三章 Word2007的编辑技术 </h5>
</div>
<div class="rightList">
<ul>
<li>3.1<a href="http://tech.">选择文本</a></li>
<li>3.3<a href="http://tech.">查找文本</a></li>
<li>3.5<a href="http://tech.">撤销和恢复</a></li>
</ul>
<ul>
<li>3.2<a href="http://tech.">删除、复制、移动文本</a></li>
<li>3.4<a href="http://tech.">替换文本</a></li>
<li></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第四章 Word2007排版技术  </h5>
</div>
<div class="rightList">
<ul>
<li>4.1<a href="http://tech.">字符格式化设置</a></li>
<li>4.2.2<a href="http://tech.">设置段落行距与间距</a></li>
<li>4.3<a href="http://tech.">添加边框和底纹</a></li>
<li>4.5<a href="http://tech.">使用格式刷</a> </li>
</ul>
<ul>
<li>4.2.1<a href="http://tech.">设置段落对齐方式</a></li>
<li>4.2.3<a href="http://tech.">设置段落缩进</a></li>
<li>4.4<a href="http://tech.">项目符号和编号</a></li>
<li>4.6<a href="http://tech.">样式的使用</a></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第五章 表格操作  </h5>
</div>
<div class="rightList">
<ul>
<li>5.1<a href="http://tech.">插入表格</a></li>
<li>5.3<a href="http://tech.">修改表格</a></li>
<li>5.4.2<a href="http://tech.">设置行、列、表格属性</a></li>
</ul>
<ul>
<li>5.2<a href="http://tech.">应用表格样式</a></li>
<li>5.4.1<a href="http://tech.">设置单元格属性</a></li>
<li>5.5<a href="http://tech.">排序和数字计算</a></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第六章 使用图形对象  </h5>
</div>
<div class="rightList">
<ul>
<li>6.1.1<a href="http://tech.">插入图片</a></li>
<li>6.1.3<a href="http://tech.">修改图片属性2</a> </li>
<li> 6.3<a href="http://tech.">插入艺术字</a></li>
<li>6.5<a href="http://tech.">插入符号</a></li>
<li>6.6.2<a href="http://tech.">插入超链接、首字下沉、文件中的文字</a></li>
</ul>
<ul>
<li>6.1.2<a href="http://tech.">修改图片属性1</a></li>
<li>6.2<a href="http://tech.">插入文本框</a></li>
<li> 6.4<a href="http://tech.">插入时间</a> </li>
<li>6.6.1<a href="http://tech.">插入剪贴画和形状</a></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第七章 页面设置 </h5>
</div>
<div class="rightList">
<ul>
<li>7.1.1<a href="http://tech.">插入相同的页眉或页脚</a></li>
<li>7.1.3<a href="http://tech.">设置首页不同、奇偶页不同</a></li>
<li>7.3<a href="http://tech.">分栏设置</a></li>
<li>7.5<a href="http://tech.">设置页边距和装订边距</a></li>
</ul>
<ul>
<li>7.1.2<a href="http://tech.">将页眉保存到库中</a></li>
<li> 7.2<a href="http://tech.">页码操作</a></li>
<li>7.4<a href="http://tech.">设置纸张方向和大小</a></li>
<li></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第八章 关于功能区的其他选项卡的介绍  </h5>
</div>
<div class="rightList">
<ul>
<li>8.1<a href="http://tech.">引用选项卡和邮件选项卡</a></li>
</ul>
<ul>
<li>8.2<a href="http://tech.">审阅选项卡</a> </li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第九章 Word2007新功能及实用技巧 </h5>
</div>
<div class="rightList">
<ul>
<li>9.1<a href="http://tech.">博客撰写与发布功能</a></li>
<li>9.3<a href="http://tech.">创建文档封面</a></li>
<li> 9.5.1<a href="http://tech.">插入数据图表1 </a></li>
<li>9.6<a href="http://tech.">插入公式</a></li>
<li>9.8.1<a href="http://tech.">实用技巧-更改默认的文件类型</a></li>
<li>9.8.3<a href="http://tech.">宏的基本应用</a></li>
</ul>
<ul>
<li> 9.2<a href="http://tech.">创建书法字帖</a></li>
<li>9.4<a href="http://tech.">插入SmartArt图形</a></li>
<li> 9.5.2<a href="http://tech.">插入数据图表2</a></li>
<li> 9.7<a href="http://tech.">Word2007的稿纸功能</a></li>
<li>9.8.2<a href="http://tech.">实用技巧-定制快速访问工具栏</a></li>
<li>9.8.4<a href="http://tech.">善用、勤用Word帮助文档</a></li>
</ul>
<div class="blank6"></div>
</div>
<div class="title">
<h5>第十章 综合实例 </h5>
</div>
<div class="rightList">
<ul>
<li>10.1.1<a href="http://tech.">会议邀请函1 </a></li>
<li>10.2<a href="http://tech.">制作个人简历</a></li>
<li>10.3.2<a href="http://tech.">模板应用2 </a></li>
<li>10.4.2<a href="http://tech.">制作文档目录2</a></li>
<li>10.5.2<a href="http://tech.">邮件合并功能2</a></li>
<li>10.6.2<a href="http://tech.">插入页眉、页脚</a></li>
<li>10.6.4<a href="http://tech.">利用快捷键设置页边距</a></li>
<li>10.6.6<a href="http://tech.">在页面底部插入引文</a></li>
<li>10.6.8<a href="http://tech.">发布</a></li>
</ul>
<ul>
<li>10.1.2<a href="http://tech.">会议邀请函2</a></li>
<li>10.3.1<a href="http://tech.">模板应用1 </a></li>
<li>10.4.1<a href="http://tech.">制作文档目录1 </a></li>
<li>10.5.1<a href="http://tech.">邮件合并功能1</a></li>
<li>10.6.1<a href="http://tech.">设置文档样式、插入封面</a></li>
<li>10.6.3<a href="http://tech.">插入图片对象</a></li>
<li>10.6.5<a href="http://tech.">修改页码</a></li>
<li>10.6.7<a href="http://tech.">添加批注、进行审阅修订</a></li>
</ul>
搜索更多相关主题的帖子: 文档 exe 
2010-04-23 02:04
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
ps:
    写出可运行的                                                     +5分
    写出可运行且灵活性强(比如还能稍微改改代码就能只显示(*))的        +10分
    写出可运行且人性化(比如我输入“数字”就只显示数字)               +15分
    写出满足以上要求还有意想不到效果的                               +20分    (效果越好加分越多)

————————————————————————-        正则表达式请加亮
                别找偶要码,就当我不会写
                少整没用的,等着看效果

    不写码的方法也可以,只要能用win7系统自带工具或者word能编辑成只显示小节号的就可以(但这个小节号不是word生成的哟)        恩,这个就+10分吧


本贴加分有效期    3天

我可好玩啦...不信你玩玩^_^
2010-04-23 02:13
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
我不得不说,这种事情根本就不适合用C语言做。如果必须要用C语言(比如在一个项目里面去处理),那么借助第三方库是很理想的(比如pcre,见:http://www.),如果非要用C,那也用不着考虑所谓的“灵活性”——因为C语言最大的特点是速度,而不是灵活性。下面是个精确完成目标的程序:

程序代码:
#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define BUFSIZE 5000
int main(void)
{
    char buffer[BUFSIZE];

    while (fgets(buffer, BUFSIZE, stdin) != NULL)
    {
        if (strncmp(buffer, "<li>", 4) == 0)
        {
            int has_output = 0;
            char *pt;
            for (pt = &buffer[4]; isdigit(*pt) || *pt == '.'; ++pt)
            {
                has_output = 1;
                fputc(*pt, stdout);
            }
            if (has_output)
                fputc('\n', stdout);
        }
        if (buffer[strlen(buffer) - 1] != '\n')
        {
            int ch;
            while ((ch = fgetc(stdin)) != '\n'
                    && ch != EOF)
                ;
            if (ch == EOF)
                break;
        }
    }
    return 0;
}


使用重定向来输入文件。

为了说明这个工作不适合C程序做,我们看看Win7有没有自带能干这件事的工具,显然是有的!请点击“开始菜单”,“附件”,“Windows PowerShell”,“Windows PowerShell”
在弹出来的窗口中用cd进入你的文件所在的文件夹,然后执行以下命令:
程序代码:
Get-Content in.txt | `
    ForEach-Object {} { `
        If ($_ -match "^<li>((?:\d|\.)+)") `
        { echo $matches[1]} `
    } {}

即可达到目的。

最后,我说明一下,其实处理文本最好的系统是*nix系统,如果你在Linux上,那么你可以非常简单地完成这个任务:
grep -Eo '^<li>([0-9]|\.)+' in.txt | sed 's/<li>//'

如果sed用得好,这个直接可以用sed处理,不过我的sed学的非常的烂啦…………


UPDATE: 弄出一个单纯只是使用sed的命令:
sed -nr '/^<li>[0-9]/s/^<li>(([0-9]|\.)+).*$/\1/p' in.txt

不知道有没有更简单的…………


[ 本帖最后由 StarWing83 于 2010-4-23 06:22 编辑 ]
收到的鲜花
  • pgy2010-04-23 08:00 送鲜花  10朵   附言:vim啦啦~~~~
  • pgy2010-04-23 17:46 送鲜花  10朵   附言:爱死你丫的了
  • jcslt2010-05-02 19:11 送鲜花  5朵   附言:学习了,特别是你的博客
  • jcslt2010-05-02 19:13 送鲜花  5朵   附言:再赞一个

专心编程………
飞燕算法初级群:3996098
我的Blog
2010-04-23 05:51
itma
Rank: 4
等 级:业余侠客
帖 子:105
专家分:266
注 册:2010-2-8
收藏
得分:0 
不会用C做。。。静待答案。。
另外,二楼所说的那个第三方库有什么功能????
2010-04-23 08:07
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 3楼 StarWing83
果然很牛X啊

我就是真命天子,顺我者生,逆我者死!
2010-04-23 08:26
mywaylgh
Rank: 8Rank: 8
来 自:厨房
等 级:蝙蝠侠
威 望:5
帖 子:188
专家分:729
注 册:2010-3-10
收藏
得分:0 
同意二楼的(佩服下).....
此种问题确实不适合用C来做

还有现在开源代码啥的超多,基本上linux有的windows里可以有,windows有的linux同样也有
附windows版的grep  [local]1[/local]
具体做法如二楼...更具体的查看help吧

不过对文本处理,本人更倾向于用perl(没安装的话就google 安装吧)
以下为perl代码,假设此代码保存在 rs.pl 中:

open(FL,"$ARGV[0]") || die("File $ARGV[0] is not exist!");
open(OUT,">$ARGV[1]");
while(<FL>){
    if(/\>\s{0,}(\d+[\.\d]{0,})\</){
        print OUT $1,"\n";
    }
}
close FL;
close OUT;

红色为正则表达式
运行方法:perl rs.pl 1.txt 2.txt
就ok了

收到的鲜花
  • pgy2010-04-23 17:48 送鲜花  5朵   附言:嘿嘿

人生就像茶几 上面放着许多杯具

人生也像厨房 里面总有一些洗具
2010-04-23 10:51
mywaylgh
Rank: 8Rank: 8
来 自:厨房
等 级:蝙蝠侠
威 望:5
帖 子:188
专家分:729
注 册:2010-3-10
收藏
得分:0 
windows版grep怎么没附上呢?...
晕,再附下  
grep.rar (74.89 KB)

收到的鲜花
  • pgy2010-04-23 17:49 送鲜花  1朵   附言:win7运行错误

人生就像茶几 上面放着许多杯具

人生也像厨房 里面总有一些洗具
2010-04-23 10:55
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
回复 6楼 mywaylgh
perl的话直接while(<>)就行了,我是觉得一来pgy应该很没耐心下载一个strawberry perl并且学习一种骆驼式的语言,二来其实perl的代码大体上和用sh的差不多。

哦,对了,还有,如果要在Win下面用Unix的工具的话,有两个选择,一个是GnuWin32项目(请自觉Google),另外一个是minSYS(网址:)。不过学习曲线也不会很平坦,好自为之吧。


[ 本帖最后由 StarWing83 于 2010-4-27 20:48 编辑 ]
收到的鲜花
  • pgy2010-04-29 06:00 送鲜花  1朵   附言:星翼神话,写部小说,哈哈!

专心编程………
飞燕算法初级群:3996098
我的Blog
2010-04-27 20:47
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:0 
围观各位啦

想象力征服世界
2010-04-28 18:34
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
我也围观
2010-04-29 12:48
快速回复:【散分】谁来写个让文档只显示小节号的.exe
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047431 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved