正規表示式的用途
測試字串內的模式。
例如,可以測試輸入字串,以檢視字串內是否出現**號碼模式或信用卡號碼模式。這稱為數
據驗證。
替換文字。
可以使用正規表示式來識別文件中的特定文字,完全刪除該文字或者用其他文字替換它。
基於模式匹配從字串中提取子字串。
可以查詢文件內或輸入域內特定的文字。
sendmessage 和 postmessage 的區別
1、首先是返回值意義的區別,我們先看一下 msdn 裡的宣告:
lresult sendmessage(
hwnd hwnd,
uint msg,
wparam wparam,
lparam lparam
);bool postmessage(
hwnd hwnd,
uint msg,
wparam wparam,
lparam lparam);
其中 4 個引數的意義是一樣的,返回值型別不同(其實從資料上看他們一樣是乙個 32 位的數,只是意義不一樣),lresult 表示的是訊息被處理後的返回值,bool 表示的是訊息是不是 post 成功。
2、postmessage 是非同步的,sendmessage 是同步的。
postmessage 只把訊息放入佇列,不管訊息是否被處理就返回,訊息可能不被處理;而 sendmessage 等待訊息被處理完了之後才返回,如果訊息不被處理,傳送訊息的執行緒將一直被阻塞。
3、如果在同乙個執行緒內,sendmessage 傳送訊息時,由 user32.dll 模組呼叫目標視窗的訊息處理程式,並將結果返回。sendmessage 在同一執行緒中傳送訊息並不入執行緒訊息佇列。postmessage 傳送訊息時,訊息要先放入執行緒的訊息佇列,然後通過訊息迴圈分派到目標視窗(dispatchmessage)。
如果在不同執行緒內,sendmessage 傳送訊息到目標視窗所屬執行緒的訊息佇列,然後傳送訊息的執行緒在 user32.dll 模組內監視和等待訊息處理,直到目標視窗處理完返回。sendmessage 在返回前還做了很多任務作,比如,響應別的執行緒向它 sendmessage。post 到別的執行緒時,最好用 postthreadmessage 代替 postmessage,postmessage 的 hwnd 引數可以是 null,等效於 postthreadmessage + getcurrentthreadid。post wm_quit 時,應使用 postquitmessage 代替。
4、系統只整編(marshal)系統訊息(0 到 wm_user 之間的訊息),傳送使用者訊息(wm_user 以上)到別的程序時,需要自己做整編。
用 postmessage、sendnotifymessage、sendmessagecallback 等非同步函式傳送系統訊息時,引數裡不可以使用指標,因為傳送者並不等待訊息的處理就返回,接受者還沒處理指標就已經被釋放了。
5、在 windows 2000/xp 裡,每個訊息佇列最多只能存放 10,000 個 post 的訊息,超過的還沒被處理的將不會被處理,直接丟掉。這個值可以改得更大:[hkey_local_machine/software/microsoft/windows nt/currentversion/windows] userpostmessagelimit,最小可以是 4000。
刷題日記 不會輸入,筆試白搭
寫劍指offer的日子裡,幸福的 完全不用考慮處理輸入輸出,然而一到公司筆試,連輸入都不會,演算法豈不是乾瞪眼。輸入處理千千萬,簡單粗暴最有效。一般筆試題逐行處理單行輸入的情況比較多 輸入資料流什麼的以後再議 用sys.stdin簡單粗暴的處理方式如下 import sys 匯入sys模組 spli...
c 解決堂弟的某次筆試題
場景描述 武漢熱浪網咖收費標準如下 6 00 12 00收費5.5 h,實時收費 12 00 18 00收費6 h,實時收費 18 00 23 00收費7 h,實時收費 23 00 第二天6 00,收費5 h,上限15收費 上限收費指實時收費超出上限時,按照上限收費,否則實時收費。一.宣告時段物件 ...
一次面試的試題(部分) 我不會做的
1 當表中a b c三列,用sql語句實現 當a列大於b列時,請選擇a,否則選擇b,當b列大於c列時,選擇b列,否則選擇c列。2 你讓工人為你工作7天,回報是一根金條,這個金條上有刻度標識,你必須在每天結束的時候給他們一段金條,如果只允許你兩次把金條弄斷,你如何給你的工人付費?3 給定字串 abcd...