<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 40, 文章 - 0, 評論 - 20, 引用 - 0
    數據加載中……

    2006年4月26日

    J2me開發


    一些資料:




    http://www.csdn.net/subject/j2meTools/


    http://news.csdn.net/news/newstopic/24/24127.shtml



    posted @ 2006-11-01 15:30 月亮 閱讀(212) | 評論 (0)編輯 收藏

    游戲

    有個輸家,就一定有個贏家。我是輸家,但我四周望了一圈,卻沒看到半個贏家,我想,贏家應該也是我了,你說呢?

    posted @ 2006-09-12 15:35 月亮 閱讀(206) | 評論 (1)編輯 收藏

    vi命令詳解

    vi命令是unix下常用而重要命令,可在全屏幕方式下編輯一個或多個文件。若在vi執行時?
    沒有指定一個文件,那么vi命令會自動產生一個無名的空的工作文件。若指定的文件不存在,?
    那么就按指定的文件名創建一個新的文件。若對文件的修改不保存的話,v?i命令并不改變原?
    來文件的內容。?

      注意:vi命令并不鎖住所編輯的文件,因此多個用戶可能在同時編輯一個文件,那么最后?
    保存的文件版本將被保留。?

    下面是vi命令使用的一些選項及含義:??????????

      -c?sub-command?在對指定的文件編輯前,先執行指定的命令?sub-command?.?

      -r?filename?恢復指定的文件filename?.??????????

      -R?將指定的文件以只讀的方式放入編輯器中,這樣不會保存對文件的任何修?改。?

      -y?number?將編輯窗口的大小設為number行。??????????

      下面是vi編輯所處的三種模式:??????????

      .命令模式?進入vi時所處的模式。在此模式下用戶可輸入各種子命令對進行*作,如刪除行、?
    粘貼行、移向下一個字、移向不同行等。?

      .文本輸入模式?在此模式下可以修改一行的內容并增添新行。在命令模式下鍵入a?、i?或?
    c鍵可進入文本輸入模式,按Escape鍵可返回命令模式。?

      .命令項模式?在此模式下,可以通過子命令輸入更多的參數。如:w子命令要求輸入一文?
    件名,"/"子命令要求輸入一個查找項。用戶使用Escape鍵返回命令模式。?


    下面是自命令模式下執行的,在同一行上移動的自命令:??????????

      h?將光標左移一格。??????????

      l?將光標右移一格。??????????

      j?將光標下移一格。??????????

      k?將光標上移一格。??????????

      w?將光標移到下一個小字的前面。??????????

      W?將光標移到下一個大字的前面。??????????

      b?將光標移到前一個小字的前面。??????????

      B?將光標移到前一個大字的前面。??????????

      e?將光標移到下一個小字的后面。??????????

      E?將光標移到前一個大字的后面。??????????

      fc?把光標移到同一行的下一個c字符處。??????????

      Fc?把光標移到同一行的前一個c字符處。??????????

      tc?把光標移到同一行的下一個字符c的前一格。??????????

      Tc?把光標移到同一行的前一個字符c的后一格。??????????

      number|?把光標移到遞number列上。??????????

    下面是命令模式下在行間移動的子命令:??????????

      +或Enter?把光標移至下一行第一個非空白字符。??????????

      -?把光標移至上一行第一個非空白字符。??????????

      0?把光標移到當前行的第一個字符處。??????????

      $?把光標移到當前行的最后一個字符處。??????????

      H?把光標移到屏幕最頂端一行。??????????

      L?把光標移到屏幕最底端一行。??????????

      M?把光標移到屏幕中間。??????????

    下面是命令模式下改變屏幕顯示的子命令:??????????

      z-?把當前行作為屏幕的最后一行,并重新顯示屏幕。??????????

      z.?把當前行作為屏幕的中間一行,并重新顯示屏幕。??????????

      Ctrl+l?重新顯示屏幕當前內容。??????????

      /pattern/z-?尋找pattern的下一個位置,并把所在行設為屏幕的最后一行。?

    下面是在命令模式下用來顯示頁面的子命令:??????????

      Ctrl?+?f向后滾一頁。??????????

      Ctrl?+?d向后滾半頁。??????????

      Ctrl?+?b向前滾一頁。??????????

      Ctrl?+?u向前滾半頁。??????????

      Ctrl?+?e屏幕向下滾一行。??????????

      Ctrl?+?y屏幕項上滾一行。??????????

    下面是在命令模式下用來查找字符串所使用的子命令:??????????

      /pattern?向后尋找指定的pattern?,若遇到文件尾,則從頭再開始。?

      ?pattern?向前尋找指定的pattern?,若遇到文件頭,則從尾再開始。?

      n?在上次指定的方向上,再次執行上次定義的查找。??????????

      N?在上次指定的方向的相反方向上,再次執行上次定義的查找。??????????

      /pattern/+number?將光標停在包含pattern的行后面第number行上。?

      /pattern/-number?將光標停在包含pattern的行前面第number行上。?

      %?移到匹配的"()"或"{}"上。??????????

    下面是在文本輸入模式下用來輸入文本的子命令(用戶可在任何時候按Escape返回到命令模式):?

      a?在光標之后開始輸入文本。??????????

      A在行尾開始輸入文本。??????????

      i在光標之前開始輸入文本。??????????

      I在行首第一個非空白字符前輸入文本。??????????

      o在光標所在行后插入一空行。??????????

      O在光標所在行前插入一空行。??????????

    下面是在命令模式下改變文本所使用的子命令(用戶可在任何的時候按Escape鍵返回到命令模式):?

      cc或S?修改一整行。??????????

      C?改變一行光標位置以后的部分。??????????

      cw?改變光標所在單詞。??????????

      dd刪除當前行。??????????

      D?刪除光標所在行光標后面的內容。??????????

      dw刪除光標所在的單詞。??????????

      J?把下一行內容加到本行行尾。??????????

      rc把光符所在字符替換成c?.??????????

      R?覆蓋本行內容。??????????

      u恢復上一次的修改。??????????

      x刪除光標所在的字符。??????????

      ~?改變光標所在出字符的大小寫。??????????

      .?重復上一個*作。??????????

      <<把當前行移到左邊。??????????

      >>把當前行移到右邊。??????????

    下面是用于文件中拷貝文本的字命令:??????????

      p?將緩沖區內容取到光標所在行的下面一行。??????????

      P?將緩沖區內容取到光標所在行的上面一行。??????????

      "bd?將文本刪除至有名緩沖區b?.??????????

      "bp?張貼有名緩沖區b中內容。??????????

      yy把當前行放入緩沖區。??????????

      Y?把當前行放入緩沖區。??????????

      Yw把光標所在的單詞放入緩沖區。??????????

    下面是用于保存文件的子命令:??????????

      :w?回寫修改后的文件。??????????

      :w?filename?當filename不存在時,把修改后的文件存為文件filename?,當文件filename?
    存在時,報錯。?

      !w?filename?如果文件filename存在時,把修改后的文件保存為文件filename?.?

    下面列出了在vi編輯的多個文件之間切換所用的子命令:??????????

      :n開始編輯vi激活的文件列表中的下一個文件。??????????

      :n?filenames?指定將被編輯的新的文件列表。??????????

    下面列出了用于在當前文件和另外一個文件間切換的子命令:??????????

      :e?filename?使用filename激活vi?(在vi中裝入另一個文件filename)。?

      e!重新裝入當前文件,若當前文件有改動,則丟棄以前的改動。??????????

      :e+filename?使用filename激活vi?,并從文件尾部開始編輯。?

      :e+number?filename?使用filename激活vi?,并在第number行開始編輯。?

      :e#?開始編輯另外一個文件。??????????

    下面是在本文件中加入其他文件代碼所使用的子命令:??????????

      :r?filename讀取filename文件,并將其內容加到當前文件后。???

      :r?!?command執行command文件,并將其輸出加到當前文件后。???

    下面是vi中其他的子命令:??????????

      ctrl+g?取得正在編輯文件的有關信息。??????????

      :sh啟動sh?,從sh中返回可用exit或ctrl+d?.??????????

      :!?Command?執行命令command?.??????????

      !!重新執行上次的:!?Command子命令。??????????

      :q退出vi?,若用戶對編輯的文件有所修改,系統不會讓用戶使用q命令退出。???

      :q!退出vi而不管是否對文件有改動。??????????

      ZZ或:wq?保存對文件的修改并退出vi?.??????????

      用戶可在一個特殊的文件.exrc中定義特殊的vi命令。在vi中使用這些命令時,必須在該?
    命令前加上一個冒號(?:)?。

    posted @ 2006-05-13 15:13 月亮 閱讀(341) | 評論 (0)編輯 收藏

    精通Log4j

    ?log4j雖然總的來說是比較容易使用的,但是要是想比較精通的操縱它還是有很多地方值得探討的。
    ??? 這幾天有空,把項目中大家用到的log4j實現的功能分了一下類,大致分為下面三類:
    ??? <1>所有的日志信息都輸出到log.log.
    ??? <2>對于一些特殊的日志(如啟動時候的日志),輸出到log/startup/startup.log.
    ??? <3>對于某些特殊包下面的日志,如com.aspire包下面的error信息都輸出到error.log???
    ??? 有了這幾個功能,相信對于大部分的系統都是夠用的了,下面這個例子就是實現了這幾個功能:
    ??? (至于其他的一些配置,如格式這些的就不說明,有很多這種資料)
    ???
    ??? ***********? log4j 配置文件? ************???
    ???
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="

    <appender name="file" class="org.apache.log4j.RollingFileAppender">
    ?<param name="File" value="log.log"/>
    ?<layout class="org.apache.log4j.PatternLayout">
    ?<param name="ConversionPattern" value=" %d{ISO8601} [%c]- %m%n"/>
    ?</layout>
    </appender>

    <appender name="error" class="org.apache.log4j.RollingFileAppender">
    ??<param name="File" value="error.log"/>
    ??<param name="MaxBackupIndex" value="300"/>
    ??<param name="Encoding" value="GB2312"/>
    ??<param name="MaxFileSize" value="20MB"/>
    ??<layout class="org.apache.log4j.PatternLayout">
    ???<param name="ConversionPattern" value="%d{ISO8601} %p [%c] - [%m]%n"/>
    ??</layout>
    ??? <filter class="org.apache.log4j.varia.LevelRangeFilter">
    ??<!-- 過濾,只記錄error信息-->
    ??<param name="LevelMin" value="error"/>
    ??<param name="LevelMax" value="error"/>
    ??<param name="acceptOnMatch" value="true"/>
    ??? </filter>
    </appender>
    <appender name="startup" class="com.aspire.TimeSizeRollingFileAppender">
    ??<!--該類使自己從FileAppender派生,可以自己控制輸出文件的路徑 -->
    ??<param name="File" value="log/startup/startup.log" />
    ??<param name="Encoding" value="GBK" />
    ??<layout class="org.apache.log4j.PatternLayout">
    ???<param name="ConversionPattern" value="%m %d{ISO8601}- %m%n %p %l%n" />
    ??</layout>
    </appender>

    <logger name="biz.startup">
    <!--Logger logger = Logger.getLogger("biz.startup") 可以這樣來調用本logger-->
    ??<level value="debug" />
    ??<appender-ref ref="startup" />
    </logger>

    <logger name="com.aspire" additivity="false">
    <!--Log log = LogFactory.getLog(TestLog4j.class) 此時如果TestLog4j
    ??? 位于com.aspire包下面,那么使用本logger
    ?-->
    ??<level value="debug"/>
    ??<appender-ref ref="error"/>
    </logger>
    <root>
    <level value="info"/>
    <!-- 默認輸出到log.log-->
    <appender-ref ref="file"/>
    </root>
    </log4j:configuration>

    ***********? log4j 配置文件結束 ************

    **********? 派生的TimeSizeRollingFileAppender類*****
    package com.aspire;

    import org.apache.log4j.FileAppender;
    import org.apache.log4j.spi.ErrorCode;
    import java.io.File;
    import java.io.IOException;

    public class TimeSizeRollingFileAppender
    ??? extends FileAppender
    ??? implements ErrorCode {

    ? private final static String FS = System.getProperty("file.separator");
    ? public TimeSizeRollingFileAppender() {
    ? }
    ? public void setFile(String file) {
    ??? String val = file.trim();
    ??? File domain = new File(".");
    ??? try {
    ????? fileName = domain.getCanonicalPath() + FS + val;
    ??? }
    ??? catch (IOException ex) {
    ????? ex.printStackTrace();
    ??? }
    ? }
    }

    ********** TimeSizeRollingFileAppender 類結束 ******

    ************ 調用示例 TestLog4j類 **************
    package com.aspire;

    import org.apache.log4j.Logger;
    import org.apache.log4j.LogManager;
    import org.apache.commons.logging.LogFactory;
    import org.apache.log4j.xml.DOMConfigurator;
    import org.apache.commons.logging.Log;

    public class TestLog4j {
    ? private Logger logger = Logger.getLogger("biz.startup");
    ? private Log log = LogFactory.getLog(TestLog4j.class);

    ? public static void config(){
    ??? DOMConfigurator.configure("conf\\log4jConf.xml");
    ? }
    ? public void Test(){
    ??? /**
    ???? * error > warn > info > debug
    ???? */
    ??? logger.error("*****error*****");
    ??? logger.debug("****debug*****");
    ??? logger.warn("*****warn******");
    ??? logger.info("*****info******");
    ??? log.error("中華之崛起!");
    ? }
    ? public static void main(String [] argv){
    ??? TestLog4j t = new TestLog4j();
    ??? TestLog4j.config();
    ??? t.Test();
    ? }
    }

    ***************? TestLog4j end ***********

    posted @ 2006-04-26 12:59 月亮 閱讀(400) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲一区日韩高清中文字幕亚洲| 在线观看视频免费国语| 中文字幕亚洲无线码| 老司机午夜在线视频免费观| 免费鲁丝片一级在线观看| 亚洲中文字幕久久无码| 午夜老司机免费视频| 春暖花开亚洲性无区一区二区| 免费在线观看黄网| 国产在线播放线91免费| 亚洲AV日韩精品久久久久久 | 久久精品国产精品亚洲| baoyu116.永久免费视频| 亚洲av午夜福利精品一区人妖| 一级毛片全部免费播放| 亚洲国产熟亚洲女视频| 无码国模国产在线观看免费 | GOGOGO免费观看国语| 亚洲国产精品VA在线看黑人| 最近免费视频中文字幕大全| 亚洲av成人综合网| 亚洲欧洲久久久精品| 久久久久成人精品免费播放动漫| 亚洲午夜国产精品| 免费萌白酱国产一区二区| 日韩精品无码免费专区午夜| 亚洲欧洲综合在线| 国产成人免费片在线观看| a级毛片无码免费真人久久| 亚洲女人18毛片水真多| 国产男女猛烈无遮挡免费视频网站| fc2成年免费共享视频18| 亚洲精品中文字幕麻豆| 全部免费毛片免费播放| 老司机69精品成免费视频| 国产亚洲中文日本不卡二区| 亚洲一级片免费看| 999国内精品永久免费视频| 春意影院午夜爽爽爽免费| 亚洲精品国产第1页| 亚洲AV无码一区二区三区国产|