免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 21997 | 回复: 95
打印 上一主题 下一主题

动脑的机会来了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-25 11:11 |只看该作者 |倒序浏览
有一个网页文件,内容形式为
<html>
<head>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-16">
</head>
<body>
<pre>
<table width=100% bgcolor=#CFCFE5><tr> <td> <font face=arial size=+3>
Build Log
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0

我要读取该文件的信息
但读取出来的信息,每字符之间都有空格隔开了
请问如何解决些问题呢。运行程序,会提示
Use of uninitialized value in concatenation (.) or string at E:\WorkDir\script\p
erl\study\GetLogInfo.pl line 19, <LOGFILE> line 147.
Use of uninitialized value in concatenation (.) or string at E:\WorkDir\script\p
erl\study\GetLogInfo.pl line 19, <LOGFILE> line 148.

我用chomd这个函数来去掉空格也是不行的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2007-09-25 11:16 |只看该作者
嗯,看来你的程序名字叫 GetLogInfo.pl……
大约是第 19 行有问题。

论坛徽章:
0
3 [报告]
发表于 2007-09-25 11:23 |只看该作者

回复 #1 life382 的帖子

这个MM的信息。。好诡异
注册:2005-5-7
最后登录: 2007-09-25
帖子:1

很早就注册的。。第一个帖这个是
然后积分竟然还是12。。。
何解?

论坛徽章:
0
4 [报告]
发表于 2007-09-25 11:34 |只看该作者
会造成19行错就是因为读取文本的信息时,每一行的字串各字符都是空格隔开的显示,比如第一行<html>,读出来是? h t m l>,这样造成我处理字串就有问题啦。。

不解啊,,“每一行的字串各字符都是空格隔开的显示”,如果说是以空格隔开,可是我用去掉空格的方法或着将空格替换也都不行啊,,这是啥原因嘛。。我可是想破了也没想出一个所以来。

一语猜中我是MM,哦。。。。。
哇,我有这么早注册过,喔喔,我还是最近才开始写perl程序的。。。

论坛徽章:
0
5 [报告]
发表于 2007-09-25 11:35 |只看该作者
好像是一贴一分哦…………注册时应该是有送积分的吧。不清楚…………

论坛徽章:
0
6 [报告]
发表于 2007-09-25 11:38 |只看该作者
是不是文件的编码有关系啊

论坛徽章:
0
7 [报告]
发表于 2007-09-25 11:45 |只看该作者
上code

论坛徽章:
0
8 [报告]
发表于 2007-09-25 12:00 |只看该作者
原帖由 life382 于 2007-9-25 11:34 发表
会造成19行错就是因为读取文本的信息时,每一行的字串各字符都是空格隔开的显示,比如第一行,读出来是? h t m l>,这样造成我处理字串就有问题啦。。

不解啊,,“每一行的字串各字符都是空格隔开的显示”, ...


饿。。不在于你早注册,你注册了2年多,才开始用,很汗,有“潜”力

建议你把你的html文件上传,或者至少部分,并且把你的代码也打出来,至少也是部分,至少包含19行

论坛徽章:
0
9 [报告]
发表于 2007-09-25 12:00 |只看该作者
看不见代码,的确是需要“动脑”。

论坛徽章:
0
10 [报告]
发表于 2007-09-25 13:41 |只看该作者
这是代码:::
use strict;

my $project;
my $Configuration;
my $Errors;
my $Warnings;
my $logfile = "Log.htm";

if(-e $logfile)
{
        open LOGFILE, "<$logfile" or die "打开文件失败:$!";
        while (<LOGFILE>)
        {
         my $str = chomp($_);
         print $str;
         if($str =~/Project: [\w],Configuration: [\w]/)
                {
                 my $pos=index($str,",");
                 my $str1 =substr($str,0,$pos);
                 my $pos1=index($str1,":");
                 $project = substr($str1,$pos1 +1);
                 my $str2 =substr($str,$pos+1);
                 my $pos2=index($str2,":");
                 $Configuration = substr($str2,$pos2 +1);
                }
        }
print "Project =".$project;
print "\n";
print "Configuration=".$Configuration;
print "\n";
}

这是html部分文件:
<html>
<head>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-16">
</head>
<body>
<pre>
<table width=100% bgcolor=#CFCFE5><tr> <td> <font face=arial size=+3>
Build Log
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0

现在的问题就是像我上面所说的比如第一行<html>,读出来是? h t m l>,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP