<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6912442547768450626</id><updated>2011-11-18T02:57:40.033-08:00</updated><category term='程式'/><category term='bash'/><category term='Programming'/><title type='text'>Timothy's Workspace</title><subtitle type='html'>&lt;b&gt;&lt;i&gt;Never bite off more than you can chew&lt;/i&gt;&lt;/b&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://timothylin1.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://timothylin1.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Timothy Lin</name><uri>http://www.blogger.com/profile/16429230022479549047</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_6BrGaZ1XnWQ/SYOTGr6omSI/AAAAAAAAAFw/nqeE6bXyg5w/S220/timothy_image.PNG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6912442547768450626.post-7475379506347377848</id><published>2011-07-21T06:50:00.000-07:00</published><updated>2011-11-18T02:57:40.044-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>筆記 - Bash Script 倒數計時器</title><content type='html'>今天我用了bash寫了一個倒數計時器  有一些實做細節，搜尋了很久才找到，在這裡一一列出  &lt;br /&gt;
&lt;div id="fullpost"&gt;
1. 取子字串(substring) &lt;br /&gt;
&lt;pre class="brush: bash"&gt;# 方法1
str=codeblocks
substr=${str:0:4} # 取從第0個字元算起4個字元(0~3)
echo $substr  # substr = "code"

# 方法2
substr=`expr substr $str 1 4`  # 用expr substr的時候，字串開頭是1不是0，後面的4是長度
echo $substr  # substr = "code"

&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 取得目前時間（以秒數表示，方便做運算） &lt;br /&gt;
&lt;pre class="brush: bash"&gt;time=`date +%s`
echo `expr $time + 100` # 可以直接做計算

