我想从3G调制解调器中提取并记录各种参数,因为有间歇性丢失。因此,我使用wget从3G调制解调器读取3Ginfo.html
,并将内容放入文件contents.txt
。使用Notepad ++打开此文件可显示所有数据。在Perl中逐行读取文件时,文本行被忽略。 <cr><lf>不匹配
由于我的名声,我不能发布图片,因此下面的代码是我能做的最好的;从记事本++(与查看全部人物开启),我得到:
<tr>[LF]
<td class='hd'>Signal Strength:</td>[LF]
<td>[LF]
-72[CR]
 (dBm) (High)</td>[LF]
</tr>[LF]
然而,当文件被从Perl的线读线,很显然,有线条比用记事本的报道较少++和数据失踪。在这种情况下,实际信号强度值丢失。
这里是Perl代码读取文件:
open hLOGFILE, "<output.txt";
while (<hLOGFILE>)
{
print "Line no $. Text is $_ ";
}
这里是输出(如文字,因为我不能发布图片的又一):
Line no 98 Text is <tr>
Line no 99 Text is <td class='hd'>Signal Strength:</td>
Line no 100 Text is <td>
 (dBm) (High)</td>
Line no 102 Text is </tr>
,有很明显缺失行,它与<cr>
行结束符相关。我已经尝试啜食文件,线路仍然缺失。
除了读逐字节,然后试图解析文件的方式(这是不是很吸引人),我无法找到一个解决方案。
我的计划是每分钟简单地提取并记录感兴趣的行。
我已经尝试打开指定各种编码的文件,但仍然没有喜悦。如果Notepad ++可以读取并显示所有数据,那么为什么它在Perl中不起作用。从Windows XP命令行使用more
时,它显示数据也丢失。
当我查看源代码从铬我得到的,
<tr>
<td class='hd'>Received Signal Code Power(RSCP):</td>
<td align='center'> -78 dBm</td>
</tr>
真棒,谢谢。这就是问题所在 – user2121751 2013-03-01 09:58:45