青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

轉(zhuǎn)與:http://m.shnenglu.com/fwxjj/archive/2008/01/01/40080.aspx

WinXP DDK下載鏈接地址是:http://210.21.117.86/down/ocx/winxpddk.zip

在vc++中要完成與USB進(jìn)行通信的功能,得先將DDK(Drive Development Kits)中的頭文件include到應(yīng)用程序的文檔中。順序是:先安裝vc, 再安裝DDK。

一個(gè)多星期了!經(jīng)歷了期盼,無(wú)奈(需要注冊(cè)為VIP),郁悶(需要輸入銀行的ID&KEY)(當(dāng)然了,天下少有免費(fèi)的午餐,對(duì)此我表示理解);經(jīng)歷了"希望--絕望--希望"的循環(huán);感受到了欺騙(并非免費(fèi))和時(shí)光的流逝(曾經(jīng)是有效的下載),才得到了這個(gè)真正有效的鏈接。希望這個(gè)鏈接,能為有需要的朋友提供方便。

感謝google。感謝來(lái)自csdn.net的soundzyt,他提供了原始的鏈接。

另外:Win2000 DDK的有效下載地址是:http://www.vckbase.com/tools/listtools.asp?tclsid=103  這個(gè)鏈接還包括一系列的其它很有用的工具,如圖:

image

并且這些工具都是免費(fèi)的

posted @ 2010-11-17 13:34 wrh 閱讀(776) | 評(píng)論 (0)編輯 收藏
理論:
    對(duì)于USB接口的設(shè)備,現(xiàn)在越來(lái)越多了。本篇我們就通過獲取一個(gè)USB掃描儀設(shè)備中的序列號(hào),來(lái)介紹如何獲取usb設(shè)備的一些硬件信息。對(duì)于usb設(shè)備都是采用HCD0,HCD1,HCD2,HCD3等符號(hào)描述的。如下圖:

因此,有了這個(gè)名字,我們就可以使用CreateFile來(lái)打開usb設(shè)備。然后使用DeviceIoControl函數(shù)與usb設(shè)備通訊了。HCD是host controller driver的簡(jiǎn)寫。需要了解詳情的,還要仔細(xì)的閱讀usb協(xié)議。
usb的通訊基本步驟如下圖所示:
基本步驟:
    1)打開HCD%X
    2) 得到上面的USB root hub
    3) 遍歷usb root hub上連接的usb 設(shè)備。獲取信息
    4)如果有多個(gè)usb口,循環(huán)前3步。

下面介紹通訊用的幾個(gè)IOCTL:
1)USB_HCD_DRIVERKEY_NAME ,用于獲取USB設(shè)備驅(qū)動(dòng)在注冊(cè)表中的鍵名。相應(yīng)的一個(gè)結(jié)構(gòu)體是:
typedef struct _USB_HCD_DRIVERKEY_NAME
{
   ULONG   ActualLength;

   WCHAR   DriverKeyName[1];

} USB_HCD_DRIVERKEY_NAME, *PUSB_HCD_DRIVERKEY_NAME;


2)IOCTL_USB_GET_ROOT_HUB_NAME,用于獲取root hub 鍵名。使用的結(jié)構(gòu)體,跟上面一樣。
typedef struct _USB_ROOT_HUB_NAME
{
    ULONG ActualLength;
    WCHAR RootHubName[1];
} USB_ROOT_HUB_NAME, *PUSB_ROOT_HUB_NAME;

3IOCTL_USB_GET_NODE_INFORMATION,
用于獲取連接在root hub上的節(jié)點(diǎn)設(shè)備信息。也就是我們接在usb口上的所有usb設(shè)備的信息,對(duì)應(yīng)的結(jié)構(gòu)體:
typedef struct _USB_NODE_INFORMATION
{
    USB_HUB_NODE NodeType;   
    union {
        USB_HUB_INFORMATION HubInformation;
        USB_MI_PARENT_INFORMATION MiParentInformation;
    } u;
} USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION;

typedef struct _USB_MI_PARENT_INFORMATION
{
    ULONG NumberOfInterfaces;
} USB_MI_PARENT_INFORMATION, *PUSB_MI_PARENT_INFORMATION;

typedef struct _USB_HUB_INFORMATION
{
    USB_HUB_DESCRIPTOR HubDescriptor;

    BOOLEAN HubIsBusPowered;

} USB_HUB_INFORMATION, *PUSB_HUB_INFORMATION;


typedef struct _USB_HUB_DESCRIPTOR
{
    UCHAR        bDescriptorLength;      // Length of this descriptor
    UCHAR        bDescriptorType;        // Hub configuration type
    UCHAR        bNumberOfPorts;         // number of ports on this hub
    USHORT       wHubCharacteristics;    // Hub Charateristics
    UCHAR        bPowerOnToPowerGood;    // port power on till power good in 2ms
    UCHAR        bHubControlCurrent;     // max current in mA
    //
    // room for 255 ports power control and removable bitmask
    UCHAR        bRemoveAndPowerMask[64];      
} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR;


4) IOCTL_USB_GET_NODE_CONNECTION_INFORMATION, 用于獲取接在usb口上的單個(gè)usb設(shè)備的信息,對(duì)應(yīng)的結(jié)構(gòu)體:

typedef struct _USB_NODE_CONNECTION_INFORMATION
{
    ULONG ConnectionIndex;
    USB_DEVICE_DESCRIPTOR DeviceDescriptor;
    UCHAR CurrentConfigurationValue;
    BOOLEAN LowSpeed;

    BOOLEAN DeviceIsHub;

    USHORT DeviceAddress;

    ULONG NumberOfOpenPipes;

    USB_CONNECTION_STATUS ConnectionStatus;
    USB_PIPE_INFO PipeList[0];
} USB_NODE_CONNECTION_INFORMATION, *PUSB_NODE_CONNECTION_INFORMATION;

4)IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, 用于獲取usb設(shè)備的描述信息。
typedef struct _USB_DEVICE_DESCRIPTOR
{
    UCHAR bLength;
    UCHAR bDescriptorType;
    USHORT bcdUSB;
    UCHAR bDeviceClass;
    UCHAR bDeviceSubClass;
    UCHAR bDeviceProtocol;
    UCHAR bMaxPacketSize0;
    USHORT idVendor;
    USHORT idProduct;
    USHORT bcdDevice;
    UCHAR iManufacturer;
    UCHAR iProduct;
    UCHAR iSerialNumber;
    UCHAR bNumConfigurations;
} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;

typedef struct _USB_DEVICE_DESCRIPTOR
{
    UCHAR bLength;
    UCHAR bDescriptorType;
    USHORT bcdUSB;
    UCHAR bDeviceClass;
    UCHAR bDeviceSubClass;
    UCHAR bDeviceProtocol;
    UCHAR bMaxPacketSize0;
    USHORT idVendor;
    USHORT idProduct;
    USHORT bcdDevice;
    UCHAR iManufacturer;
    UCHAR iProduct;
    UCHAR iSerialNumber;
    UCHAR bNumConfigurations;
} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;

typedef enum _USB_CONNECTION_STATUS
{
    NoDeviceConnected,
    DeviceConnected,

    /* failure codes, these map to fail reasons */
    DeviceFailedEnumeration,
    DeviceGeneralFailure,
    DeviceCausedOvercurrent,
    DeviceNotEnoughPower,
    DeviceNotEnoughBandwidth,
    DeviceHubNestedTooDeeply,
    DeviceInLegacyHub
} USB_CONNECTION_STATUS, *PUSB_CONNECTION_STATUS;

typedef struct _USB_PIPE_INFO
{
    USB_ENDPOINT_DESCRIPTOR EndpointDescriptor;
    ULONG ScheduleOffset;
} USB_PIPE_INFO, *PUSB_PIPE_INFO;

typedef struct _USB_ENDPOINT_DESCRIPTOR
{
    UCHAR bLength;
    UCHAR bDescriptorType;
    UCHAR bEndpointAddress;
    UCHAR bmAttributes;
    USHORT wMaxPacketSize;
    UCHAR bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;

需要注意一點(diǎn),如果要得到pid,vid,則直接從
USB_DEVICE_DESCRIPTOR結(jié)構(gòu)中取出idVendor,idProduct這兩項(xiàng)的值就行了。如果要得到序列號(hào),則不是取出 iSerialNumber就可以的。這里的 iSerialNumber僅僅是一個(gè)索引值。如果想得到序列號(hào),就需要定義一個(gè)結(jié)構(gòu),然后給設(shè)備發(fā)送個(gè)請(qǐng)求。請(qǐng)求的結(jié)構(gòu)如下圖:

代碼參照GetStringDescriptor函數(shù)。可以根據(jù)iSerialNumber偏移,取出其對(duì)應(yīng)的字符串,存放在上圖USB_STRING_DESCRIPTOR結(jié)構(gòu)中。
posted @ 2010-11-17 10:25 wrh 閱讀(3201) | 評(píng)論 (0)編輯 收藏
2008-05-18 22:55

////////////////////////////////////////////////////////////////////

//中點(diǎn)圓整數(shù)算法 畫圓                                  //

/////////////////////////////////////////////////////////////////////

void roundMid(int x1,int y1,int R,CDC* pDC)

{

       int x=0,y=R;

       int d=1-R; //起點(diǎn)(0,R),下一點(diǎn)中點(diǎn)(1,R-0.5),d=1*1+(R-0.5)*(R-0.5)-R*R=1.25-R,d只參與整數(shù)運(yùn)算,所以小數(shù)部分可省略

       while(y>x) //y>x即第一象限的第2區(qū)八分圓

       {

              pDC->SetPixel(x+x1,y+y1,RGB(255,0,0)); //圓心(x1,y1),畫點(diǎn)時(shí)直接相加平移,2區(qū)

              pDC->SetPixel(y+x1,x+y1,RGB(255,0,0)); //1區(qū)

              pDC->SetPixel(-x+x1,y+y1,RGB(255,0,0)); //3區(qū)

              pDC->SetPixel(-y+x1,x+y1,RGB(255,0,0)); //4區(qū)

              pDC->SetPixel(-x+x1,-y+y1,RGB(255,0,0)); //5區(qū)

              pDC->SetPixel(-y+x1,-x+y1,RGB(255,0,0)); //6區(qū)

              pDC->SetPixel(x+x1,-y+y1,RGB(255,0,0)); //7區(qū)

              pDC->SetPixel(y+x1,-x+y1,RGB(255,0,0)); //8區(qū)

              if(d<0)

                     d=d+2*x+3; //d的變化

              else

              {

                     d=d+2*(x-y)+5; //d<=0時(shí),d的變化

                     y--; //y坐標(biāo)減1

              }

              x++; //x坐標(biāo)加1

       }

}

 

////////////////////////////////////////////////////////////////////

//Bresenham算法畫圓                                  //

/////////////////////////////////////////////////////////////////////

void RoundBre(int x1,int y1,int R,CDC* pDC)
{
//圓心(x1,y1),當(dāng)前像素I(xi,yi),右像素H(xi+1,y),右下像素D(xi+1,yi-1),下像素V(xi,yi-1)
int xi,yi,dd,m,n;
//圓心距差值平方dh=(xi+1)*(xi+1)+yi*yi-R*R; dd=(xi+1)*(xi+1)+(yi-1)*(yi-1)-R*R; dv=xi*xi+(yi-1)*(yi-1)-R*R;
xi=0; //起點(diǎn)(0,R)
yi=R;
dd=2-2*R; //起點(diǎn)的右下像素(1,R-1)的圓心距差值dd=1+(R-1)*(R-1)-R*R
pDC->SetPixel(x1,y1,RGB(0,0,255)); //畫圓心,證明圓心必須占用一個(gè)像素
while(yi>=xi) //循環(huán)到八分之一圓;yi>=0即可以畫出四分圓
{
   pDC->SetPixel(xi+x1,yi+y1,RGB(255,0,0));   //2區(qū),坐標(biāo)平移(x1,y1)畫圓
   pDC->SetPixel(yi+x1,xi+y1,RGB(255,0,0));   //1區(qū)
   pDC->SetPixel(-xi+x1,yi+y1,RGB(255,0,0)); //3區(qū)
   pDC->SetPixel(-yi+x1,xi+y1,RGB(255,0,0)); //4區(qū)
   pDC->SetPixel(-yi+x1,-xi+y1,RGB(255,0,0)); //5區(qū)
   pDC->SetPixel(-xi+x1,-yi+y1,RGB(255,0,0)); //6區(qū)
   pDC->SetPixel(xi+x1,-yi+y1,RGB(255,0,0)); //7區(qū)
   pDC->SetPixel(yi+x1,-xi+y1,RGB(255,0,0)); //8區(qū)
   if(dd<0) //D在圓內(nèi);H在圓上或圓外;選擇H或D,dh>=0,dd<0,m=|dh|-|dd|=2*(dd+yi)-1;
   {
    m=2*(dd+yi)-1;
    if(m<=0) //取右像素H(xi+1,yi);m=0時(shí) 取右點(diǎn)
    {
     dd=dd+2*xi+3; //求H的右下像素(xi+2,yi-1),dd=(xi+2)*(xi+2)+(yi-1)*(yi-1)-R*R
     xi=xi+1;
    }
    else //取右下像素D(xi+1,yi-1)
    {
     dd=dd+2*(xi-yi+3); //求D的右下像素(xi+2,yi-2),dd=(xi+2)*(xi+2)+(yi-2)*(yi-2)-R*R
     xi=xi+1;
     yi=yi-1;
    }
   }
   else if(dd>0) //D在圓外;V在圓外或圓上;選擇D或V;dd>0,dv<=0,n=|dd|-|dv|=2*(dd-xi)-1;
   {
    n=2*(dd-xi)-1;
    if(n<=0) //取右下像素D(xi+1,yi-1);n=0時(shí)取
    {
     dd=dd+2*(xi-yi+3); //求D的右下像素(xi+2,yi-2),dd=(xi+2)*(xi+2)+(yi-2)*(yi-2)-R*R
     xi=xi+1;
     yi=yi-1;
    }
    else //取下像素V(xi,yi-1)
    {
     dd=dd-2*yi+3; //求V的右下像素(xi+1,yi-2)dd=(xi+1)*(xi+1)+(yi-2)*(yi-2)-R*R
     yi=yi-1;
    
    }
   }
   else if(dd==0) //D在圓上,取D(xi+1,yi-1)
   {
    dd=dd+2*(xi-yi+3); //求D的右下像素(xi+2,yi-2),dd=(xi+2)*(xi+2)+(yi-2)*(yi-2)-R*R
    xi=xi+1;
    yi=yi-1;
   }
}
}

posted @ 2010-11-12 11:20 wrh 閱讀(2134) | 評(píng)論 (0)編輯 收藏

版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
http://ben1024.blogbus.com/logs/44093592.html

在VC6.0中,我們想利用web broswer組件開發(fā),方法是project->add to project->components and controls,然后找到本機(jī)注冊(cè)的控件,這里以web broswer為例,點(diǎn)擊insert后,VC6.0會(huì)自動(dòng)添加組件相關(guān)的類.h和.cpp,然后我們就可以利用該類進(jìn)行開發(fā)了。

但在VISTA中,VC6.0在components and controls時(shí),報(bào)“不支持該接口”的錯(cuò)誤。所以選擇VS2005/VS2008。但是在對(duì)話框那里,右鍵,插入Actives控件,選了web broswer后,只會(huì)在工具箱加入web broswer,而并不生成組件相關(guān)的類,.h和.cpp文件(還有一種方法,就是在工具箱中右鍵,選擇項(xiàng),然后“COM組件”,點(diǎn)web broswer)。
試驗(yàn)了好久,才終于找到了,如何弄出組件相關(guān)類的方法,給大家分享。
首先,將WEB BROSWER放到文本框中,然后對(duì)其右鍵,選擇“添加變量”,完成向?qū)Вr(shí)就會(huì)在你項(xiàng)目文件內(nèi)添加,例如ocx1.h,ocx1.cpp及類視圖COcx1類。

