heting

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            40 隨筆 :: 9 文章 :: 45 評論 :: 0 Trackbacks

          2009年4月3日 #

           

          create or replace package CARD_SERVICE_DAY_VIEW_PARAM  is 
             
          function set_param(num varcharreturn varchar
             
          function get_param  return varchar

             
          end CARD_SERVICE_DAY_VIEW_PARAM; 
          commit;
             
             
          create or replace package body CARD_SERVICE_DAY_VIEW_PARAM is 
                 paramValue 
          varchar(10); 
                 
          function set_param(num varcharreturn varchar is 
                 
          begin 
                   paramValue:
          =num; 
                   
          return num; 
                  
          end;  
                 
                 
          function get_param return varchar is 
                 
          begin 
                   
          return paramValue; 
                 
          end
                 
             
          end CARD_SERVICE_DAY_VIEW_PARAM;    
          commit;

          create or replace view CARD_SERVICE_DAY_VIEW as 
          select
          cs.id,
          cs.card_id,
          cs.lock_money,
          to_char(cs.check_time,
          'yyyy-MM-dd hh24:mi'as check_time,
          cs.name,cs.phone,( months_between(to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),
          'yyyyMMdd'),
          to_date(to_char(cs.CHECK_TIME,
          'yyyyMMdd'),'yyyyMMdd'))  ) as curr_batch,
          (
          select count(1from transaction where card_id=cs.card_id and tran_time between cs.check_time and to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),'yyyyMMdd'and (curr_bal-money)<cs.lock_money) as condition,
          (
          select count(1from service_transaction where batch=(months_between(to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),'yyyyMMdd'),to_date(to_char(cs.CHECK_TIME,'yyyyMMdd'),'yyyyMMdd'))) and s_id=cs.id) as hasAudit 
          from card_service cs 
          where cs.state='T' 
          and 
          months_between(to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),
          'yyyyMMdd'),to_date(to_char(cs.CHECK_TIME,'yyyyMMdd'),'yyyyMMdd')) in (1,2,3,4,5,6
          order by cs.card_id
          commit;
          posted @ 2010-10-11 15:26 賀挺 閱讀(541) | 評論 (0)編輯 收藏

          window.showdialog完全手冊,解決模態窗口,傳值和返回值問題2009-08-28 13:31基本介紹:
          showModalDialog() (IE 4+ 支持)
          showModelessDialog() (IE 5+ 支持)
          window.showModalDialog()方法用來創建一個顯示HTML內容的模態對話框。
          window.showModelessDialog()方法用來創建一個顯示HTML內容的非模態對話框。

          使用方法:
          vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
          vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])

          參數說明:
          sURL--必選參數,類型:字符串。用來指定對話框要顯示的文檔的URL。
          vArguments--可選參數,類型:變體。用來向對話框傳遞參數。傳遞的參數類型不限,包括數組等。對話框通過window.dialogArguments來取

          得傳遞進來的參數。
          sFeatures--可選參數,類型:字符串。用來描述對話框的外觀等信息,可以使用以下的一個或幾個,用分號“;”隔開。
          1.dialogHeight :對話框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默認的單位是em,而IE5中是px,為方便其見,

          在定義modal方式的對話框時,用px做單位。
          2.dialogWidth: 對話框寬度。
          3.dialogLeft: 離屏幕左的距離。
          4.dialogTop: 離屏幕上的距離。
          5.center: {yes | no | 1 | 0 }:窗口是否居中,默認yes,但仍可以指定高度和寬度。
          6.help: {yes | no | 1 | 0 }:是否顯示幫助按鈕,默認yes。
          7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改變大小。默認no。
          8.status: {yes | no | 1 | 0 } [IE5+]:是否顯示狀態欄。默認為yes[ Modeless]或no[Modal]。
          9.scroll:{ yes | no | 1 | 0 | on | off }:指明對話框是否顯示滾動條。默認為yes。
          下面幾個屬性是用在HTA中的,在一般的網頁中一般不使用。
          10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印預覽時對話框是否隱藏。默認為no。
          11.edge:{ sunken | raised }:指明對話框的邊框樣式。默認為raised。
          12.unadorned:{ yes | no | 1 | 0 | on | off }:默認為no。

          參數傳遞:
          1.要想對話框傳遞參數,是通過vArguments來進行傳遞的。類型不限制,對于字符串類型,最大為4096個字符。也可以傳遞對象,例如:


          <script>
          var obj = new Object();
          obj.name="51js";
          window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");
          </script>
          modal.htm
          <script>
          var obj = window.dialogArguments
          alert("您傳遞的參數為:" + obj.name)
          </script>


          2.可以通過window.returnValue向打開對話框的窗口返回信息,當然也可以是對象。例如:

          <script>
          str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
          alert(str);
          </script>
          modal.htm
          <script>
          window.returnValue="/";
          </script>
           

          posted @ 2010-08-26 11:00 賀挺 閱讀(250) | 評論 (0)編輯 收藏

          AxWindowsMediaPlayer的詳細用法
          AxWindowsMediaPlayer的詳細用法收藏
          找我把,剛做過,相當熟悉


          屬性/方法名: 說明: 
          [基本屬性]   
          URL:String; 指定媒體位置,本機或網絡地址 
          uiMode:String; 播放器界面模式,可為Full, Mini, None, Invisible 
          playState:integer; 播放狀態,1=停止,2=暫停,3=播放,6=正在緩沖,9=正在連接,10=準備就緒 
          enableContextMenu:Boolean; 啟用/禁用右鍵菜單 
          fullScreen:boolean; 是否全屏顯示 
          [controls] wmp.controls //播放器基本控制 
          controls.play; 播放 
          controls.pause; 暫停 
          controls.stop; 停止 
          controls.currentPosition:double; 當前進度 
          controls.currentPositionString:string; 當前進度,字符串格式。如“00:23” 
          controls.fastForward; 快進 
          controls.fastReverse; 快退 
          controls.next; 下一曲 
          controls.previous; 上一曲 
          [settings] wmp.settings //播放器基本設置 
          settings.volume:integer; 音量,0-100 
          settings.autoStart:Boolean; 是否自動播放 
          settings.mute:Boolean; 是否靜音 
          settings.playCount:integer; 播放次數 
          [currentMedia] wmp.currentMedia //當前媒體屬性 
          currentMedia.duration:double; 媒體總長度 
          currentMedia.durationString:string; 媒體總長度,字符串格式。如“03:24” 
          currentMedia.getItemInfo(const string); 獲取當前媒體信息"Title"=媒體標題,"Author"=藝術家,"Copyright"=版權信息,"Description"=媒體內容描述,"Duration"=持續時間(秒),"FileSize"=文件大小,"FileType"=文件類型,"sourceURL"=原始地址 
          currentMedia.setItemInfo(const string); 通過屬性名設置媒體信息 
          currentMedia.name:string; 同 currentMedia.getItemInfo("Title") 
          [currentPlaylist] wmp.currentPlaylist //當前播放列表屬性 
          currentPlaylist.count:integer; 當前播放列表所包含媒體數 
          currentPlaylist.Item[integer]; 獲取或設置指定項目媒體信息,其子屬性同wmp.currentMedia 
          AxWindowsMediaPlayer控件的屬性收藏
          MediaPlayer1.Play          播放  
          MediaPlayer1.Stop          停止  
          MediaPlayer1.Pause          暫停  
          MediaPlayer1.PlayCount        文件播放次數  
          MediaPlayer1.AutoRewind       是否循環播放  
          MediaPlayer1.Balance         聲道  
          MediaPlayer1.Volume         音量  
          MediaPlayer1.Mute          靜音  
          MediaPlayer1.EnableContextMenu    是否允許在控件上點擊鼠標右鍵時彈出快捷菜單  
          MediaPlayer1.AnimationAtStart    是否在播放前先播放動畫  
          MediaPlayer1.ShowControls      是否顯示控件工具欄  
          MediaPlayer1.ShowAudioControls    是否顯示聲音控制按鈕  
          MediaPlayer1.ShowDisplay       是否顯示數據文件的相關信息  
          MediaPlayer1.ShowGotoBar       是否顯示Goto欄  
          MediaPlayer1.ShowPositionControls  是否顯示位置調節按鈕  
          MediaPlayer1.ShowStatusBar      是否顯示狀態欄  
          MediaPlayer1.ShowTracker       是否顯示進度條  
          MediaPlayer1.FastForward       快進  
          MediaPlayer1.FastReverse       快退  
          MediaPlayer1.Rate          快進/快退速率  
          MediaPlayer1.AllowChangeDisplaySize 是否允許自由設置播放圖象大小  
          MediaPlayer1.DisplaySize       設置播放圖象大小  
              1-MpDefaultSize         原始大小  
              2-MpHalfSize           原始大小的一半  
              3-MpDoubleSize          原始大小的兩倍  
              4-MpFullScreen          全屏  
              5-MpOneSixteenthScreen      屏幕大小的1/16  
              6-MpOneFourthScreen       屏幕大小的1/4  
              7-MpOneHalfScreen        屏幕大小的1/2  
          MediaPlayer1.ClickToPlay       是否允許單擊播放窗口啟動Media Player  
           

          http://blog.csdn.net/brouse8079/archive/2007/10/17/1829885.aspx

           

          AxWindowsMediaPlayer常用屬性
          2008-03-18 21:28
          2. Ctlcontrols屬性

          Ctlcontrols屬性是AxWindowsMediaPlayer的一個重

          要屬性, 此控件中有許多常用成員。

          (1) 方法play

          用于播放多媒體文件,其格式為:

          窗體名.控件名.Ctlcontrols.play()

          如: AxWindowsMediaPlayer1.Ctlcontrols.play()

          ‘此處缺省窗體名是Me

          (2) 方法pause

          用于暫停正在播放的多媒體文件,其格式為:

          窗體名.控件名.Ctlcontrols.pause()

          如: AxWindowsMediaPlayer1.Ctlcontrols.pause()

          (3) 方法stop

          用于停止正在播放的多媒體文件,其格式為:

          窗體名.控件名.Ctlcontrols.stop()

          如: AxWindowsMediaPlayer1.Ctlcontrols.stop()

          (4) 方法fastforward

          用于將正在播放的多媒體文件快進,其格式為:

          窗體名.控件名.Ctlcontrols.fastforward()

          如:

          AxWindowsMediaPlayer1.Ctlcontrols.forward()

          (5) 方法fastreverse

          窗體名.控件名.Ctlcontrols.fastreverse()

          如:

          AxWindowsMediaPlayer1.Ctlcontrols.fastreverse

          ()

          6. 屬性CurrentPosition

          用于獲取多媒體文件當前的播放進度,其值是數值類

          型,使用格式為:

          窗體名.控件名.Ctlcontrols.currentPosition

          d1=AxWindowsMediaPlayer1.Ctlcontrols.currentPosi

          tion

          其中d1 是一個整型變量。

          7. 屬性Duration

          用于獲取當前多媒體文件的播放的總時間,其值為數

          值類型,其使用格式為:

          窗體名.控件名.currentMedia.duration

          如:d2

          =AxWindowsMediaPlayer1.currentMedia.duration

          其中d2是一個整型變量。
          controls.currentPositionString:string; 當前進

          度,字符串格式。如“00:23”


          屬性/方法名: 說明: 
          [基本屬性]   
          URL:String; 指定媒體位置,本機或網絡地址 
          uiMode:String; 播放器界面模式,可為Full, Mini,

          None, Invisible 
          playState:integer; 播放狀態,1=停止,2=暫停,

          3=播放,6=正在緩沖,9=正在連接,10=準備就緒

          player.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(player_PlayStateChange);

          private void player_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
          {
            // Test the current state of the player and display a message for each state.
            switch (e.newState)
            {
            case 0: // Undefined
            currentStateLabel.Text = "Undefined";
            break;

            case 1: // Stopped
            currentStateLabel.Text = "Stopped";
            break;

            case 2: // Paused
            currentStateLabel.Text = "Paused";
            break;

            case 3: // Playing
            currentStateLabel.Text = "Playing";
            break;

            case 4: // ScanForward
            currentStateLabel.Text = "ScanForward";
            break;

            case 5: // ScanReverse
            currentStateLabel.Text = "ScanReverse";
            break;

            case 6: // Buffering
            currentStateLabel.Text = "Buffering";
            break;

            case 7: // Waiting
            currentStateLabel.Text = "Waiting";
            break;

            case 8: // MediaEnded
            currentStateLabel.Text = "MediaEnded";
            break;

            case 9: // Transitioning
            currentStateLabel.Text = "Transitioning";
            break;

            case 10: // Ready
            currentStateLabel.Text = "Ready";
            break;

            case 11: // Reconnecting
            currentStateLabel.Text = "Reconnecting";
            break;

            case 12: // Last
            currentStateLabel.Text = "Last";
            break;

            default:
            currentStateLabel.Text = ("Unknown State: " + e.newState.ToString());
            break;
            }
          }
           

           


          enableContextMenu:Boolean; 啟用/禁用右鍵菜單 
          fullScreen:boolean; 是否全屏顯示 
          controls.currentPosition:double; 當前進度 
          controls.fastForward; 快進 
          controls.fastReverse; 快退 
          controls.next; 下一曲 
          controls.previous; 上一曲 
          [settings] wmp.settings //播放器基本設置 
          settings.volume:integer; 音量,0-100 
          settings.autoStart:Boolean; 是否自動播放 
          settings.mute:Boolean; 是否靜音 
          settings.playCount:integer; 播放次數 
          [currentMedia] wmp.currentMedia //當前媒體屬性 
          currentMedia.duration:double; 媒體總長度 
          currentMedia.durationString:string; 媒體總長度

          ,字符串格式。如“03:24” 
          currentMedia.getItemInfo(const string); 獲取當

          前媒體信息"Title"=媒體標題,"Author"=藝術

          家,"Copyright"=版權信息,"Description"=媒體內

          容描述,"Duration"=持續時間(秒),"FileSize"=

          文件大小,"FileType"=文件類型,"sourceURL"=原

          始地址 
          currentMedia.setItemInfo(const string); 通過屬

          性名設置媒體信息 
          currentMedia.name:string; 同

          currentMedia.getItemInfo("Title") 
          [currentPlaylist] wmp.currentPlaylist //當前播

          放列表屬性 
          currentPlaylist.count:integer; 當前播放列表所

          包含媒體數 
          currentPlaylist.Item[integer]; 獲取或設置指定

          項目媒體信息,其子屬性同wmp.currentMedia
          posted @ 2010-08-19 13:54 賀挺 閱讀(1287) | 評論 (0)編輯 收藏

          最近有個項目將要用到WebSphere,所以我提前來熟悉一下,在WebSphere7.0上安裝完一個struts2的小項目測試,在tomcat下該項目沒有任何問題,當我把tomcat下打包的war包在WebSphere中安裝后,就只能訪問html頁面了,其余的struts2的請求,跟jsp頁面都不能訪問,提示您無權查看此頁面,跑到日志文件中發現,啟動時有如下錯誤:
          [10-8-18 15:17:41:079 CST] 00000010 webapp        E com.ibm.ws.webcontainer.webapp.WebApp initializeExtensionProcessors SRVE0280E: 擴展處理器無法在工廠 [com.ibm.ws.jsp.webcontainerext.ws.WASJSPExtensionFactory@2bec2bec] 中進行初始化:java.lang.ClassCastException: com.sun.faces.application.WebappLifecycleListener incompatible with java.util.EventListener
                  at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.
          <init>(AbstractJSPExtensionProcessor.java:250)
                  at com.ibm.ws.jsp.webcontainerext.ws.WASJSPExtensionProcessor.
          <init>(WASJSPExtensionProcessor.java:70)
                  at com.ibm.ws.jsp.webcontainerext.ws.WASJSPExtensionFactory.createProcessor(WASJSPExtensionFactory.java:
          251)
                  at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionFactory.createExtensionProcessor(AbstractJSPExtensionFactory.java:
          75)
                  at com.ibm.ws.webcontainer.webapp.WebApp.initializeExtensionProcessors(WebApp.java:
          1313)
                  at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:
          360)
                  at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:
          298)
                  at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:
          100)
                  at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:
          166)
                  at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:
          731)
                  at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:
          616)
                  at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:
          376)
                  at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:
          668)
                  at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:
          1122)
                  at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:
          1315)
                  at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:
          619)
                  at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:
          940)
                  at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:
          725)
                  at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:
          2046)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:
          439)
                  at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:
          123)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:
          382)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$
          300(CompositionUnitMgrImpl.java:110)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:
          949)
                  at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:
          349)
                  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:
          1550)

          [
          10-8-18 15:17:41:562 CST] 00000010 config        I   Initializing Sun's JavaServer Faces implementation (1.2_07-b03-FCS) for context '/cc'
          [10-8-18 15:17:44:579 CST] 00000010 webapp        W com.ibm.ws.webcontainer.webapp.WebApp initializeTargetMappings SRVE0269W: 找不到用于處理 JSP 的擴展處理器。
          [
          10-8-18 15:17:44:584 CST] 00000010 webcontainer  I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Web 模塊 null 已綁定到 default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443]。
          [
          10-8-18 15:17:44:616 CST] 0000000f webapp        I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: 正在裝入 Web 模塊:WIM。
          [
          10-8-18 15:17:44:793 CST] 0000000f WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: 將為應用程序鍵 admin_host/wim 創建新的會話上下文
          [
          10-8-18 15:17:44:933 CST] 0000000f webcontainer  I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Web 模塊 WIM 已綁定到 admin_host[*:9060,*:9043]。
          [
          10-8-18 15:17:45:194 CST] 00000011 webapp        I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: 正在裝入 Web 模塊:PlantsByWebSphere Sample Gallery Web Application。
          [
          10-8-18 15:17:45:262 CST] 00000010 ApplicationMg A   WSVR0221I: 應用程序已啟動:StrutsTest_war
          [
          10-8-18 15:17:45:288 CST] 00000010 CompositionUn A   WSVR0191I: 已啟動 BLA WebSphere:blaname=StrutsTest_war 中的組合單元 WebSphere:cuname=StrutsTest_war。

          網上百度了一大堆都沒有解決掉,
          有的說在應用程序服務器 > WebSphere_Portal > Web 容器 > 定制屬性->新建屬性
          com.ibm.ws.webcontainer.invokefilterscompatibility  true
          添加以上屬性,但是沒有什么作用。

          最后我將myeclipse中發布到WebSphere中的war包,去安裝后,該問題消失了,一切訪問都沒問題。
          比對一下里邊的包,發下tomcat的war包多了三個jar包jsf-api.jar,jsf-impl.jar,jstl-1.2.jar,不管三七二十一,先刪了再說,再次安裝到WebSphere問題沒在出現。
          再次查看以前的錯誤信息原來說的是jsf-impl.jar包中的com.sun.faces.application.WebappLifecycleListener與java.util.EventListener不兼容導致。

           

          posted @ 2010-08-17 16:24 賀挺 閱讀(2983) | 評論 (0)編輯 收藏

          ifconfig eth0 1.2.3.4(IP地址) netmask 255.0.0.0(網絡掩碼) up
          posted @ 2010-08-16 10:17 賀挺 閱讀(220) | 評論 (0)編輯 收藏

          在說到這個問題的時候,也許有人會問CSS中不是有vertical-align屬性來設置垂直居中的嗎?即使是某些瀏覽器不支持我只需做少許的CSS Hack技術就可以啊!所以在這里我還要啰嗦兩句,CSS中的確是有vertical-align屬性,但是它只對(X)HTML元素中擁有valign特性的元素才生效,例如表格元素中的<td>、<th>、<caption>等,而像<div>、<span>這樣的元素是沒有valign特性的,因此使用vertical-align對它們不起作用。

          CSS網頁布局DIV水平居中的各種方法

          一、單行垂直居中

          如果一個容器中只有一行文字,對它實現居中相對比較簡單,我們只需要設置它的實際高度height和所在行的高度line-height相等即可。如:

          imoker.cn(愛摩客)提供的代碼片段:

          div {  
            height:25px;  
            line-height:25px;  
            overflow:hidden;  
          }
          這段代碼很簡單,后面使用overflow:hidden的設置是為了防止內容超出容器或者產生自動換行,這樣就達不到垂直居中效果了。

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 單行文字實現垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div {  
                  height:25px;  
                  line-height:25px;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                }  
              </style>  
            </head>  
            <body>  
              <div>現在我們要使這段文字垂直居中顯示!</div>  
            </body>  
          </html>
          不過在Internet Explorer 6及以下版本中,這和方法不支持對圖片設置垂直居中。

          二、多行未知高度文字的垂直居中

          如果一段內容,它的高度是可變的那么我們就可以使用上一節講到的實現水平居中時使用到的最后一種方法,就是設定Padding,使上下的padding值相同即可。同樣的,這也是一種“看起來”的垂直居中方式,它只不過是使文字把<div>完全填充的一種方式而已。可以使用類似下面的代碼:

          imoker.cn(愛摩客)提供的代碼片段:

          div {  
            padding:25px;  
          }
          這種方法的優點就是它可以在任何瀏覽器上運行,并且代碼很簡單,只不過這種方法應用的前提就是容器的高度必須是可伸縮的。

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 多行文字實現垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div {  
                  padding:25px;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                  width:760px;  
                }  
              </style>  
            </head>  
            <body>  
              <div><pre>現在我們要使這段文字垂直居中顯示!  
                div {  
                  padding:25px;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                }  
              </pre></div>  
            </body>  
          </html>
          三、多行文本固定高度的居中

          在本文的一開始,我們已經說過CSS中的vertical-align屬性只會對擁有valign特性的(X)HTML標簽起作用,但是在CSS中還有一個display屬性能夠模擬<table>,所以我們可以使用這個屬性來讓<div>模擬<table>就可以使用vertical-align了。注意,display:table和display:table-cell的使用方法,前者必須設置在父元素上,后者必須設置在子元素上,因此我們要為需要定位的文本再增加一個<div>元素:

          imoker.cn(愛摩客)提供的代碼片段:

          div#wrap {  
            height:400px;  
            display:table;  
          }  
          div#content {  
            vertical-align:middle;  
            display:table-cell;  
            border:1px solid #FF0099;  
            background-color:#FFCCFF;  
            width:760px;  
          }


          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
          <html xmlns="http://www.w3.org/1999/xhtml">   
            <head>   
              <title> 多行文字實現垂直居中 </title>   
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
              <style type="text/css">   
                body { font-size:12px;font-family:tahoma;}   
                  div#wrap {   
                  height:400px;   
                  display:table;   
                }   
                div#content {   
                  vertical-align:middle;   
                  display:table-cell;   
                  border:1px solid #FF0099;   
                  background-color:#FFCCFF;   
                  width:760px;   
                }   
              </style>   
            </head>   
            <body>   
              <div id="wrap">   
                <div id="content"><pre>現在我們要使這段文字垂直居中顯示!   
                  div#wrap {   
                    height:400px;   
                    display:table;   
                  }   
                  div#content {   
                    vertical-align:middle;   
                    display:table-cell;   
                    border:1px solid #FF0099;   
                    background-color:#FFCCFF;   
                    width:760px;   
                 }   
                </pre></div>   
              </div>   
            </body>   
          </html>
          這個方法應該是很理想了,但是不幸的是Internet Explorer 6 并不能正確地理解display:table和display:table-cell,因此這種方法在Internet Explorer 6及以下的版本中是無效的。嗯,這讓人很郁悶!不過我們還其它的辦法。

          四、在Internet Explorer中的解決方案

          在Internet Explorer 6及以下版本中,在高度的計算上存在著缺陷的。在Internet Explorer 6中對父元素進行定位后,如果再對子元素進行百分比計算時,計算的基礎似乎是有繼承性的(如果定位的數值是絕對數值沒有這個問題,但是使用百分比計算的基礎將不再是該元素的高度,而從父元素繼承來的定位高度)。例如,我們有下面這樣一個(X)HTML代碼段:

          imoker.cn(愛摩客)提供的代碼片段:

          <div id="wrap">  
            <div id="subwrap">  
              <div id="content">  
              </div>  
            </div>  
          </div>
          如果我們對subwrap進行了絕對定位,那么content也會繼承了這個屬性,雖然它不會在頁面中馬上顯示出來,但是如果再對content進行相對定位的時候,你使用的100%分比將不再是content原有的高度。例如,我們設定了subwrap的position為40%,我們如果想使content的上邊緣和wrap重合的話就必須設置top:-80%;那么,如果我們設定subwrap的top:50%的話,我們必須使用100%才能使content回到原來的位置上去,但是如果我們把content也設置50%呢?那么它就正好垂直居中了。所以我們可以使用這中方法來實現Internet Explorer 6中的垂直居中:

          imoker.cn(愛摩客)提供的代碼片段:

          div#wrap {  
            border:1px solid #FF0099;  
            background-color:#FFCCFF;  
            width:760px;  
            height:400px;  
            position:relative;  
          }  
          div#subwrap {  
            position:absolute;  
            border:1px solid #000;  
            top:50%;  
          }  
          div#content {  
            border:1px solid #000;  
            position:relative;  
            top:-50%;  
          }
          當然,這段代碼只能在Internet Exlporer 6等計算存在問題的瀏覽器中才會有作用。(不過我不解,我查閱了很多文章,不知道是因為出處相同還是什么原因,似乎很多人都不愿意去解釋Internet Exlporer 6中這個Bug的原理,我也只是了解了一點皮毛,還要再研究)

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 多行文字實現垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div#wrap {  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                  width:760px;  
                  height:400px;  
                  position:relative;  
                }  
                div#subwrap {  
                  position:absolute;  
                  top:50%;  
                }  
                div#content {  
                    position:relative;  
                    top:-50%;  
                }  
              </style>  
            </head>  
            <body>  
              <div id="wrap">  
                <div id="subwrap">  
                  <div id="content"><pre>現在我們要使這段文字垂直居中顯示!  
                    div#wrap {  
                      border:1px solid #FF0099;  
                      background-color:#FFCCFF;  
                      width:760px;  
                      height:500px;  
                      position:relative;  
                    }  
                    div#subwrap {  
                      position:absolute;  
                      border:1px solid #000;  
                      top:50%;  
                    }  
                    div#content {  
                      border:1px solid #000;  
                      position:relative;  
                      top:-50%;  
                    } 
                  </pre></div>  
                </div>  
              </div>  
            </body>  
          </html>
          五、完美的解決方案

          那么我們綜合上面兩種方法就可以得到一個完美的解決方案,不過這要用到CSS hack的知識。對于如果使用CSS Hack來區分瀏覽器,你可以參考這篇“簡單CSS hack:區分IE6、IE7、IE8、Firefox、Opera”:

          imoker.cn(愛摩客)提供的代碼片段:

          div#wrap {  
            display:table;  
            border:1px solid #FF0099;  
            background-color:#FFCCFF;  
            width:760px;  
            height:400px;  
            _position:relative;  
            overflow:hidden;  
          }  
          div#subwrap {  
            vertical-align:middle;  
            display:table-cell;  
            _position:absolute;  
            _top:50%;  
          }  
          div#content {  
            _position:relative;  
            _top:-50%;  
          }
          至此,一個完美的居中方案就產生了。

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 多行文字實現垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div#wrap {  
                  display:table;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                  width:760px;  
                  height:400px;  
                  _position:relative;  
                  overflow:hidden;  
                }  
                div#subwrap {  
                  vertical-align:middle;  
                  display:table-cell;  
                  _position:absolute;  
                  _top:50%;  
                }  
                div#content {  
                  _position:relative;  
                  _top:-50%;  
                }  
              </style>  
            </head>  
            <body>  
              <div id="wrap">  
                <div id="subwrap">  
                  <div id="content"><pre>現在我們要使這段文字垂直居中顯示!  
                    div#wrap {  
                      border:1px solid #FF0099;  
                      background-color:#FFCCFF;  
                      width:760px;  
                      height:500px;  
                      position:relative;  
                    }  
                    div#subwrap {  
                      position:absolute;  
                      border:1px solid #000;  
                      top:50%;  
                    }  
                    div#content {  
                      border:1px solid #000;  
                      position:relative;  
                      top:-50%;  
                    } 
                  </pre></div>  
                </div>  
              </div>  
            </body>  
          </html>
          p.s. 垂直居中vertical-align的值是middle,而水平居中align的值是center,雖然同是居中但關鍵字不同。
          posted @ 2010-08-06 10:32 賀挺 閱讀(440) | 評論 (0)編輯 收藏

               摘要:   C++            C# ===================================== WORD           &nbs...  閱讀全文
          posted @ 2010-03-20 10:40 賀挺 閱讀(7217) | 評論 (0)編輯 收藏

          create table m_researcher_stock_rel(N_SEC_CODE  CHAR(6)
          , C_RESEARCHER_CODE 
          varchar(20))
          drop table m_researcher_stock_rel
                      
          select * from m_researcher_stock_rel
          insert into m_researcher_stock_rel values('000297''chenpeng');
          insert into m_researcher_stock_rel values('000297''peopeo');
          insert into m_researcher_stock_rel values('000297''aaa');
          insert into m_researcher_stock_rel values('000297''bbb');
          insert into m_researcher_stock_rel values('000297''ccc');
          SELECT    n_sec_code, TRANSLATE (LTRIM (text'/'), '*/''*,') researcherList
              
          FROM (SELECT ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,
                             lvl 
          DESC) rn,
                            n_sec_code, 
          text
                      
          FROM (SELECT      n_sec_code, LEVEL lvl,
                                        SYS_CONNECT_BY_PATH (c_researcher_code,
          '/'text
                                  
          FROM (SELECT    n_sec_code, c_researcher_code as c_researcher_code,
                                                  ROW_NUMBER () 
          OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,c_researcher_code) x
                                            
          FROM m_researcher_stock_rel
                                        
          ORDER BY n_sec_code, c_researcher_code) a
                             CONNECT 
          BY n_sec_code = PRIOR n_sec_code AND x - 1 = PRIOR x))
             
          WHERE rn = 1
          ORDER BY n_sec_code;

          預想的結果成功出現,多行數據成功匯總到一行,特此分享與大家。對于你自己的應用中,只需要把SQL中“n_sec_code”
          換為你的用來匯總的列,“c_researcher_code”替換為需合并文本的列,“m_researcher_stock_rel”替換為你的表名,就是這么簡單。
          posted @ 2010-03-03 17:49 賀挺 閱讀(2191) | 評論 (0)編輯 收藏

          Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
          Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
          Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
          Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
          Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
          Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
          Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
          Select CONVERT(varchar(100), GETDATE(), 7): 05 1606
          Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
          Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
          Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
          Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
          Select CONVERT(varchar(100), GETDATE(), 12): 060516
          Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
          Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
          Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
          Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
          Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
          Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
          Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
          Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
          Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
          Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
          Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
          Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
          Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
          Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
          Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
          Select CONVERT(varchar(100), GETDATE(), 107): 05 162006
          Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
          Select CONVERT(varchar(100), GETDATE(),109): 05 16 2006 10:57:49:437AM
          Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
          Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
          Select CONVERT(varchar(100), GETDATE(), 112): 20060516
          Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
          Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
          Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
          Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
          Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
          Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
          Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

          posted @ 2009-11-10 11:06 賀挺 閱讀(1195) | 評論 (0)編輯 收藏

          <html><head>

          <script language="javascript" type="text/javascript">
                
          function MakeExcel() {

                  
          var i, j, n;

                  
          try {

                    
          var xls = new ActiveXObject("Excel.Application");

                  }


                  
          catch(e) {

                    alert( 
          "要生成該表,您必須安裝Excel電子表格軟件,同時瀏覽器須使用“ActiveX 控件”,您的瀏覽器須允許執行控件。請點擊【幫助】了解瀏覽器設置方法!");

                      
          return "";

                  }


                  xls.visible 
          =true// 設置excel為可見

                  
          var xlBook = xls.Workbooks.Add;

                  
          var xlsheet = xlBook.Worksheets(1);

               
                  xlsheet.Cells(
          2,1).Value = "卡號";

                  xlsheet.Cells(
          2,2).Value = "密碼";

                  xlsheet.Cells(
          2,3).Value = "計費方式";

                  xlsheet.Cells(
          2,4).Value = "有效天數";

                  xlsheet.Cells(
          2,5).Value = "金額";


                  xlsheet.Range(xlsheet.Cells(
          1,1),xlsheet.Cells(1,7)).mergecells=true;

                  xlsheet.Range(xlsheet.Cells(
          1,1),xlsheet.Cells(1,7)).value="發卡記錄";
                  
                 
                  
                  xlBook.SaveAs(
          "C:\\TEST.XLS");
                  
                  
          // 用 Application 對象用 Quit 方法關閉 Excel。
                  
                  xlBook.Application.Quit();

                  xls
          =null;

                  xlBook
          =null;

                  xlsheet
          =null;

                }


              
              
          </script>
          </head><body><input type='button' value="生成" onclick='MakeExcel()'></body></html>


          posted @ 2009-11-07 12:17 賀挺 閱讀(678) | 評論 (0)編輯 收藏

               摘要:   1using System;   2using System.Collections.Generic;   3using System.Text;   4using System.Windows.Forms;   5using Syste...  閱讀全文
          posted @ 2009-09-19 09:46 賀挺 閱讀(8505) | 評論 (8)編輯 收藏

               摘要:   1using System;   2   3using System.Text;   4   5using System.Collections;   6   7using System.Collecti...  閱讀全文
          posted @ 2009-08-06 17:31 賀挺 閱讀(674) | 評論 (0)編輯 收藏

          <script type="text/javascript">
                  
                  
          //    function treeNodeSelected(arg) {
                    //      alert(arg.source.title + ' selected');
                      //}
                      dojo.addOnLoad(function() {                
                          
          var s = dojo.widget.byId('parentId').selector;                
                          dojo.event.connect(s, 'select', 'treeNodeSelected');
                      }
          );
                  
          </script>
                  
          <div style="float:left;">
                      
          <s:tree label="${certInfo.cn}.cer" id="parentId" theme="ajax"
                          templateCssPath
          ="/struts/tree.css" showRootGrid="true"
                          showGrid
          ="true">
                          
          <s:treenode theme="ajax" label="<a href='certificate/admin/queryCert.do?state=3'>吊銷的證書</a>" id="child1Id" />                
                          
          <s:treenode  theme="ajax" label="<a href='certificate/admin/queryCert.do?state=2'>頒發的證書</a>" id="child2Id" />
                          
          <s:treenode theme="ajax" label="<a href='certificate/admin/queryCert.do?state=1'>掛起的申請</a>" id="child3Id" />
                          
          <s:treenode theme="ajax" label="<a href='certificate/admin/queryCert.do?state=0'>失敗的申請</a>" id="child4Id" />
                      
          </s:tree>
                  
          </div>
          posted @ 2009-07-10 10:33 賀挺 閱讀(377) | 評論 (0)編輯 收藏

          --創建job
          begin
            sys.dbms_job.submit(job 
          => :job,
                                what 
          => 'begin  
          pr_del_log;
          end;
          ',
                                next_date 
          => to_date('03-05-2010 08:00:00''dd-mm-yyyy hh24:mi:ss'),
                                interval 
          => 'trunc(add_months(sysdate,10),''mm'')+7/3');
            
          commit;
          end;
          /


          --創建存儲過程

          CREATE OR REPLACE PROCEDURE PR_DEL_LOG IS
            tables_num  
          number(3);
            tables_name 
          varchar2(30);
          BEGIN
            
          select count(*)
              
          into tables_num
              
          from user_tables
             
          where table_name = 'LOG_20090707';
            
          if tables_num > 0 then
              tables_name :
          = 'LOG' || '_' || to_char(sysdate, 'yyyymm');
            
          else
              tables_name :
          = 'LOG_20090707';
            
          end if;
            
          execute immediate 'CREATE table '||tables_name||' as select * from t_sys_log where log_time < add_months(sysdate, -10)';
            
          delete from t_sys_log where log_time < add_months(sysdate, -10);
            
          commit;
          EXCEPTION
            
          WHEN OTHERS THEN
              dbms_output.put_line(
          'err:' || sqlerrm);
              
          rollback;
          END;
          posted @ 2009-07-07 14:53 賀挺 閱讀(863) | 評論 (0)編輯 收藏

           

        1. chain   
        2.   
        3.     用來處理Action鏈   
        4.   
        5.     com.opensymphony.xwork2.ActionChainResult   
        6.   
        7. dispatcher   
        8.   
        9.     用來轉向頁面,通常處理JSP   
        10.   
        11.     org.apache.struts2.dispatcher.ServletDispatcherResult   
        12.   
        13. freemaker   
        14.   
        15.     處理FreeMarker模板   
        16.   
        17.     org.apache.struts2.views.freemarker.FreemarkerResult   
        18.   
        19. httpheader   
        20.   
        21.     控制特殊HTTP行為的結果類型   
        22.   
        23.     org.apache.struts2.dispatcher.HttpHeaderResult   
        24.   
        25. redirect   
        26.   
        27.     重定向到一個URL   
        28.   
        29.     org.apache.struts2.dispatcher.ServletRedirectResult   
        30.   
        31. redirectAction   
        32.   
        33.     重定向到一個Action   
        34.   
        35.     org.apache.struts2.dispatcher.ServletActionRedirectResult   
        36.   
        37. stream   
        38.   
        39.     向瀏覽器發送InputSream對象,通常用來處理文件下載,還可用于返回AJAX數據   
        40.   
        41.     org.apache.struts2.dispatcher.StreamResult   
        42.   
        43. velocity   
        44.   
        45.     處理Velocity模板   
        46.   
        47.     org.apache.struts2.dispatcher.VelocityResult   
        48.   
        49. xslt   
        50.   
        51.     處理XML/XLST模板   
        52.   
        53.     org.apache.struts2.views.xslt.XSLTResult   
        54.   
        55. plainText   
        56.   
        57.     顯示原始文件內容,例如文件源代碼   
        58.   
        59.     org.apache.struts2.dispatcher.PlainTextResult   
        60.   
        61. redirect-action   
        62.   
        63.     重定向到一個Action   
        64.   
        65.     org.apache.struts2.dispatcher.ServletActionRedirectResult   
        66.   
        67. plaintext   
        68.   
        69.     顯示原始文件內容,例如文件源代碼   
        70.   
        71.     org.apache.struts2.dispatcher.PlainTextResult 
        72. posted @ 2009-05-18 09:11 賀挺 閱讀(1108) | 評論 (0)編輯 收藏

          JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進,SHELL排序法是插入法的改進.所以從根本上來說可以歸納為兩種不同的排序方法:即:插入法&冒泡法

          一插入法:遍歷排序集合,每到一個元素時,都要將這個元素與所有它之前的元素遍歷比較一遍,讓符合排序順序的元素挨個移動到當前范圍內它最應該出現的位置。交換是相鄰遍歷移動,雙重循環控制實現.這種排序法屬于地頭蛇類型,在我的地牌上我要把所有的東西按一定的順序規整,過來一個,規整一個.
          處理代碼如下:
          public void sort(int[] data) {
          int temp;
          for(int i=1; i〈data.length; i++){
          for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){

          temp
          =date[j];
          data[j]
          =data[j-1];
          data[j
          -1]=temp; }

          }

          }

          二冒泡法:比較容易,它的內層循環保證遍歷一次后,集合中最小(大)元素出現在它的正確位置,下一次就是次小元素。。。該方法在集合分布的各種情況下交換移動的次數基本不變,屬于最慢的一種排序。實現也是雙重循環控制。這種排序法屬于過江龍,就是要找到極端,但是過獎龍也有大哥,二哥等,所以他們只能是大哥挑了二哥挑.
          處理代碼如下:
          public static int [] maopao(int[] data) {
          int temp;
          for(int i=0; i〈data.length-1; i++){
          for(int j=i+1; j〈data.length; j++{
          if(data[i]〈data[j]〉{
          temp
          =data[i];
          data[i]
          =data[j];
          data[j]
          =temp;
          }




          return data;

          三選擇法:該方法只是通過遍歷集合記錄最小(大)元素的位置,一次遍歷完后,再進行交換位置操作,類似冒泡,但在比較過程中,不進行交換操作,只記錄元素位置。一次遍歷只進行一次交換操作。這個對與交換次序比較費時的元素比較適合。這種排序法比冒泡法要城府要深的多,我先記住極端數據,待遍歷數據完了之后, 我再處理,不像冒泡法那樣只要比自己極端一點的就要處理,選擇法只處理本身范圍內的最極端數據.
          public static void xuanze(int[] data) {
          int temp;
          for (int i = 0; i 〈 data.length; i++〉 {
          int lowIndex = i;
          for (int j = data.length - 1; j ) i; j--{
          if (data[j] ) data[lowIndex]) {
          lowIndex 
          = j;
          }

          }

          temp
          =data[i];
          data[i]
          =data[lowIndex];
          data[lowIndex]
          =temp;
          }

          }

          四 Shell排序:
          它是對插入排序的一種改進,是考慮將集合元素按照一定的基數劃分成組去排序,讓每一組在局部范圍內先排成基本有序,最后在進行一次所有元素的插入排序。
          public void sort(int[] data) {
          for(int i=data.length/2; i)2; i/=2){
          for(int j=0; j〈i; j++{
          insertSort(data,j,i);
          }


          insertSort(data,
          0,1);


          private void insertSort(int[] data, int start, int inc) {
          int temp;
          for(int i=start+inc; i〈data.length; i+=inc〉{
          for(int j=i; (j)=inc)&&(data[j]〈data[j-inc]〉; j-=inc〉{
          temp
          =data[j];
          data[j]
          =data[j-inc]
          data[j
          -inc]=temp;
          }



          posted @ 2009-04-03 09:51 賀挺 閱讀(331) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 察隅县| 泉州市| 博兴县| 白沙| 五大连池市| 扎鲁特旗| 凭祥市| 黄平县| 开远市| 饶平县| 商丘市| 普兰店市| 江永县| 马鞍山市| 玉龙| 靖西县| 普格县| 广宗县| 潼南县| 西城区| 利津县| 噶尔县| 蛟河市| 梁山县| 江安县| 陇南市| 隆化县| 承德县| 铜陵市| 昭苏县| 云林县| 绩溪县| 安达市| 武城县| 法库县| 昭苏县| 祁东县| 公安县| 肇源县| 南康市| 黔西|