我想從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