困擾了好久,終于找到了方法,特分享。。。。。。

大家有什么好的關(guān)于VS2005,VS2008的經(jīng)驗(yàn),請(qǐng)分享。。。。。




//////////////////////////////////////////////////////////

在vc++6.0中,有ClassWizard可以添加ActiveX的類。而vs2005中沒有。
如果要添加Activex對(duì)應(yīng)的類,可以:項(xiàng)目-》添加類-》ActiveX控件中的MFC類-》選擇要添加的ActiveX及其類名
即可
posted @ 2010-10-29 11:20 wrh 閱讀(1906) | 評(píng)論 (0)編輯 收藏

<script>
function selectC()
{
 var oSel=document.getElementsByName("name")[0];
 var oInp=document.getElementsByName("fax")[0];
 var Value=oSel.options[oSel.selectedIndex].value;
 if(parseInt(Value)>0)
  oInp.value="LII"+Value+"&FileName&";
 else
  oInp.value="";
}

</script>
<select name="name" onchange="selectC()">
 <option selected>-請(qǐng)選擇-</option>
   <option value="1">美國(guó)</option>
 <option value="2">中國(guó)</option>
  </select>

<input type="text" name="fax" size="20">

////////////////////////////////////////////////////////////////
<textarea id="textarea1"></textarea><input type="button" value="機(jī)選一注" onclick="show()">
<script language=javascript>
       
function show()
        {
           
var obj=document.getElementById("textarea1")
           
var temp=new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22)
           
var strResult=new Array()
           
for(var j=0;j<5;j++)
            {
               
var i=Math.floor(Math.random()*(22-j))
                strResult[strResult.length]
=temp[i]
                temp.splice(i,
1)
            }
            obj.value
=strResult.join(",")
        }
</script>

/////////////////////////////////////////////////////////////////
<textarea id="textarea1" style="height:200;widht:200"></textarea><input type="button" value="機(jī)選五注" onclick="show()">
<script language=javascript>
       
function getNum()
        {
           
           
var temp=new Array('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22')
           
var strResult=new Array()
           
for(var j=0;j<5;j++)
            {
               
var i=Math.floor(Math.random()*(22-j))
                strResult[strResult.length]
=temp[i]
                temp.splice(i,
1)
            }
           
return strResult.join(",")
           
        }
       
function show(){
           
var obj=document.getElementById("textarea1")
           
var result=new Array()
           
for(var i=0;i<5;i++)
            {
                result[i]
=getNum()
            }
            obj.value
=result.join("\n")
        }
</script>


////////////////////////////////////////////////////////////////////
<textarea id="textarea1" style="height:200;widht:200"></textarea><input type="button" value="機(jī)選五注" onclick="show()">
<script language=javascript>
       
function getNum()
        {
           
           
var temp=new Array('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22')
           
var strResult=new Array()
           
for(var j=0;j<5;j++)
            {
               
var i=Math.floor(Math.random()*(22-j))
                strResult[strResult.length]
=temp[i]
                temp.splice(i,
1)
            }
           
return strResult.join(",")
           
        }
       
function show(){
           document.getElementById(
"textarea1").value=""
                        showEach();
           
        }
        i
=0;
       
