Feeds:
文章
迴響

Archive for 2005 年 10 月

今天ttch問了我一個關於系統音效設備的問題,因為當時在忙,問題記得不是很清楚,依稀是問我如何取得混音設備… 翻了一下手邊的資料得知可以透過 Microsoft 提供的 Multimedia SDK 來取得,簡單的說,只要透過兩個API函數就可以得到解答,其中一個是取得系統混音設備的數量 mixerGetNumDevs ,另一個是用來列舉系統的混音設備資訊mixerGetDevCaps ,因此,一個簡單的程式下完成如下:
 
Const MAXPNAMELEN = 32
Private Type MIXERCAPS
    wMid As Integer         ‘  manufacturer id
    wPid As Integer         ‘  product id
    vDriverVersion As Long  ‘  version of the driver
    szPname As String * MAXPNAMELEN   ‘  product name
    fdwSupport As Long      ‘  misc. support bits
    cDestinations As Long   ‘  count of destinations
End Type

Private Declare Function mixerGetNumDevs Lib "winmm.dll" () As Long
Private Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" ( _
                                                        ByVal uMxId As Long, _
                                                        pmxcaps As MIXERCAPS, _
                                                        ByVal cbmxcaps As Long) As Long

Private Sub Form_Load()
    Dim ctr As MIXERCAPS
    Dim count As Long
    count = mixerGetNumDevs()
    MsgBox "混音設備數量:" & count
    For i = 0 To count – 1
        ret = mixerGetDevCaps(i, ctr, Len(ctr))
        MsgBox ctr.szPname
    Next
End Sub
 

其他相關的API或與多媒體有關的可以參考 Microsoft Multimedia

Read Full Post »

 
今天在修正一個錯誤時發現,如果進行字串(切割)轉陣列時,如果空字("")串對你而言是無意義的,那如果你要取得"有意義"的陣列長度就要小心。
[PHP]
$arr = explode(‘,’, “);
echo count($arr); // 1
[Javascript]
var str = “;
var arr = str.split(‘,’);
alert(arr.length); // 1
 
因為空字串會成為陣列中的第一個元素,所以,會回傳陣列長度為 1,而非預期的 0,此時就會發生隱含的錯誤…

Read Full Post »

還好… linux 下的 zip 功能不錯,就是文件太長了,我的作法是利用 -b 指定暫存路徑,並指定 -j 參數要求壓縮檔案路徑來完成,舉例來說,我如果要將 /a/1001.txt, /b/1002.txt, /c/1003.txt 的檔案壓成一個 tmp.zip,且內含的檔案不包含 /a, /b, /c 等路徑,命令可以如此下:
 
zip -b /tmp -j tmp.zip /a/1001.txt /b/1002.txt /c/1003.txt
 
即可 ^^

Read Full Post »

這個是我今天在寫案子遇到的問題,撇開效率的問題不討論,因為之前寫好的架構基於懶的緣故,所以並不想將全部的資料撈出來後再統計,因此,想要找尋相關的修飾字來解決這個問題,而且SQL也是個標準語言,使用的時間也很長了,不可能沒有人遇到這麼初淺的問題,而且我想訂定標準的人也一定提供相對應的解決方案,最後終於如我所預料的,在 mysql 的線上手冊查如下的資訊

COUNT(DISTINCT expr,[expr…])
Returns a count of the number of different non-NULL values:

ㄏㄏ… 原來只要在 COUNT 裡的欄位前面加上 DISTINCT 修飾字就可以… 真的是江湖一點訣

Read Full Post »

我對 BWTWEEN 的誤解

今天在修正案子的某個功能查詢,介面上提供一個日期區間(yyyy/mm/dd)給使用者選擇,於是我的 SQL 就下成類似下面的命令
SELECT * FROM XXX WHERE mdate BETWEEN ‘1980/1/1’ AND ‘2005/10/25’

結果我就納悶,為什麼 2005-10-25 15:50:47 這筆資料不會被抓出來,後來我發現該欄位的型態為 datetime,且將 SQL 改為

SELECT * FROM XXX WHERE mdate BETWEEN ‘1980/1/1 00:00:00′ AND ‘2005/10/25 23:59:59′

就抓到該筆資料,我想如果是 datetime 欄位而查詢時沒有指定時間字串,則預設時間似乎是 00:00:00 ,也就是說,我原來的 SQL 命令被解讀為

SELECT * FROM XXX WHERE mdate BETWEEN ‘1980/1/1 00:00:00’ AND ‘2005/10/25 00:00:00’

所以,該筆資料沒有辦法被查詢出來….ㄜ~ 天啊

Read Full Post »

這個瀏覽器除了firefox原有的外掛功能之外,也將常用的相關功能整合(如:rss reader)到 flock 中,支援的 OS 包含 windows / linux / mac os,目前這個程式仍然只是 beta 版本,有興趣的人可以到下載 http://www.flock.com/ 試玩看看

Read Full Post »

線上掃毒教學的網站…

相當的完整… 有圖文教學

http://home.pchome.com.tw/web/onlinescan/index.htm

Read Full Post »

Older Posts »