2013年3月29日 星期五

強力膠程式

基於俗話說:「正規表示式用的好,下班比較早。」的名言,又用了強力膠搞程式。

最近因為在搞NTP需要檢查輸入變數的IP或者是HOST NAME,需要用到正則表示式幫忙檢查。可是又不太想老老實實的寫程式,一心只想要早點下班,老實說,總歸一句話就是人懶。


sprintf(szCmd, "echo '%s' | grep -q '^\\(\\w\\+\\.\\)\\+\\w\\+$'", strIpHostName);
if(system(szCmd))       {ret=d_NTP_IPURL_INVALID_FORMAT; goto CNCS_EXIT;}


兩行寫完,就下班了~~~XD

這主要還是利用正則表示式幫忙檢查樣式,grep -q 會回應成功或失敗,要system會回0表示樣式對了,當然啦~用system是會比較慢一點,幸好這程式是不太在意效率問題,而我也剛好比較在乎下班時間,所以就這樣搞了。~~XD

原來的shell命令大概像下面這行一樣
echo "www.google.com.tw" | grep -q '^\(\w\+\.\)\+\w\+$'
執行成功或失敗,這樣看不太出來,加上後面那一段,格律對了,就顯示IP/HOST NAME OK
echo "www.google.com.tw" | grep -q '^\(\w\+\.\)\+\w\+$' && echo 'IP/HOST NAME OK'

搭一些牙籤上去讓C語言做出來的程式跑起來,可以運作就收工了,就看起來像是用強力膠黏出來的程式風格,也證明了俗話說的好。

PS.在GNU C上正途是用regcomp這函式,只是這樣程式寫起來就會落落長。。。

沒有留言:

張貼留言