function showEach()
        {
           
           
var obj=document.getElementById("textarea1")
            obj.value
=obj.value+"\n"+getNum()
           
if(i++>3)i=0
           
else
            setTimeout(
"showEach()",500)
           
        }
</script>

////////////////////////////////////////////////////////////////

1.通過getElementById() 方法獲得,必須為文本框設(shè)定ID值,該方法獲得的是一個(gè)對(duì)象的應(yīng)用(返回值

為:Object),要獲得文本框的值需添加屬性值--value,如:
<input type="text" size="10" id="port11" name="port11" />

獲值代碼:document.getElementById("port11").value;

另:要獲得標(biāo)簽<h1>中間的值,方法如下:
<h1 id="you">12345</h1>
document.getElementById("you").innerHTML;
返回值為:12345

----------------------------------------------------------------------------------------

2.如果是表單(<form>)中的文本框,還可以通過以下方式獲得值:

<form name="form1" method="post" action="manager.do?action=login">
<tr><td >會(huì)員編號(hào):</td>
<td ><input name="memberNo" type="text" id="memberNo" size="21" ></td>

<td ><input name="Submit" type="submit" value="確定" onClick="return check(form1)"></tr>
</form>

js中的代碼:function check(form){var str = form.memberNo.value;}

注意點(diǎn):表單需指定名稱(name),方法中需指定傳入的參數(shù)對(duì)象。

posted @ 2010-10-21 14:32 wrh 閱讀(844) | 評(píng)論 (0)編輯 收藏
<select id="view" name="position" onchange="aa(this)">
<option selected value="1">工程部 </option>
<option  value="2">預(yù)審部 </option>
<option  value="3">銷售部 </option>
</select>
<SCRIPT LANGUAGE="JavaScript">
<!--
   
function aa(osel){
        alert(osel.options[osel.selectedIndex].text)
    }
//-->
</SCRIPT>
//////////////////////////////////////////////////////
<select   onchange= "alert(this.options[this.selectedIndex].value);alert(this.options[this.selectedIndex].text) ">

posted @ 2010-10-21 14:23 wrh 閱讀(908) | 評(píng)論 (0)編輯 收藏
  1. function showDate()   
  2. {   
  3.     var today = new Date();   
  4.     var day = today.getDate();   
  5.     var month = today.getMonth() + 1;   
  6.     var year = today.getYear();   
  7.     var date = year + "-" + month + "-" + day;   
  8.     document.getElementsByName(文本框的name)[0].value = date;   
  9.  

    當(dāng)頁(yè)面載入時(shí),文本框自動(dòng)以“yyyy-MM-dd”格式獲得當(dāng)前日期

    1. <body onload="showDate()">  

    注:該方法可能會(huì)因?yàn)椴煌臑g覽器得到不同的結(jié)果。

posted @ 2010-10-21 09:13 wrh 閱讀(388) | 評(píng)論 (0)編輯 收藏

在ASP.NET中,獲得文件的物理路徑可以使用server.mapPath()方法得到,

而在JavaScript中則是沒有這個(gè)方法的,這里給出JavaScript如何獲得文件的路徑:

function serverMapPath(fileName){
var syspath = location.href;
syspath = syspath.toLowerCase();      //把路徑名稱轉(zhuǎn)換成小寫
myPosition = syspath.lastIndexOf("/");  // 獲取文件路徑中的最后一個(gè)"/"

syspath = syspath.substring(0,parseInt(myPosition)+1); // 使用substring函數(shù) 截取"/"之前的字符串,就得到當(dāng)前目錄的路徑

syspath = syspath.replace("file:///","");   //這里要把file:///替換為空,否則會(huì)報(bào)錯(cuò)

syspath = syspath.replace(new RegExp("%20","gm")," ");   // 如果文件名中含有空格,則要還原空格,替換所有的 %20 為 " "

syspath = syspath + fileName;
return syspath.toString();
}


大家知道在JavaScript中有個(gè) location.href ,但是這個(gè)屬性有時(shí)候獲得的文件路徑不一定正確。

//////////////////////////////////////////////////////////////////////////////

demo http://www.cnall.org/lab/js/locArray.html

源碼:

function getCurrentDirectory(){
var locHref = location.href;
var locArray = locHref.split("/");
/**這里測(cè)試locArray效果**
    for(x in locArray){
      document.write("locArray[");
      document.write(x+"]: ");
      document.write(locArray[x]+"<br />");
    }
    **/
    delete locArray[locArray.length-1];
    var dirTxt = locArray.join("/");
    return dirTxt;
}

document.write(getCurrentDirectory());

講解:

location.href,當(dāng)前的URL
var locArray = locHref.split("/");,把當(dāng)前的URL變成Array,效果如下:

locArray[0]: http:
locArray[1]:
locArray[2]: localhost
locArray[3]: cnall.org
locArray[4]: lab
locArray[5]: js
locArray[6]: locArray.html