&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
3. 以迴圈跑過所有的輸入參數(loop through argv) &lt;br /&gt;
&lt;pre class="brush: bash"&gt;while [ $# -gt 0 ]; do
&amp;nbsp;&amp;nbsp;&amp;nbsp;param=$1
&amp;nbsp;&amp;nbsp;&amp;nbsp;shift # 將所有參數移動一格($1=$2, $2=$3...)
&amp;nbsp;&amp;nbsp;&amp;nbsp;echo $param
done

&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
4. 在if判斷式中使用正規表示式(regular expression) &lt;br /&gt;
&lt;pre class="brush: bash"&gt;PATTERN=[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+

if [[ 1.1.1.1 =~ $PATTERN ]]; then
&amp;nbsp;&amp;nbsp;&amp;nbsp;echo 1.1.1.1 match
fi

if [[ 1.a.1.1 =~ $PATTERN ]]; then
&amp;nbsp;&amp;nbsp;&amp;nbsp;echo 1.a.1.1 match
fi

# 最後印出的結果為 1.1.1.1 match

&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
5. 攔截Ctrl+C &lt;br /&gt;
&lt;pre class="brush: bash"&gt;# 先宣告一個函式作為handler
function ctrl_c_pressed {
&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "Ctrl+C Pressed. Program now exits."
&amp;nbsp;&amp;nbsp;&amp;nbsp;exit 0  # 若這裡不寫exit的話，程式將繼續執行
}
trap 'ctrl_c_pressed' INT  # 把ctrl_c_pressed設為Ctrl+C handler

&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
6. 隱藏/顯示指標(cursor) &lt;br /&gt;
&lt;pre class="brush: bash"&gt;tput civis # 隱藏指標
tput cnorm # 顯示指標
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
7. 取消/復原鍵盤螢幕顯示(disable/enable keyboard echo) &lt;br /&gt;
&lt;pre class="brush: bash"&gt;stty -echo # disable keyboard echo
stty echo  # enable keyboard echo
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
8. 從螢幕讀一個字元，但不會無限等待(read with timeout) &lt;br /&gt;
&lt;pre class="brush: bash"&gt;read -n 1 -t 0.1 ch  # -t 0.1 意思是最多等待0.1秒
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
先暫時寫這樣，有錯請指正&lt;br /&gt;
&lt;br /&gt;
完整程式下載: &lt;a href="https://sites.google.com/site/timothylin1/downloads/countdown.bash"&gt;https://sites.google.com/site/timothylin1/downloads/countdown.bash&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6912442547768450626-7475379506347377848?l=timothylin1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timothylin1.blogspot.com/feeds/7475379506347377848/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6912442547768450626&amp;postID=7475379506347377848' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/7475379506347377848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/7475379506347377848'/><link rel='alternate' type='text/html' href='http://timothylin1.blogspot.com/2011/07/bash-script.html' title='筆記 - Bash Script 倒數計時器'/><author><name>Timothy Lin</name><uri>http://www.blogger.com/profile/16429230022479549047</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_6BrGaZ1XnWQ/SYOTGr6omSI/AAAAAAAAAFw/nqeE6bXyg5w/S220/timothy_image.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6912442547768450626.post-4583606572800857864</id><published>2010-06-14T00:50:00.000-07:00</published><updated>2010-06-14T00:58:17.459-07:00</updated><title type='text'>修正ConvertZ轉Unicode繁體中文時日文假名無法顯示的錯誤</title><content type='html'>ConvertZ是一套相當好用的編碼轉換軟體，它還支援簡/繁體中文互轉，可是當我用它把簡體中文的文件轉換為Unicode繁體中文時卻發現裡面穿插的日文假名沒有被正確地轉換以致無法顯示。為了解決這個問題，我寫了一個小程式，可以用來把轉換錯的假名再換回來，希望有人碰到跟我一樣的問題時可以用得上。只要把要轉換的txt拖放到轉換程式exe上(一次很多個也可以)，程式就會自動完成轉換工作。&lt;br /&gt;
&lt;br /&gt;
不過漢字就沒有辦法了，中日文的漢字有部分重疊，ConvertZ無法判斷一個漢字是屬於中文或日文的部分，所以會被一併轉換。 除非手動處理，不然沒有辦法解決。&lt;br /&gt;
&lt;br /&gt;
如果發現有錯誤，請email給我: &lt;a href="mailto:timothy.lin1@gmail.com"&gt;timothy.lin1@gmail.com&lt;/a&gt;，謝謝 &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;a href="http://sites.google.com/site/timothylin1/downloads/adjustkana.zip"&gt;下載轉換程式&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;
&lt;a href="http://sites.google.com/site/timothylin1/downloads/adjustkana_src.zip"&gt;下載轉換程式原始碼&lt;/a&gt;(dev-cpp專案)&lt;br /&gt;
&lt;br /&gt;
&lt;div id="fullpost"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6912442547768450626-4583606572800857864?l=timothylin1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timothylin1.blogspot.com/feeds/4583606572800857864/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6912442547768450626&amp;postID=4583606572800857864' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/4583606572800857864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/4583606572800857864'/><link rel='alternate' type='text/html' href='http://timothylin1.blogspot.com/2010/06/convertzunicode.html' title='修正ConvertZ轉Unicode繁體中文時日文假名無法顯示的錯誤'/><author><name>Timothy Lin</name><uri>http://www.blogger.com/profile/16429230022479549047</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_6BrGaZ1XnWQ/SYOTGr6omSI/AAAAAAAAAFw/nqeE6bXyg5w/S220/timothy_image.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6912442547768450626.post-5184603566662265113</id><published>2009-01-31T22:40:00.000-08:00</published><updated>2009-06-28T00:32:57.544-07:00</updated><title type='text'>用Visual C++製作VB6可使用的dll</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);"&gt;vb6是一套相當好用的程式設計工具，但是它的缺點就是速度慢。所以，如果需要大量運算的時候，就可以使用C++來撰寫這些運算的函式，vb只要呼叫使用就可以了。我在這裡要說明使用Visual  C++製作dll給vb6使用的方法，希望對需要用的人有幫助。&lt;/span&gt;

&lt;span name="zoom"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span id="fullpost"&gt;&lt;code&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;我用的軟體是Visual C++ 2005 和 Visual Basic 6.0  Professional&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;假設我的專案名稱為dlltest&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;首先，開啟vc++，在「新增專案」中選擇「Win32專案」，在專案精靈中選擇 dll  選項，以及勾選「空專案」，然後按下「完成」，精靈就幫我們製作了一個dll專案檔&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;因為這個專案檔是空的，所以沒有檔案，我們必須自行新增一個.cpp檔案，一個.h標頭檔還有一個.def定義檔，必須要有這個定義檔，vb6才可以使用這個dll&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;注意.cpp及.h的檔名必須相同&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;記得在header檔中include必要的檔案
&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# include&lt;/span&gt;   &amp;lt;cstdlib&amp;gt;

&lt;span style="color: rgb(0, 0, 153);"&gt;# include&lt;/span&gt; &amp;lt;windows.h&amp;gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;在cpp檔中include header檔
&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; # include&lt;/span&gt; "dlltest.h"&lt;/blockquote&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;撰寫函式時，加入「WINAPI」這個字，例如：
&lt;/span&gt;
&lt;span style="color: rgb(102, 0, 204);font-size:85%;" &gt;dlltest.h&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:100%;" &gt;
&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int&lt;/span&gt;   WINAPI fntest(&lt;span style="color: rgb(0, 0, 153);"&gt;void&lt;/span&gt;);&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 153);"&gt;int&lt;/span&gt;    WINAPI add1(&lt;span style="color: rgb(0, 0, 153);"&gt;int&lt;/span&gt;    number);
&lt;/blockquote&gt;
&lt;span style="color: rgb(102, 0, 204);font-size:85%;" &gt;dlltest.cpp&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:100%;" &gt;
&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;WINAPI&lt;/span&gt; fntest(&lt;span style="color: rgb(0, 0, 153);"&gt;void&lt;/span&gt;){&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;return&lt;/span&gt; 0;&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;}&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int&lt;/span&gt; WINAPI add1(&lt;span style="color: rgb(0, 0, 153);"&gt;int&lt;/span&gt;    number){&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;return&lt;/span&gt; number+1;&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;

&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;寫完所有函式後，下一個步驟就是撰寫def定義檔&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;在def中先加上EXPOTS，然後再把每一個函式的「名稱」逐行加上去。&lt;/span&gt;
&lt;span style="color: rgb(102, 0, 204);font-size:85%;" &gt;dlltest.def
&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;EXPORTS&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span lang="EN-US"  style="font-size:100%;"&gt;fntest&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span lang="EN-US"  style="font-size:100%;"&gt;add1&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span lang="EN-US"&gt;&lt;span style="font-size:100%;"&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size:100%;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;hr /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;接下來就是vb6的部分&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;在vb的專案中新增一個模組(module)&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;在這個module裡面使用以下方法來宣告函式&lt;/span&gt;
&lt;span style="color: rgb(255, 0, 0);font-size:85%;" &gt;(注意以下是同一行，不要寫成多行)

&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;Declare Function   &lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;   vb&lt;/span&gt;&lt;/span&gt;&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:新細明體;font-size:100%;"  &gt;使用時的函式名稱&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;&lt;u3:p&gt;    Lib "&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;dll&lt;/span&gt;&lt;/u3:p&gt;&lt;/span&gt;&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:新細明體;font-size:100%;"  &gt;檔名&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;"    Alias "&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;dll&lt;/span&gt;&lt;/span&gt;&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:新細明體;font-size:100%;"  &gt;裡的函式名稱&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;"    (&lt;/span&gt;&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:新細明體;font-size:100%;"  &gt;參數&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;)    As &lt;/span&gt;   &lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:新細明體;font-size:100%;"  &gt;   回傳型態&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;vb使用時的函式名稱就是在vb中呼叫這個函式時要使用的名稱。&lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;span  lang="EN-US" style="font-family:新細明體;"&gt; dll檔名就是剛才用vc++製作並放到system32目錄的dll檔名。&lt;/span&gt;&lt;/p&gt; &lt;p style="color: rgb(0, 0, 0);" class="MsoNormal"&gt;&lt;span  lang="EN-US" style="font-family:新細明體;"&gt;&lt;!--[if !supportLineBreakNewLine]--&gt; dll裡的函式名稱就是剛才那個dll中的函式名稱，如果與第一項相同就不用寫。  &lt;!--[endif]--&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;參數就是這個函式要用到的參數。&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 0);"&gt;回傳型態就是這個函式的回傳型態。&lt;/span&gt;

&lt;span style="color: rgb(0, 0, 0);"&gt;例如如果我們要呼叫剛才寫的add1的話就可以這樣寫

&lt;/span&gt;&lt;span style="color: rgb(102, 0, 204);font-size:85%;" &gt;Module1.bas&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:13;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span lang="EN-US"  style="font-size:13;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Declare Function&lt;/span&gt; &lt;/span&gt;   &lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:100%;" &gt;   LongAdd1&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Lib&lt;/span&gt; "&lt;/span&gt;&lt;span style="-moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; background-attachment: scroll;"&gt;&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-size:100%;" &gt;dlltest&lt;/span&gt;&lt;span style="font-size:100%;"&gt;"   &lt;span style="color: rgb(0, 0, 153);"&gt;Alias&lt;/span&gt; "&lt;/span&gt;&lt;span style="-moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; background-attachment: scroll;font-size:100%;" &gt;&lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;add1&lt;/span&gt;"    (&lt;/span&gt;&lt;span style="-moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;font-family:新細明體;font-size:100%;"  lang="EN-US" &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;ByVal&lt;/span&gt;    n as &lt;span style="color: rgb(0, 0, 153);"&gt;Long&lt;/span&gt;) As &lt;/span&gt;   &lt;span style="background: lime none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:新細明體;font-size:100%;"  lang="EN-US" &gt;   Long&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;

&lt;span style="color: rgb(102, 0, 204);font-size:85%;" &gt;Form1.frm
&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Private Sub&lt;/span&gt; Form_Load()&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span lang="EN-US"  style="font-size:100%;"&gt;Form1.Caption = LongAdd1(1)&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span lang="EN-US"  style="font-size:13;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:100%;" &gt;End Sub&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span lang="EN-US"  style="font-size:13;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:100%;" &gt;

&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;要注意的是，vc++裡面的 int 和 long 在 vb裡面都是  long。還有其他參數轉換的問題請見MSDN或上網搜尋。&lt;/span&gt;
&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6912442547768450626-5184603566662265113?l=timothylin1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timothylin1.blogspot.com/feeds/5184603566662265113/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6912442547768450626&amp;postID=5184603566662265113' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/5184603566662265113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/5184603566662265113'/><link rel='alternate' type='text/html' href='http://timothylin1.blogspot.com/2009/01/vb6cvbvisual-cdllvb6-visual-c-2005_31.html' title='用Visual C++製作VB6可使用的dll'/><author><name>Timothy Lin</name><uri>http://www.blogger.com/profile/16429230022479549047</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_6BrGaZ1XnWQ/SYOTGr6omSI/AAAAAAAAAFw/nqeE6bXyg5w/S220/timothy_image.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6912442547768450626.post-5747584367812855806</id><published>2008-08-29T07:09:00.000-07:00</published><updated>2009-02-15T01:06:34.168-08:00</updated><title type='text'>JavaScript身份證字號驗證產生器</title><content type='html'>&lt;style type="text/css"&gt;&lt;br /&gt;#floatbtn&lt;br /&gt;{&lt;br /&gt; list-style-type: none;&lt;br /&gt; border-right: solid 1px #023B74;&lt;br /&gt; border-bottom: solid 1px #023B74;&lt;br /&gt; padding-right: 1%;&lt;br /&gt; background: #A0C6ED;&lt;br /&gt; text-decoration: none;&lt;br /&gt; color: #333;&lt;br /&gt;}&lt;br /&gt;#floatbtn:hover&lt;br /&gt;{&lt;br /&gt; background: #83BAF2;&lt;br /&gt; border-left: solid 1px #023B74;&lt;br /&gt; border-top: solid 1px #023B74;&lt;br /&gt; border-right: none;&lt;br /&gt; border-bottom: none;&lt;br /&gt;}&lt;br /&gt;&lt;/style&gt;

身份證字號的數字是有規則可循的，如果利用這個規則，就可以產生一個合法的身份證字號，同時也可以驗證一組身份證字號是否正確，一般的應用如輸入表單驗證或申請假資料等等。

&lt;span name="zoom"&gt;&lt;span style="font-family: georgia;"&gt;&lt;span id="fullpost"&gt;&lt;code&gt;&lt;div id="fullpost"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
台灣的身份證字號有10碼，第一碼為英文字母，後面都是數字。最後一碼是確認碼，用來確認這個身份證字號的正確性。第一碼英文字母代表這組身份證字號的地區，如C代表基隆市，A代表台北市等等，這個英文字母又代表一組代號，地區和代號如下表：

&lt;span name="zoom"&gt;&lt;span style="font-family: georgia;"&gt;&lt;span id="fullpost"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="javascript" id="text33999"&gt;&lt;/span&gt;&lt;span class="javascript" id="text33999"&gt;&lt;pre&gt;A=10  台北市       J=18 新竹縣         S=26  高雄縣

B=11  台中市       K=19 苗栗縣         T=27  屏東縣&lt;span class="javascript" id="text33999"&gt;
&lt;/span&gt;
C=12  基隆市       L=20 台中縣         U=28  花蓮縣&lt;span class="javascript" id="text33999"&gt;
&lt;/span&gt;
D=13  台南市       M=21 南投縣         V=29  台東縣

E=14  高雄市       N=22 彰化縣         W=32  金門縣

F=15  台北縣       O=35 新竹市         X=30  澎湖縣

G=16  宜蘭縣       P=23 雲林縣         Y=31  陽明山

H=17  桃園縣       Q=24 嘉義縣         Z=33  連江縣

I=34  嘉義市       R=25 台南縣


第二個號碼代表性別，1為男生，2為女生


確認碼的產生規則：

(1)把第一位英文字母代表的數字(如上表)後面接上原本身份證字號的第2~9碼

例：A123456789，A代表的數字為&lt;span style="color: rgb(0, 153, 0);"&gt;10&lt;/span&gt;，後面接上原本號碼的2~9碼(&lt;span style="color: rgb(102, 102, 0);"&gt;12345678&lt;/span&gt;)
得到&lt;span style="color: rgb(0, 153, 0);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(102, 102, 0);"&gt;12345678&lt;span style="color: rgb(0, 0, 0);"&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;

(2)這十個數字由左到右依序乘上1,9,8,7,6,5,4,3,2,1然後加總

(3)得到後的數字除以10，然後再用10減掉這個數，
得到的結果如果等於最後一位號碼的話就是正確的。

&lt;a id="floatbtn" href="http://timothylin1.net63.net/jscriptdemo/id.htm"&gt;按這裡檢視完整程式&lt;/a&gt;
&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="javascript" id="text33999"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6912442547768450626-5747584367812855806?l=timothylin1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timothylin1.blogspot.com/feeds/5747584367812855806/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6912442547768450626&amp;postID=5747584367812855806' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/5747584367812855806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/5747584367812855806'/><link rel='alternate' type='text/html' href='http://timothylin1.blogspot.com/2008/08/10ca-a10-j18-s26-b11-k19-t27-c12-l20.html' title='JavaScript身份證字號驗證產生器'/><author><name>Timothy Lin</name><uri>http://www.blogger.com/profile/16429230022479549047</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_6BrGaZ1XnWQ/SYOTGr6omSI/AAAAAAAAAFw/nqeE6bXyg5w/S220/timothy_image.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6912442547768450626.post-2237011268888003215</id><published>2008-07-27T04:00:00.000-07:00</published><updated>2008-12-11T21:05:17.819-08:00</updated><title type='text'>大數相乘進階版</title><content type='html'>在C++的資料型態裡面有char,short,int,long,long long int等型態，這些型態可以儲存數字，也可以相互做運算。但是如果數字太大（或太小）的時候，做運算的時候就會溢位，如果要解決這個問題，可以把數字用字串代替，然後做移位相乘。&lt;br /&gt;

移位相乘就像直式乘法，各個位數分別相乘以後再加起來，如下圖：&lt;br /&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6BrGaZ1XnWQ/SI8usYAjtII/AAAAAAAAAEc/LXEpP-96lNM/s1600-h/multiply1.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_6BrGaZ1XnWQ/SI8usYAjtII/AAAAAAAAAEc/LXEpP-96lNM/s320/multiply1.png" alt="" id="BLOGGER_PHOTO_ID_5228449032294347906" border="0" /&gt;&lt;/a&gt;

小數點的部分則是一開始就把乘數和被乘數的小數位數數目存起來，然後只要把兩個小數位數加起來就是商的小數位數數目&lt;br /&gt;


細節部分請參考範例程式&lt;br /&gt;


點擊以下連結下載這個專案&lt;br /&gt;

&lt;a href="http://timothylin1.net63.net/files/cpp/multiplication.zip"&gt;下載專案&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6912442547768450626-2237011268888003215?l=timothylin1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timothylin1.blogspot.com/feeds/2237011268888003215/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6912442547768450626&amp;postID=2237011268888003215' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/2237011268888003215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6912442547768450626/posts/default/2237011268888003215'/><link rel='alternate' type='text/html' href='http://timothylin1.blogspot.com/2008/07/blog-post_27.html' title='大數相乘進階版'/><author><name>Timothy Lin</name><uri>http://www.blogger.com/profile/16429230022479549047</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://4.bp.blogspot.com/_6BrGaZ1XnWQ/SYOTGr6omSI/AAAAAAAAAFw/nqeE6bXyg5w/S220/timothy_image.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6BrGaZ1XnWQ/SI8usYAjtII/AAAAAAAAAEc/LXEpP-96lNM/s72-c/multiply1.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
