記憶盒子

把記憶裝進灰色的盒子,封裝起來,那年那月,重新拾起。

首頁搜索目錄
search
當(dāng)前主題: 軟件編程

asp.net如何格式化dos輸出的內(nèi)容 需轉(zhuǎn)換換行符

作者:Kaka    時間:2012-4-18 1:54:0    瀏覽:    評論:27

      今天在開發(fā)時遇到一個問題,就是dos內(nèi)容直接輸出到網(wǎng)頁上的時候,并沒有換行,也不分段,所有字符密密麻麻連在一起了。比如在dos里執(zhí)行ping m.gazebo2go.com的命令,得到的是很整體的可讀性很高的輸出結(jié)果。

 

      但是,如果把這些內(nèi)容直接復(fù)制到網(wǎng)頁上,并不會有這樣的格式化結(jié)果,而是出現(xiàn)如下面的一堆字符,完全不具可讀性。

Pinging www.a.shifen.com [220.181.112.143] with 32 bytes of data: Reply from 220.181.112.143: bytes=32 time=43ms TTL=54 Reply from 220.181.112.143: bytes=32 time=44ms TTL=54 Reply from 220.181.112.143: bytes=32 time=43ms TTL=54 Reply from 220.181.112.143: bytes=32 time=43ms TTL=54 Ping statistics for 220.181.112.143: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 43ms, Maximum = 44ms, Average = 43ms

      這就需要程序來進行字符轉(zhuǎn)換。dos輸出的結(jié)果,主要包含4個不可見字符,分別是回車符、換行符、制表符和空格符。

      我們不能輕而易舉的直接進行字符替換就能完事,因為那些字符是不可見的,必須通過間接的方式查找出這些字符,然后才可替換掉。

      處理這個問題,我用上了ASCII碼,通過ASCII碼表,可查出這4個不可見字符的ASCII值分別是回車符(13)、換行符(10)、制表符(9)和空格符(20),現(xiàn)在只需要把dos輸出的結(jié)果每個字符進行ASCII轉(zhuǎn)換,找出這4個不可見字符,替換成相應(yīng)的符號即可。其中回車符和換行符均替換為“<br>”,空格符則替換為“&nbsp;”,而制表符替換為三個空格符的HTML代碼“&nbsp;”,這樣便能格式化這堆密密麻麻的字符串了。

      看看網(wǎng)頁輸出的格式化結(jié)果:

      Pinging www.a.shifen.com [220.181.112.143] with 32 bytes of data: 

      Reply from 220.181.112.143: bytes=32 time=43ms TTL=54 
      Reply from 220.181.112.143: bytes=32 time=44ms TTL=54 
      Reply from 220.181.112.143: bytes=32 time=43ms TTL=54 
      Reply from 220.181.112.143: bytes=32 time=43ms TTL=54 

      Ping statistics for 220.181.112.143: 
         Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), 
      Approximate round trip times in milli-seconds: 
         Minimum = 43ms, Maximum = 44ms, Average = 43ms

      核心程序代碼(asp.net):

      1、字符轉(zhuǎn)ASCII值函數(shù)

    public static int Asc(string character)
    {
        if (character.Length == 1)
        {
            System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
            int intAsciiCode = (int)asciiEncoding.GetBytes(character)[0];
            return (intAsciiCode);
        }
        else
        {
            throw new Exception("Character is not valid.");
        }
    }

      2、字符替換

      假設(shè)dos輸出的結(jié)果賦給變量strResult,格式化后的結(jié)果賦給變量strResultFormat

            for (int i = 0; i < strResult.Length; i++)
            {
                if (Convert.ToInt32(Asc(strResult.Substring(i, 1))) == 13) //回車
                {
                    strResultFormat = strResultFormat + "<br>";
                }
                else if (Convert.ToInt32(Asc(strResult.Substring(i, 1))) == 10) //換行
                {
                    strResultFormat = strResultFormat + "<br>";
                }
                else if (Convert.ToInt32(Asc(strResult.Substring(i, 1))) == 32) //空格
                {
                    strResultFormat = strResultFormat + "&nbsp;";
                }
                else if (Convert.ToInt32(Asc(strResult.Substring(i, 1))) == 9) //制表符(默認是3個空格的長度)
                {
                    strResultFormat  = strResultFormat  + "&nbsp;&nbsp;&nbsp;";
                }
                else
                {
                    strResultFormat  = strResultFormat  + strResult.Substring(i, 1);
                }
            }

      最后,附上完整ASCII碼對照表。完整ASCII碼對照表.txt

x

標(biāo)簽: Asp.net  

※ 網(wǎng)站速度慢?試試網(wǎng)站自動優(yōu)化工具 ※

上一篇: 如何判斷你買的空間是單線還是雙線或多線?
下一篇: webkaka推出網(wǎng)站dns查詢工具
  • 4.頸****
  • 第一次來看看,學(xué)習(xí)下。
    無錫會計培訓(xùn) 于 2012-4-19 0:00:36 回復(fù)
    今天迷路到博主這里了,不過收獲不錯,以后會常來
  • 2012/4/18 16:32:22 回復(fù)該留言
  • 3.美***
  • ASCII碼對照表出現(xiàn)亂碼
    Kaka 于 2012-4-18 16:13:26 回復(fù)
    是個txt文件來的。
  • 2012/4/18 14:31:35 回復(fù)該留言

發(fā)表評論:

◎歡迎參與討論,請在這里發(fā)表您的看法、交流您的觀點。

訂閱博客                   QQ交流群(312716741)

  • 通過Google訂閱本站 通過鮮果訂閱本站 通過抓蝦訂閱本站
  • 通過QQ郵箱訂閱本站 通過Yahoo訂閱本站 通過有道訂閱本站

Search

最新評論及回復(fù)

最近留言

網(wǎng)站分類

Powered By Z-Blog 1.8 Walle Build 91204 Designed by Han'space

Copyright @2009-2024 All Rights Reserved. 粵ICP備14028160號-1

Powered By Z-Blog 1.8 Walle Build 91204
Copyright @2009-2024 All Rights Reserved.