注意locArray[1]這個(gè)地方的內(nèi)容,這個(gè)是因?yàn)樘幚?http://"中"http://"的結(jié)果


delete locArray[locArray.length-1];,使用delete來(lái)刪除Array中的一個(gè)項(xiàng)目
Delete殺傷力很大,還可以用于刪除一個(gè)Object的Property,具體內(nèi)容請(qǐng)查閱這里:
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Operators:Special_Operators:delete_Operator

var dirTxt = locArray.join("/");,利用join來(lái)粘合
join經(jīng)常和split配合使用,請(qǐng)多多練習(xí)


/////////////////////////////////////////////
var GetPath:function(){
var a=window.location.href.substr(7+document.domain.length);
var A=a.split("/");
a=a.substr(0,a.length-A[A.length-1].length);
return a;
}
////////////////////////////////////////////
function serverMapPath(fileName){
var syspath = location.href; 
syspath 
= syspath.toLowerCase();      //把路徑名稱轉(zhuǎn)換成小寫
myPosition = syspath.lastIndexOf("/");  // 獲取文件路徑中的最后一個(gè)"/"

syspath 
= syspath.substring(0,parseInt(myPosition)+1); // 使用substring函數(shù) 截取"/"之前的字符串,就得到當(dāng)前目錄的路徑 

syspath 
= syspath.replace("file:///","");   //這里要把file:///替換為空,否則會(huì)報(bào)錯(cuò)

syspath 
= syspath.replace(new RegExp("%20","gm")," ");   // 如果文件名中含有空格,則要還原空格,替換所有的 %20 為 " "

syspath 
= syspath + fileName; 
return syspath.toString();

posted @ 2010-10-21 09:09 wrh 閱讀(2198) | 評(píng)論 (0)編輯 收藏
var value=document.getElementById('yourinputid');
var intValue=parseInt(value,10); 
////////////////////////////////////////////////////////////////////////////////////////////////////////////





在Java中,基本類型之間的強(qiáng)制轉(zhuǎn)換也不是這樣的,比如,整數(shù)要轉(zhuǎn)換成字符串,必須使用Integer.toString()靜態(tài)方法或者String.valueOf()靜態(tài)方法,把字符串轉(zhuǎn)換為整數(shù),必須使用Integer.valueOf()。
可見,不能把JavaScript中的類型轉(zhuǎn)換看作為“強(qiáng)制類型轉(zhuǎn)換”。
在JavaScript中,Double類型和Int類型都是看作為Number對(duì)象,因此無(wú)論是typeof 1還是typeof 1.0,都是返回number。這樣我們可以不用去管是Int還是Double類型,讓JavaScript解釋引擎內(nèi)部去處理。
  • 如果要把Number轉(zhuǎn)換成String,可以使用Number的toString()方法,(象(1).toString()括號(hào)必須或者 1 .toString()空格必須,否則會(huì)編譯出錯(cuò),如果是變量則無(wú)需),或者調(diào)用String()函數(shù),這兩種方法都會(huì)自動(dòng)調(diào)用解釋引擎內(nèi)部的 NumberToString(),或者根據(jù)進(jìn)制調(diào)用其它函數(shù),基本類似。
  • 如果要把String轉(zhuǎn)換成Number,可以使用Number()函數(shù),他會(huì)自動(dòng)判斷String中是整數(shù)還是浮點(diǎn)數(shù),然后內(nèi)部使用相應(yīng)的數(shù)據(jù)類型,另外可以使用全局函數(shù)parseInt()和parseFloat(),他們根據(jù)你的要求進(jìn)行轉(zhuǎn)換。同樣的,他們?cè)诮忉屢鎯?nèi)部機(jī)制上是使用了 StringToNumber,StringToInt等等內(nèi)部的函數(shù)。
  • 而如果是Double轉(zhuǎn)換成Int,必須使用Math.floor()函數(shù)(截尾取整)或者M(jìn)ath.round()(四舍五入)
  • Int轉(zhuǎn)換成Double,無(wú)須考慮任何問題,直接把Int當(dāng)成Double進(jìn)行運(yùn)算
注:Number、String函數(shù)是特殊的函數(shù),在JS引擎中,他會(huì)自動(dòng)判斷是作為構(gòu)造函數(shù)調(diào)用還是普通調(diào)用,所以既可以使用new關(guān)鍵字,也可以作為函數(shù)直接調(diào)用。
關(guān)于JS的參考手冊(cè),微軟有一個(gè)CHM十分不錯(cuò),指南、API參考都有,是Windows腳本技術(shù),中文版,我在MSDN上下載的。而關(guān)于JS解釋引擎的,我參考的是Netscape的Spidermonkey,現(xiàn)在由Mozilla組織維護(hù)。


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
for(i=0;i<this.all.length;i++){
   vTotal
+=Number(this.all[i].Value);
   
  }

 得出是數(shù)字的累加
不然成字符串連接了
posted @ 2010-10-20 14:52 wrh 閱讀(352) | 評(píng)論 (0)編輯 收藏

1.JAVASCRIPT中的創(chuàng)建對(duì)象

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
2.創(chuàng)建解析器對(duì)象
set objXml=CreateObject("Microsoft.XMLDOM")
objXml.async="false"
objXml.load("test.xml")     裝載xml文件
3.根據(jù)絕對(duì)路徑裝載xml文件
objXml.load(Server.MapPath("test.xml")) 
4.查找某一節(jié)點(diǎn)"NewList"
Set objRootsite = xmlDoc.getElementsByTagName("NewList")
objNextRootsiteName = xmlDoc.getElementsByTagName("NewList").item(0).nodeName

5.查找某一節(jié)點(diǎn)"NewList"
Set objRootsite = objXml.documentElement.selectSingleNode("NewList")
document.write(objRootsite.nodeName) '當(dāng)前節(jié)點(diǎn)名稱
objNextRootsite = objRootsite.childNodes.item(1) '查找"NewList"的第一子節(jié)點(diǎn)
objNextRootsiteText = objNextRootsite.childNodes.item(1).text '查找"NewList"的第一子節(jié)點(diǎn)的節(jié)點(diǎn)內(nèi)容

6.獲取當(dāng)前節(jié)點(diǎn)
xmlChildNode = objXml.documentElement.childNodes
document.Write (xmlChildNode.nodename) '當(dāng)前節(jié)點(diǎn)名稱
document.write (xmlChildNode.text) '當(dāng)前節(jié)點(diǎn)文本內(nèi)容

7. 將Xml中的文本內(nèi)容轉(zhuǎn)換為Html中的內(nèi)容
frm.label.innerText = xmlChildNode.item(1).text
8.獲取屬性名為name的屬性值
xmlChildNode.GetAttributeNode("name").Nodevalue
9.獲取xmlChildNode節(jié)點(diǎn)的子節(jié)點(diǎn)數(shù)量
xmlChildNode.length
10.取出一個(gè)節(jié)點(diǎn)的屬性集合
set objnodes=objXml.documentElement.SelectSingleNode("http://people/man").GetAttributeNode("name").attributes
for each element in objnodes
response.write element.nodename 屬性名
response.write element.nodevalue 屬性值 


xmlDoc.getElementsByTagName("from").item(0).text

xmlDoc.removeChild objRootsite 刪除某個(gè)節(jié)點(diǎn)

11.其它一些與錯(cuò)誤有關(guān)的解析
objXml.parseError 錯(cuò)誤接受容器
objXml.parseError.errorCode 返回長(zhǎng)整型錯(cuò)誤代碼
objXml.parseError.reason 返回字符串型錯(cuò)誤原因
objXml.parseError.line 返回長(zhǎng)整型錯(cuò)誤行號(hào)
objXml.parseError.linePos 返回長(zhǎng)整型錯(cuò)誤行字符位置
objXml.parseError.srcText 返回錯(cuò)誤所在行的源代碼
objXml.parseError.url 返回url裝載文檔指針---最近一份含有解析錯(cuò)誤的XML文檔的URL地址
objXml.parseError.filePos 返回長(zhǎng)整型錯(cuò)誤文件位置---在文檔中的絕對(duì)字符位置

posted @ 2010-10-20 11:31 wrh 閱讀(404) | 評(píng)論 (0)編輯 收藏
僅列出標(biāo)題
共25頁(yè): First 4 5 6 7 8 9 10 11 12 Last 

導(dǎo)航

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統(tǒng)計(jì)

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            玖玖综合伊人| 欧美日韩国产影片| 老司机午夜免费精品视频| 欧美视频在线观看免费网址| 国产一区二区在线免费观看 | 亚洲福利在线视频| 香蕉久久一区二区不卡无毒影院| 欧美高清视频一区二区三区在线观看 | 99精品视频免费在线观看| 麻豆久久精品| 久久成人精品一区二区三区| 国产精品一区免费视频| 亚洲综合99| 一区二区三区久久网| 欧美日韩一区二| 亚洲一区二区三区四区中文| 亚洲精品资源| 欧美日韩p片| 亚洲午夜久久久久久尤物 | 欧美午夜电影完整版| 亚洲午夜小视频| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩成人综合在线一区二区 | 亚洲精品午夜精品| 欧美激情网友自拍| av不卡在线观看| 亚洲精品黄色| 欧美日韩mv| 欧美伊人久久| 久久国产精品久久久久久久久久| 韩曰欧美视频免费观看| 免费观看在线综合| 欧美欧美在线| 午夜在线播放视频欧美| 香蕉成人久久| 亚洲国产一区二区三区a毛片| 亚洲电影在线| 国产精品v片在线观看不卡| 欧美中文在线视频| 老司机午夜免费精品视频| 亚洲视频电影在线| 亚洲自拍偷拍福利| 亚洲国产一区二区三区高清 | 国产毛片一区二区| 久色婷婷小香蕉久久| 欧美大片91| 亚洲欧美日韩直播| 久久人人爽人人爽| 亚洲深夜影院| 欧美影院成人| 夜夜爽99久久国产综合精品女不卡 | 亚洲在线日韩| 激情综合久久| 亚洲乱码国产乱码精品精天堂| 国产精品日韩高清| 亚洲国产精品精华液网站| 国产精品盗摄一区二区三区| 久久蜜臀精品av| 欧美日韩高清在线| 久久综合国产精品| 国产精品国产亚洲精品看不卡15| 久久婷婷蜜乳一本欲蜜臀| 欧美日本三级| 欧美成人精品高清在线播放| 国产精品女主播一区二区三区| 蜜桃久久精品乱码一区二区| 国产精品视频福利| 91久久精品一区| 一区二区三区在线看| 亚洲免费网址| 亚洲一区二区毛片| 欧美另类在线播放| 欧美激情中文字幕乱码免费| 国产亚洲激情视频在线| 一本色道久久综合亚洲二区三区 | 欧美亚洲在线观看| 欧美日韩高清在线播放| 欧美高清在线播放| 激情久久久久久久| 午夜日韩电影| 亚洲欧美日韩精品| 久久精品欧洲| 国产精品99免费看| 欧美激情中文不卡| 尤物精品国产第一福利三区| 亚洲特黄一级片| 9久re热视频在线精品| 另类激情亚洲| 欧美二区不卡| 1024欧美极品| 久久精品国产999大香线蕉| 亚洲欧美另类中文字幕| 欧美日本高清| 亚洲精品在线一区二区| 日韩亚洲精品在线| 欧美日本高清| av不卡在线| 亚洲影院色无极综合| 欧美日韩精品二区第二页| 亚洲美女黄色片| 99国产一区| 欧美视频在线一区二区三区| 99在线精品视频| 午夜精品久久久| 国产精品午夜国产小视频| 欧美一二三区在线观看| 久久久久久久国产| 亚洲电影有码| 欧美高清在线| 一区二区三区四区五区视频| 篠田优中文在线播放第一区| 国产午夜精品一区二区三区视频| 欧美在线日韩精品| 欧美国产1区2区| 一个色综合导航| 国产精品日本精品| 久久久综合激的五月天| 亚洲精品少妇30p| 亚洲欧美日韩国产一区二区三区| 国产一区三区三区| 欧美成人中文| 亚洲午夜电影在线观看| 久久一二三区| 99国产精品自拍| 国产亚洲精品aa| 欧美国产一区二区三区激情无套| 一级日韩一区在线观看| 久久久精品动漫| 日韩一级精品视频在线观看| 国产毛片一区二区| 免费日韩av电影| 亚洲天堂av高清| 欧美成年人网站| 亚洲在线一区二区| 一区在线播放| 国产精品国产自产拍高清av王其| 久久久九九九九| 夜夜狂射影院欧美极品| 麻豆91精品| 亚洲欧美日韩国产| 91久久久久久久久| 国产美女在线精品免费观看| 欧美国产精品v| 亚洲欧美一级二级三级| 亚洲日本va午夜在线影院| 久久久久久久999精品视频| 亚洲免费观看在线观看| 国产一区二区黄色| 欧美视频在线免费看| 麻豆精品网站| 欧美一区二区三区视频免费| 亚洲久色影视| 欧美国产日韩亚洲一区| 欧美影院在线| 亚洲视频一区二区在线观看 | 久久夜色精品国产欧美乱| 欧美视频导航| 亚洲一区激情| 欧美一区二区国产| 最新中文字幕一区二区三区| 欧美福利电影网| 麻豆成人综合网| 亚洲一区二区不卡免费| 91久久精品日日躁夜夜躁国产| 性娇小13――14欧美| 亚洲国产日韩一区二区| 国产欧美日本| 欧美三区在线| 欧美日韩激情小视频| 免费观看一级特黄欧美大片| 久久成人精品无人区| 亚洲一区欧美二区| 99精品热视频| 日韩亚洲在线观看| 亚洲区免费影片| 亚洲第一精品在线| 欧美成人一区在线| 欧美高清视频| 亚洲国产欧美不卡在线观看| 欧美国产三区| 欧美激情中文不卡| 亚洲激情在线视频| 欧美成人综合一区| 亚洲国产岛国毛片在线| 亚洲国产精品www| 亚洲电影中文字幕| 91久久精品美女| 99精品视频一区二区三区| 99精品视频一区| 午夜精品久久久久久久白皮肤| 欧美一区二区日韩| 久久午夜视频| 欧美寡妇偷汉性猛交| 欧美日韩精品久久| 国产精品激情偷乱一区二区∴| 国产精品视频大全| 狠狠色噜噜狠狠色综合久| 黄色亚洲网站| 亚洲毛片在线| 性欧美xxxx视频在线观看|