<?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:blogger='http://schemas.google.com/blogger/2008' 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-266208437047479024</id><updated>2024-10-07T13:31:23.972+08:00</updated><category term="程式設計"/><category term="Qt"/><category term="書籤"/><category term="C/C++"/><category term="Android"/><category term="Python"/><category term="Google"/><category term="API"/><category term="Linux"/><category term="AJAX"/><category term="DBus"/><category term="GAE"/><category term="ubuntu"/><category term="BCB"/><category term="Facebook"/><category term="Glade"/><category term="Pidgin"/><category term="Sync"/><category term="XML"/><category term="Yahoo"/><category term="藍芽"/><title type='text'>kie程式開發日誌</title><subtitle type='html'>記錄一些程式開發過程和網路上找到的資訊</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>56</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-8041882077478427726</id><published>2020-07-05T00:46:00.003+08:00</published><updated>2020-07-05T00:46:59.073+08:00</updated><title type='text'>從svn搬家到git上</title><content type='html'>前陣子有段時間跟另一個團隊合作開發一個專案&lt;div&gt;
因為對方團隊的leader不願轉換到git&lt;/div&gt;
&lt;div&gt;
所以在交接程式給對方的過度期就需要不斷的把對方開發的程式先併入git再將程式提交給對方(其實併版完是可以直接merge回去的，但因為對方意見很多所以後來就直接匯出差異檔了)&lt;/div&gt;
&lt;div&gt;
不過上面都是題外話&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
重點是最近又有另一個專案要從svn搬過來&lt;/div&gt;
&lt;div&gt;
但偏偏幾個簡單的指令就是會忘記&lt;/div&gt;
&lt;div&gt;
所以這次就在這邊記錄一下&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
第一步-把svn的程式check out下來&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
git svn clone https://svn-server/MyProject&lt;/blockquote&gt;
&lt;div&gt;
&lt;div&gt;
第二步-進入專案目錄&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
cd MyProject&lt;/blockquote&gt;
&lt;div&gt;
第三步-加入git 位置，並提交&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
git remote add origin https://git-server/MyProject.git&lt;br /&gt;git push origin master&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
這樣就成功把專案搬到git上了&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/8041882077478427726/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/8041882077478427726' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/8041882077478427726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/8041882077478427726'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2020/07/svngit.html' title='從svn搬家到git上'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7699452780561820269</id><published>2011-10-04T10:20:00.001+08:00</published><updated>2014-06-19T15:14:15.900+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android修改system唯讀權限：remount</title><content type='html'>完整文章來源http://blog.csdn.net/lixinso/article/details/5835598&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial; font-size: 14px; line-height: 26px;&quot;&gt;lixinso@lixinso-desktop:~$ &lt;strong&gt;adb shell&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;mount&lt;/strong&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial; font-size: 14px; line-height: 26px;&quot;&gt;# &lt;strong&gt;mount -o remount /dev/block/mtdblock0 /system&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;mount&lt;/strong&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial; font-size: 14px; line-height: 26px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial; font-size: 14px; line-height: 26px;&quot;&gt;mount完就可以任意修改删除拉~~~~&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial; font-size: 14px; line-height: 26px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial; font-size: 14px; line-height: 26px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 14px; line-height: 26px;&quot;&gt;另一個更簡單的方法是直接&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 14px; line-height: 26px;&quot;&gt;:~$adb remount&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 14px; line-height: 26px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 14px; line-height: 26px;&quot;&gt;即可&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7699452780561820269/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7699452780561820269' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7699452780561820269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7699452780561820269'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/10/androidsystemremount.html' title='Android修改system唯讀權限：remount'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-1180857303565370222</id><published>2011-10-01T01:02:00.001+08:00</published><updated>2011-10-01T01:02:11.645+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AJAX"/><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>將Google Appengine 的資料轉成 JSON格式輸出</title><content type='html'>將以下程式加入程式中&lt;br /&gt;
&amp;nbsp;&lt;code&gt;&lt;br /&gt;
from google.appengine.ext import db&lt;br /&gt;
from google.appengine.ext.db import BadValueError&lt;br /&gt;
import datetime, time&lt;br /&gt;
from google.appengine.api import users&lt;br /&gt;
&lt;br /&gt;
SIMPLE_TYPES = (int, long, float, bool, dict, basestring, list)&lt;br /&gt;
&lt;br /&gt;
def to_dict(model):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; output = {}&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if isinstance(model, db.Query):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output = []&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for v in model:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output.append(to_dict(v))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return output&lt;br /&gt;
&amp;nbsp; &amp;nbsp; elif isinstance(model, list):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output = []&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for v in model:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output.append(to_dict(v))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return output&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; for key, prop in model.properties().iteritems():&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; value = getattr(model, key)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if value is None or isinstance(value, SIMPLE_TYPES):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[key] = value&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elif isinstance(value, datetime.date):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[key] = value.strftime(&quot;%Y/%m/%d %H:%M&quot;)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elif isinstance(value, db.GeoPt):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[key] = {&#39;lat&#39;: value.lat, &#39;lon&#39;: value.lon}&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elif isinstance(value, db.Model):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[key] = to_dict(value)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elif isinstance(value, users.User):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output = {}&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; methods = [&#39;nickname&#39;, &#39;email&#39;, &#39;auth_domain&#39;]&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for method in methods:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; output[method] = getattr(value, method)()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return output &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; raise ValueError(&#39;cannot encode &#39; + repr(prop))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return output&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
使用範例&lt;br /&gt;
&lt;code&gt;
&lt;br /&gt;
import model&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rooms= model.Room.all()&lt;br /&gt;
self.response.out.write(model.to_dict(rooms))&lt;br /&gt;
&lt;/code&gt;

&lt;br /&gt;
參考資料&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.cnblogs.com/lettoo/archive/2011/03/09/1978563.html&quot;&gt;GAE返回JSON数据&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/2114659/how-to-serialize-db-model-objects-to-json&quot;&gt;How to serialize db.Model objects to json&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/1531501/json-serialization-of-google-app-engine-models&quot;&gt;JSON serialization of Google App Engine models&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/1180857303565370222/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/1180857303565370222' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/1180857303565370222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/1180857303565370222'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/10/google-appengine-json.html' title='將Google Appengine 的資料轉成 JSON格式輸出'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-6544179991077131435</id><published>2011-09-28T16:35:00.005+08:00</published><updated>2011-10-01T10:31:18.709+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="Facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="程式設計"/><title type='text'>[教學]用Facebook帳號登入你的網站</title><content type='html'>在開始之前...你必須先向facebook註冊你的網站&lt;br /&gt;
&lt;br /&gt;
https://developers.facebook.com/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
完成後即可得到你的  &lt;br /&gt;
&lt;br /&gt;
應用程式ID/API鑰匙=&amp;gt; 即後面會用到的client_id&lt;br /&gt;
&lt;br /&gt;
網站URL=&amp;gt; 這應該是你自己設定的後面也會用到redirect_uri&lt;br /&gt;
&lt;br /&gt;
應用程式密鑰=&amp;gt; 後面會用到的client_secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
完成註冊後就可以開始以下步驟了&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step1: 做登入的按鍵&lt;br /&gt;
&lt;br /&gt;
這按鍵的只要加上這個超連結就行了&lt;br /&gt;
&lt;br /&gt;
https://www.facebook.com/dialog/oauth?client_id=你的client_id&amp;amp;redirect_uri=http://www.7998.com.tw/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step2: 在你的登入頁面需要加入一個code的參數 以便facebook將資料帶進來&lt;br /&gt;
&lt;br /&gt;
在使用者按下登入的按鍵後facebook會讓使用者登入後再導回到你的網站並附帶一個code的參數&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.7998.com.tw/?code=2345eashdfhasdfjasdkfjasdlfjlasdj......這code是我亂打的 = =&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step3: 利用facebook 傳來的code參數向facebook取得access_token&lt;br /&gt;
&lt;br /&gt;
https://graph.facebook.com/oauth/access_token?client_id=應用程式ID/API鑰匙&amp;amp;redirect_uri=你的網址&amp;amp;client_secret=應用程式密鑰&amp;amp;code=2345eashdfhasdfjasdkfjasdlfjlasdj&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
會得到facebook 回傳的資料&lt;br /&gt;
&lt;br /&gt;
access_token=asdfasdbja;ljserowjelrjlwjksejlfjsl....這當然也是我亂打的= =&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step4: 利用access_token就可以取的使用者的資料了&lt;br /&gt;
&lt;br /&gt;
https://graph.facebook.com/me?access_token=asdfasdbja;ljserowjelrjlwjksejlfjsl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
詳細流程可以看facebook的官方說明&lt;br /&gt;
&lt;a href=&quot;https://developers.facebook.com/docs/authentication/&quot;&gt;https://developers.facebook.com/docs/authentication/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/6544179991077131435/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/6544179991077131435' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6544179991077131435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6544179991077131435'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/09/facebook.html' title='[教學]用Facebook帳號登入你的網站'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-3629142674649686087</id><published>2011-09-27T18:04:00.000+08:00</published><updated>2011-09-28T17:22:52.144+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BCB"/><category scheme="http://www.blogger.com/atom/ns#" term="C/C++"/><category scheme="http://www.blogger.com/atom/ns#" term="程式設計"/><title type='text'>[BCB] 視窗間傳遞物件訊息 SendMessage</title><content type='html'>在寫程式的時候有時候會需要和其他程式做溝通&lt;br&gt;
這程式很有可能就在本機的電腦上的另一支程式&lt;br&gt;
這時候就可以利用SendMessage這API來達成&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
首先先宣告結構&lt;br&gt;
&lt;code&gt;
typedef struce _MYSTRUCT&lt;br&gt;
{&lt;br&gt;
    char szChar[255];&lt;br&gt;
    int iInt;&lt;br&gt;
}MyStruct;&lt;br&gt;
&lt;/code&gt;
在傳送端的部份&lt;br&gt;
&lt;br&gt;
在.cpp中加入Send的function  當然最好在.h中先宣告&lt;br&gt;
&lt;code&gt;
void Send()&lt;br&gt;
{&lt;br&gt;
    AnsiString app_name = &quot;要收到訊息的視窗&quot;;&lt;br&gt;
    AnsiString msg = &quot;要傳送的訊息&quot;;&lt;br&gt;
    int type = 1; //要傳送的數字&lt;br&gt;
&lt;br&gt;
    HWND hWnd = FindWindow(NULL, app_name.c_str());  //找到視窗&lt;br&gt;
&lt;br&gt;
    if(hWnd)&lt;br&gt;
    {&lt;br&gt;
        MyStruct ms;&lt;br&gt;
        istrcpy(ms.szChar, msg.c_str());&lt;br&gt;
        ms.iInt=type;&lt;br&gt;
        COPYDATASTRUCT CopyData;&lt;br&gt;
        CopyData.dwData=0;&lt;br&gt;
        CopyData.cbData=sizeof(MyStruct);&lt;br&gt;
        CopyData.lpData=&amp;amp;ms;&lt;br&gt;
&lt;br&gt;
        SendMessage( hWnd, WM_COPYDATA, NULL, (LPARM)&amp;amp;CopyData);&lt;br&gt;
&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;
&lt;br&gt;
&lt;br&gt;
在接受端的部份&lt;br&gt;
在from.h的private:後面加入宣告&lt;br&gt;
&lt;br&gt;
&lt;code&gt;
void  __fastcall WMCopyData( TMessage &amp;amp;Message );&lt;br&gt;
&lt;br&gt;
BEGIN_MESSGE_MAP&lt;br&gt;
MESSAGE_HANDLER(WM_COPYDATA, TMessage, WMCopyData)&lt;br&gt;
END_MESSAGE_MAP(TForm)&lt;br&gt;
&lt;/code&gt;
&lt;br&gt;
在.cpp中加入&lt;br&gt;
&lt;code&gt;
void __fastcall TMainForm::WMCopyData(TMessage &amp;amp;Message)&lt;br&gt;
{&lt;br&gt;
    COPYDATASTRUCT *CopyData = (COPYDATASTRUCT*) (Message.LParam);&lt;br&gt;
    if(CopyData-&amp;gt;cbData == sizeof(MyStruct) )&lt;br&gt;
    {&lt;br&gt;
        MyStruct ms;&lt;br&gt;
        CopyMemory(&amp;amp;ms, CopyData-&amp;gt;lpData, CopyData-&amp;gt;cbData);&lt;br&gt;
        //ms.Int 即是接收到的數字&lt;br&gt;
        //ms.szChar即是要接收到的訊息&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;
&lt;br&gt;
以上資料是從&lt;a href=&quot;http://delphi.ktop.com.tw/&quot;&gt;Delphi.Ktop&lt;/a&gt;找到的&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/3629142674649686087/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/3629142674649686087' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/3629142674649686087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/3629142674649686087'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/09/bcb-sendmessage.html' title='[BCB] 視窗間傳遞物件訊息 SendMessage'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7443978946410518926</id><published>2011-07-22T11:55:00.004+08:00</published><updated>2011-07-22T12:03:42.742+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>7998住宿網</title><content type='html'>最近完成了一個網站架在Google的服務上, 提供日租訂房的服務，可提供日租套房，民宿等訂房服務。如果有房東看到這篇可以來試試看這個系統&lt;br&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.7998.com.tw/&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 330px; height: 72px;&quot; src=&quot;http://www.7998.com.tw/image/logoandbkg.gif&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;網址：&lt;a href=&quot;http://www.7998.com.tw/&quot;&gt;http://www.7998.com.tw/&lt;/a&gt;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7443978946410518926/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7443978946410518926' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7443978946410518926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7443978946410518926'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/07/7998.html' title='7998住宿網'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7524146261961200267</id><published>2011-02-23T14:14:00.002+08:00</published><updated>2011-02-23T14:31:07.283+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><title type='text'>Qt 動態載入 DLL</title><content type='html'>在Qt中要動態載入DLL檔可以用QLibrary來載入&lt;br /&gt;首先&lt;br /&gt;&lt;br /&gt;#include &lt; QLibrary &gt;&lt;br /&gt;定義Function&lt;br /&gt;typedef void (*Function_Name)(int 參數1，int 參數２ , ...);&lt;br /&gt;&lt;br /&gt;然後在程式中載入的方法是&lt;br /&gt;&lt;br /&gt;QLibrary testlib(&quot;DLL_Name&quot;);  //此處DLL_Name不用加.dll&lt;br /&gt;&lt;br /&gt;if(test_lib.load())//載入dll並判斷是否成功&lt;br /&gt;{&lt;br /&gt;  qDebug()&lt;&lt;&quot;load dll ok.&quot;;&lt;br /&gt;  //宣告Function(DLL_Function_Name為DLL檔裡定義的Function名稱)&lt;br /&gt;  Function_Name test_function = (Function_Name)test_lib.resolve(&quot;DLL_Function_Name&quot;);&lt;br /&gt;  //現在可以使用Function了&lt;br /&gt;  if(test_function)&lt;br /&gt;  {&lt;br /&gt;    int a = 0;&lt;br /&gt;    int b = 0;&lt;br /&gt;    &lt;br /&gt;    test_function( a, b );&lt;br /&gt;  }&lt;br /&gt;}else{&lt;br /&gt;  qDebug()&lt;&lt;&quot;load dll fail.&quot;;&lt;br /&gt;}</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7524146261961200267/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7524146261961200267' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7524146261961200267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7524146261961200267'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/02/qt-dll.html' title='Qt 動態載入 DLL'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7647401506831371162</id><published>2011-02-09T14:02:00.012+08:00</published><updated>2011-02-11T10:14:53.868+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C/C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><title type='text'>Qt 4.7 Tcp Socket Client 教學範例</title><content type='html'>首先在專案的.pro檔中要先加入&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;QT += network&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;接著在程式.h檔中加入&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt; &lt;span style=&quot;color: rgb(0, 128, 0);&quot;&gt;QtNetwork/QTcpSocket &lt;/span&gt;&gt;&lt;br /&gt;&lt;br /&gt;//宣告一個QTcpSocket方便在整個程式中使用&lt;br /&gt;QTcpSocket *m_socket;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;在程式.cpp裡&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//產生QTcpSocket物件&lt;br /&gt;m_socket = new QTcpSocket(this);&lt;br /&gt;&lt;br /&gt;//Connect事件觸發的Function&lt;br /&gt;//在收到Server的訊息時會觸發readRead()&lt;br /&gt;connect(m_socket,SIGNAL(readyRead()),this,SLOT(slotReadyRead()));&lt;br /&gt;//連線成功的事件&lt;br /&gt;connect(m_socket,SIGNAL(connected()),this,SLOT(slotConnected()));&lt;br /&gt;//斷線的事件&lt;br /&gt;connect(m_socket,SIGNAL(disconnected()),this,SLOT(slotDisConnected()));&lt;br /&gt;&lt;br /&gt;//連線到Server&lt;br /&gt;QString ip_address=&quot;127.0.0.1&quot;;&lt;br /&gt;int port = 2266&lt;br /&gt;m_socket-&gt;connectToHost(ip_address,port );&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//傳送訊息&lt;br /&gt;QTextStream stream(m_socket);&lt;br /&gt;stream &lt;&lt; &quot;Server: Hi, I am client&quot;;&lt;br /&gt;&lt;br /&gt;//接收訊息&lt;br /&gt;m_socket-&gt;readAll();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;參考網址&lt;br /&gt;Qt Network Tutorial&lt;br /&gt;&lt;a href=&quot;http://www.qtforum.org/article/9/qt-network-tutorial.html&quot;&gt;http://www.qtforum.org/article/9/qt-network-tutorial.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blocking Fortune Client Example&lt;br /&gt;&lt;a href=&quot;http://2s22.ing.ula.ve/qt/network-blockingfortuneclient.html&quot;&gt;http://2s22.ing.ula.ve/qt/network-blockingfortuneclient.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How to write Socket program in Qt 4.7 for Mobiles?&lt;br /&gt;&lt;a href=&quot;http://discussion.forum.nokia.com/forum/showthread.php?217630-How-to-write-Socket-program-in-Qt-4.7-for-Mobiles&quot;&gt;http://discussion.forum.nokia.com/forum/showthread.php?217630-How-to-write-Socket-program-in-Qt-4.7-for-Mobiles&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7647401506831371162/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7647401506831371162' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7647401506831371162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7647401506831371162'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/02/qt-47-tcp-socket-client.html' title='Qt 4.7 Tcp Socket Client 教學範例'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-5506642683361881968</id><published>2011-01-11T17:24:00.011+08:00</published><updated>2011-01-11T18:30:29.733+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android Service 定時自動執行</title><content type='html'>在Android讓widget自動更新其實可以直接寫在widget Provider的onUpdate裡就行了&lt;br /&gt;但是後面的版本並不能設定update的時間，他已經被設定成30分鐘更新一次&lt;br /&gt;所以如果要讓widget自動更新比較好的做法事建立一個Service並註冊一個AlarmManager設定定時執行的間隔時間&lt;br /&gt;以下為範例&lt;br /&gt;在Service中定義一個PendngIntent&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public static PendingIntent serviceIntent = null;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;在Service中定義註冊AlarmManager的Function&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public static void registerService(Context context) {&lt;br /&gt;  AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);&lt;br /&gt; &lt;br /&gt;  //如果serviceIntent不為null(已註冊過)&lt;br /&gt;  if (serviceIntent != null)&lt;br /&gt;   alarmManager.cancel(serviceIntent); //清除&lt;br /&gt; &lt;br /&gt;  final int updateInterval = 60 * 60000;//間隔時間單位為ms&lt;br /&gt;&lt;br /&gt;  //間隔時間不為0&lt;br /&gt;  if (updateInterval != 0) {&lt;br /&gt;   //如果serviceIntent為null&lt;br /&gt;   &lt;br /&gt;if (serviceIntent == null) {&lt;br /&gt;    //建立intent&lt;br /&gt;    Intent intent = new Intent(context, 要更新的Service.class);&lt;br /&gt;    //建立serviceIntent&lt;br /&gt;    serviceIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);      &lt;br /&gt;   }&lt;br /&gt;   //在AlarmManager設定重覆執行的Server的intent&lt;br /&gt;   alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,&lt;br /&gt;     SystemClock.elapsedRealtime() + updateInterval,&lt;br /&gt;     updateInterval, serviceIntent);&lt;br /&gt;  } &lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;在Service中定義取消AlarmManager註冊&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public static void removeService(Context context) {&lt;br /&gt;  if (serviceIntent != null) {&lt;br /&gt;   ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)).cancel(serviceIntent);&lt;br /&gt;   serviceIntent = null;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;最後在Widget實作onEnabled和onDisabled兩個Function&lt;br /&gt;各別在裡面呼叫registerService和removeService即可&lt;br /&gt;如&lt;br /&gt;&lt;code&gt;&lt;br /&gt;@Override&lt;br /&gt; public void onDisabled(Context context) {&lt;br /&gt;  // TODO Auto-generated method stub&lt;br /&gt;  UpdateService.removeService(context);&lt;br /&gt;  &lt;br /&gt;  super.onDisabled(context);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; public void onEnabled(Context context) {&lt;br /&gt;  // TODO Auto-generated method stub&lt;br /&gt;  UpdateService.registerService(context);&lt;br /&gt;  super.onEnabled(context);&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/5506642683361881968/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/5506642683361881968' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/5506642683361881968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/5506642683361881968'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2011/01/android-service.html' title='Android Service 定時自動執行'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-1893220098201229734</id><published>2010-12-24T17:31:00.001+08:00</published><updated>2011-01-11T17:43:02.521+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android EditText的輸入事件</title><content type='html'>關於Android的EditText的輸入事件，一開始我以為是用OnKeyListener去處理就可以了。&lt;br /&gt;後來發現我錯了...OnKeyListener只接收&quot;實體鍵盤的event觸發&quot;對一般Android都是觸控的虛擬鍵盤一點反應都沒有。Google後發現應該是要用addTextChangedListener來處理才是正確的做法&lt;br /&gt;程式大致如下：&lt;br /&gt;&lt;code&gt;&lt;br /&gt;myEditText.addTextChangedListener(new TextWatcher(){&lt;br /&gt;  @Override&lt;br /&gt;  public void afterTextChanged(Editable s) {&lt;br /&gt; // TODO Auto-generated method stub&lt;br /&gt;  }&lt;br /&gt;  @Override&lt;br /&gt;  public void beforeTextChanged(CharSequence s, int start, int count,int after) {&lt;br /&gt; // TODO Auto-generated method stub&lt;br /&gt;  }&lt;br /&gt;  @Override&lt;br /&gt;  public void onTextChanged(CharSequence s, int start, int before, int count) {&lt;br /&gt; // TODO Auto-generated method stub&lt;br /&gt;&lt;br /&gt;  }});&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;裡面三個function是new TextWatcher()必須要實作的&lt;br /&gt;程式寫在onTextChange()那function裡面就可以了</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/1893220098201229734/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/1893220098201229734' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/1893220098201229734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/1893220098201229734'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/12/android-edittext.html' title='Android EditText的輸入事件'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7423607484250937863</id><published>2010-12-14T13:29:00.000+08:00</published><updated>2010-12-14T13:38:28.952+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="Yahoo"/><title type='text'>Yahoo 搜尋股票代號API</title><content type='html'>在輸入股票代號時常常會不知道公司的股票代號&lt;br /&gt;這時就可以用Yahoo 的這個API來搜尋&lt;br /&gt;&lt;br /&gt;使用方式如下&lt;br /&gt;http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=關鍵字&amp;callback=YAHOO.Finance.SymbolSuggest.ssCallback&lt;br /&gt;&lt;br /&gt;此API可以尋找各交易所的股票代號相當的方便&lt;br /&gt;但因為資料都是英文所以要搜尋中文公司也要輸入英文的關鍵字才行&lt;br /&gt;&lt;br /&gt;用關鍵字Yahoo搜尋的結果如下&lt;br /&gt;YAHOO.Finance.SymbolSuggest.ssCallback({&quot;ResultSet&quot;:{&quot;Query&quot;:&quot;yahoo&quot;,&quot;Result&quot;:[{&quot;symbol&quot;:&quot;YHOO&quot;,&quot;name&quot;: &quot;Yahoo! Inc.&quot;,&quot;exch&quot;: &quot;NMS&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;NASDAQ&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YOJ.F&quot;,&quot;name&quot;: &quot;YAHOO JAPAN&quot;,&quot;exch&quot;: &quot;FRA&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;Frankfurt&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YOJ.BE&quot;,&quot;name&quot;: &quot;YAHOO JAPAN&quot;,&quot;exch&quot;: &quot;BER&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;Berlin&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YHO.MU&quot;,&quot;name&quot;: &quot;YAHOO&quot;,&quot;exch&quot;: &quot;MUN&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;Munich&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YHO.F&quot;,&quot;name&quot;: &quot;YAHOO&quot;,&quot;exch&quot;: &quot;FRA&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;Frankfurt&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YAHOF.PK&quot;,&quot;name&quot;: &quot;YAHOO JAPAN CORP&quot;,&quot;exch&quot;: &quot;PNK&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;Pink Sheets&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;ETD&quot;,&quot;name&quot;: &quot;Citigroup Inc. ELKS On Yahoo&quot;,&quot;exch&quot;: &quot;PCX&quot;,&quot;type&quot;: &quot;S&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YHO.DU&quot;,&quot;name&quot;: &quot;YAHOO&quot;,&quot;exch&quot;: &quot;DUS&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;Dusseldorf Stock Exchange&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YOJ.DE&quot;,&quot;name&quot;: &quot;YAHOO JAPAN&quot;,&quot;exch&quot;: &quot;GER&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;XETRA&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;},{&quot;symbol&quot;:&quot;YHO.HM&quot;,&quot;name&quot;: &quot;YAHOO&quot;,&quot;exch&quot;: &quot;HAM&quot;,&quot;type&quot;: &quot;S&quot;,&quot;exchDisp&quot;:&quot;Hamburg&quot;,&quot;typeDisp&quot;:&quot;Equity&quot;}]}})&lt;br /&gt;&lt;br /&gt;和Google Stock Api一樣...也是JSON格式&lt;br /&gt;symbol = 代號&lt;br /&gt;name = 公司名稱&lt;br /&gt;exch = 證券交易所&lt;br /&gt;type = 應該是上市上櫃分別&lt;br /&gt;exchDisp = 交易所地點&lt;br /&gt;&lt;br /&gt;參考自&lt;br /&gt;&lt;a href=&quot;http://stackoverflow.com/questions/885456/stock-ticker-symbol-lookup-api&amp;rurl=translate.google.com.tw&amp;twu=1&amp;usg=ALkJrhgoUpKv7sDtcpKatP_oy50z7GI2Jg&quot;&gt;http://stackoverflow.com/questions/885456/stock-ticker-symbol-lookup-api&amp;rurl=translate.google.com.tw&amp;twu=1&amp;usg=ALkJrhgoUpKv7sDtcpKatP_oy50z7GI2Jg&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7423607484250937863/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7423607484250937863' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7423607484250937863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7423607484250937863'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/12/yahoo-api.html' title='Yahoo 搜尋股票代號API'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-2901229955199117073</id><published>2010-12-02T16:24:00.001+08:00</published><updated>2011-01-11T17:43:47.931+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android Http Get 實作範例</title><content type='html'>首先&lt;br /&gt;在AndroidManifest.xml中要加入可以使用網路的權限&lt;br /&gt;&lt; uses-permission android:name=&quot;android.permission.INTERNET&quot; &gt;&lt; /uses-permission &gt;&lt;br /&gt;&lt;br /&gt;在程式部份&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//for Http Get&lt;br /&gt;import org.apache.http.HttpResponse;&lt;br /&gt;import org.apache.http.client.HttpClient;&lt;br /&gt;import org.apache.http.client.methods.HttpGet;&lt;br /&gt;import org.apache.http.impl.client.DefaultHttpClient;&lt;br /&gt;import org.apache.http.util.EntityUtils;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public void executeHttpGet() throws Exception {&lt;br /&gt;        try {&lt;br /&gt;            HttpClient client = new DefaultHttpClient();&lt;br /&gt;            HttpGet request = new HttpGet(網址);&lt;br /&gt;            HttpResponse response = client.execute(request);&lt;br /&gt;            String retSrc = EntityUtils.toString(response.getEntity());&lt;br /&gt;           &lt;br /&gt;            System.out.println(retSrc);&lt;br /&gt;            } finally {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/2901229955199117073/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/2901229955199117073' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/2901229955199117073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/2901229955199117073'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/12/android-http-get.html' title='Android Http Get 實作範例'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-4477150875345181499</id><published>2010-12-02T14:38:00.002+08:00</published><updated>2011-01-11T17:44:58.687+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android SharedPreferences 儲存簡單的欄位資訊</title><content type='html'>Android 提供了 SharedPreferences 這個介面讓我們方便存取一些預設資料或是一些簡單的使用者輸入的欄位資訊&lt;br /&gt;要使用這個介面第一步當然是&lt;br /&gt;import android.content.SharedPreferences;&lt;br /&gt;&lt;br /&gt;接著，就是程式碼的部份&lt;br /&gt;&lt;code&gt;&lt;br /&gt;首先介紹儲存資料的部份&lt;br /&gt;//取得SharedPreferences物件 (參數一是偏好設定檔的名稱，參數二是讀取權限)&lt;br /&gt;SharedPreferences pref = getSharedPreferences(&quot;PREF_STOCK&quot;, MODE_WORLD_WRITEABLE);&lt;br /&gt;//要修改偏好設定檔必須透過一個SharedPreferences.Editor 物件&lt;br /&gt;//取得SharedPreferences.Editor 物件&lt;br /&gt;SharedPreferences.Editor prefEdt = pref.edit();    &lt;br /&gt;//寫入資料(參數一是欄位名稱，參數二是要寫入的資料)&lt;br /&gt;prefEdt.putString(&quot;PREF_T&quot;, &quot;hello world&quot;);&lt;br /&gt;//最後一定要commit將資料寫入檔案&lt;br /&gt;prefEdt.commit();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;在讀取方面就簡單多了&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//取得SharedPreferences物件 (參數一是偏好設定檔的名稱，參數二是讀取權限)&lt;br /&gt;SharedPreferences pref = getSharedPreferences(&quot;PREF_STOCK&quot;, MODE_WORLD_WRITEABLE);&lt;br /&gt;//取得資料 (參數一是欄位名稱，參數二是讀取失敗時的預設資料)&lt;br /&gt;String getS = pref.getString(&quot;PREF_T&quot;, &quot;&quot;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;以上就是讀寫一個偏好設定檔要用的功能了&lt;br /&gt;其他更深入的說明介紹可以參考以下的資料&lt;br /&gt;&lt;a href=&quot;http://asia.edu.tw/~lincyu/Android/Chapter11.pdf&quot;&gt;http://asia.edu.tw/~lincyu/Android/Chapter11.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.android.com/reference/android/content/SharedPreferences.html&quot;&gt;http://developer.android.com/reference/android/content/SharedPreferences.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/4477150875345181499/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/4477150875345181499' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/4477150875345181499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/4477150875345181499'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/12/android-sharedpreferences.html' title='Android SharedPreferences 儲存簡單的欄位資訊'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-2917957217421090021</id><published>2010-12-02T11:28:00.002+08:00</published><updated>2011-01-11T17:46:22.586+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android 讀取JSON使用範例</title><content type='html'>在Android中使用JSON其實滿方便的，因為Libary已經有寫好了，只要直接拿來用就好了&lt;br /&gt;首先&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import org.json.JSONObject;&lt;br /&gt;import org.json.JSONArray;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;然後假設JSON格式的資料在一個字串json_data中&lt;br /&gt;如果資料最外層是[]那就是JSONArray&lt;br /&gt;最外層是{}則是JSONObject&lt;br /&gt;&lt;br /&gt;以上一篇從Google取得的股票資料為例&lt;br /&gt;最外層是[]然後裡面有不同的物件&lt;br /&gt;取得資料方式如下&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//將資料寫入JSONArray&lt;br /&gt;JSONArray result = new JSONArray(json_data);&lt;br /&gt;//取出陣列內所有物件&lt;br /&gt;for(int i = 0;i &lt; result.length(); i++)&lt;br /&gt;{&lt;br /&gt;    //取出JSON物件&lt;br /&gt;    JSONObject stock_data = result.getJSONObject(i);&lt;br /&gt;    //取得物件內資料&lt;br /&gt;    System.out.println(&quot;t:&quot;+stock_data.getString(&quot;t&quot;));&lt;br /&gt;    System.out.println(&quot;l_cur:&quot;+stock_data.getString(&quot;l_cur&quot;));&lt;br /&gt;    System.out.println(&quot;c:&quot;+stock_data.getString(&quot;c&quot;));&lt;br /&gt;    System.out.println(&quot;cp:&quot;+stock_data.getString(&quot;cp&quot;));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;可參考API網址&lt;br /&gt;&lt;a href=&quot;http://developer.android.com/reference/org/json/package-summary.html&quot;&gt;http://developer.android.com/reference/org/json/package-summary.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/2917957217421090021/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/2917957217421090021' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/2917957217421090021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/2917957217421090021'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/12/android-json.html' title='Android 讀取JSON使用範例'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7982079736745684744</id><published>2010-12-01T14:18:00.000+08:00</published><updated>2010-12-01T14:40:55.524+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><title type='text'>Google Stock 股市API</title><content type='html'>跟據&lt;br /&gt;http://googlefinanceblog.blogspot.com/2008/04/taiwan-stock-exchange-pricing-data.html&lt;br /&gt;可以得知在2008Google的Stock API就已經有台灣股市的資料了使用方式就是把後面改成&lt;br /&gt;TPE:代號 或是  代號.TW&lt;br /&gt;&lt;br /&gt;查詢方式如下:(以2454聯發科)為例&lt;br /&gt;http://finance.google.com/finance/info?client=ig&amp;q=TPE:2454&lt;br /&gt;&lt;br /&gt;得到的結果&lt;br /&gt;// [ { &quot;id&quot;: &quot;683538&quot; ,&quot;t&quot; : &quot;2454&quot; ,&quot;e&quot; : &quot;TPE&quot; ,&quot;l&quot; : &quot;391.50&quot; ,&quot;l_cur&quot; : &quot;NT$391.50&quot; ,&quot;ltt&quot;:&quot;1:30PM Taipei&quot; ,&quot;lt&quot; : &quot;Dec 1, 1:30PM Taipei&quot; ,&quot;c&quot; : &quot;+1.00&quot; ,&quot;cp&quot; : &quot;0.26&quot; ,&quot;ccol&quot; : &quot;chg&quot; } ]&lt;br /&gt;&lt;br /&gt;看得出來是個JSON格式的file&lt;br /&gt;t就是代號&lt;br /&gt;&quot;l_cur&quot;:成交價格&lt;br /&gt;&quot;ltt&quot;:時間&lt;br /&gt;&quot;lt&quot;:日期時間&lt;br /&gt;&quot;c&quot;:漲跌&lt;br /&gt;&quot;cp&quot;:漲跌幅&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;其他資訊可以參考&lt;br /&gt;&lt;a href=&quot;http://stackoverflow.com/questions/527703/google-financial-api-how-get-stock-quotes&quot;&gt;http://stackoverflow.com/questions/527703/google-financial-api-how-get-stock-quotes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google Finance API docs&lt;br /&gt;&lt;a href=&quot;http://code.google.com/intl/zh-TW/apis/finance/docs/2.0/reference.html&quot;&gt;http://code.google.com/intl/zh-TW/apis/finance/docs/2.0/reference.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7982079736745684744/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7982079736745684744' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7982079736745684744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7982079736745684744'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/11/google-stock-api.html' title='Google Stock 股市API'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-6197224246567397541</id><published>2010-11-26T13:35:00.001+08:00</published><updated>2011-01-11T17:47:17.965+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android Bitmap 存檔</title><content type='html'>&lt;code&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.io.BufferedOutputStream;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;File myDrawFile = new File(mSaveFilePath);&lt;br /&gt;try {&lt;br /&gt;     BufferedOutputStream bos = new BufferedOutputStream&lt;br /&gt;                                    (new FileOutputStream(myDrawFile));&lt;br /&gt;     mBitmap.compress(Bitmap.CompressFormat.PNG, 90, bos);&lt;br /&gt;     bos.flush();&lt;br /&gt;     bos.close();&lt;br /&gt;                &lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;     e.printStackTrace();&lt;br /&gt;     Log.d(null, &quot;Save file error!&quot;);&lt;br /&gt;     return false;&lt;br /&gt;    }&lt;br /&gt;Log.d(null, &quot;Save file ok!&quot;);&lt;br /&gt;return true;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/6197224246567397541/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/6197224246567397541' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6197224246567397541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6197224246567397541'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/11/android-bitmap.html' title='Android Bitmap 存檔'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-1885957890726094839</id><published>2010-11-24T22:48:00.000+08:00</published><updated>2010-11-24T22:51:40.308+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>[python]  Google app engine 登出功能</title><content type='html'>from google.appengine.api import users&lt;br /&gt;&lt;br /&gt;#利用users api取得登出網址(後面的參數是登出後要前往的頁面)&lt;br /&gt;logoutUrl = users.create_logout_url(&quot;/&quot;)</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/1885957890726094839/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/1885957890726094839' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/1885957890726094839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/1885957890726094839'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/11/python-google-app-engine.html' title='[python]  Google app engine 登出功能'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-6609041074164130790</id><published>2010-11-09T10:50:00.000+08:00</published><updated>2010-11-09T10:55:35.176+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android初體驗之編譯出xxx.out.xml的錯誤</title><content type='html'>在寫Android 的時候有時候會發生出現xxx.out.xml的錯誤&lt;br /&gt;這種錯誤的解決方法是&lt;br /&gt;&lt;br /&gt;1.在Project-&gt;Clean清除目前的編譯&lt;br /&gt;2.從專案中刪除xxx.out.xml&lt;br /&gt;3.重新編譯&lt;br /&gt;&lt;br /&gt;這問題發生的原因是：在Eclipse中編輯XML檔案，會預設用XSLT來轉換文件&lt;br /&gt;所以當我們要執行編譯時，要把焦點由XML移開到專案上&lt;br /&gt;為了必免這個問題可以參考以下做法&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;可以在Eclipse設定,選單Windows-&gt;Preference,選擇節點Run/Debug-&gt;Lauching,Lauch Operation選擇第一項。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 699px; height: 275px;&quot; src=&quot;http://images.cnblogs.com/cnblogs_com/chunhui588/WindowsLiveWriter/Androidmain.out.xml_F752/image_thumb_4.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; 這樣就不用每次都要把Focus 移開XML文件。&lt;br /&gt;&lt;br /&gt;參考如下：&lt;br /&gt;&lt;a href=&quot;http://programmersay.blogspot.com/2010/07/android-mainoutxml.html&quot;&gt;http://programmersay.blogspot.com/2010/07/android-mainoutxml.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.cnblogs.com/chunhui588/archive/2010/06/26/Android-debug-main-out-xml-parsing-error.html&quot;&gt;http://www.cnblogs.com/chunhui588/archive/2010/06/26/Android-debug-main-out-xml-parsing-error.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/6609041074164130790/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/6609041074164130790' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6609041074164130790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6609041074164130790'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/11/android-xxx.html' title='Android初體驗之編譯出xxx.out.xml的錯誤'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7017168715436842342</id><published>2010-08-23T15:20:00.000+08:00</published><updated>2010-08-23T15:24:26.097+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C/C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><category scheme="http://www.blogger.com/atom/ns#" term="程式設計"/><title type='text'>C++ 使用環境變數</title><content type='html'>在Linux中有時候需要知道一些環境變數&lt;br /&gt;例如要知道使用者的家目錄位置等。&lt;br /&gt;這時候就可以利用getenv這個function&lt;br /&gt;以下以Qt的程式碼示範&lt;br /&gt;&lt;br /&gt;#include &lt; stdlib.h &gt;&lt;br /&gt;&lt;br /&gt;QString strEnv = getenv( &quot;HOME&quot;);</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7017168715436842342/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7017168715436842342' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7017168715436842342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7017168715436842342'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/08/c.html' title='C++ 使用環境變數'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-7736970969617339891</id><published>2010-07-28T16:35:00.000+08:00</published><updated>2010-07-28T16:37:34.660+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="書籤"/><title type='text'>GPS</title><content type='html'>NMEA data&lt;br /&gt;&lt;a href=&quot;http://www.gpsinformation.org/dale/nmea.htm&quot;&gt;http://www.gpsinformation.org/dale/nmea.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;HOWTO: Track your position using a GPS dongle and Google Earth&lt;br /&gt;&lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=1083710&quot;&gt;http://ubuntuforums.org/showthread.php?t=1083710&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using A Bluetooth GPS From Python&lt;br /&gt;&lt;a href=&quot;http://www.robertprice.co.uk/robblog/archive/2007/1/Using_A_Bluetooth_GPS_From_Python.shtml&quot;&gt;http://www.robertprice.co.uk/robblog/archive/2007/1/Using_A_Bluetooth_GPS_From_Python.shtml&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/7736970969617339891/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/7736970969617339891' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7736970969617339891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/7736970969617339891'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/07/gps.html' title='GPS'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-5838764137149671184</id><published>2010-07-28T10:13:00.000+08:00</published><updated>2010-07-28T16:50:01.870+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="書籤"/><title type='text'>教學</title><content type='html'>將win7安裝光碟放到USB隨身碟中&lt;br /&gt;&lt;a href=&quot;http://rondoyoyo.pixnet.net/blog/post/29644836&quot;&gt;http://rondoyoyo.pixnet.net/blog/post/29644836&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;將AVI+字幕轉VCD或DVD使用教學&lt;br /&gt;&lt;a href=&quot;http://oz6877.myweb.hinet.net/2.htm&quot;&gt;http://oz6877.myweb.hinet.net/2.htm&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/5838764137149671184/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/5838764137149671184' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/5838764137149671184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/5838764137149671184'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/07/blog-post.html' title='教學'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-2407732235724864158</id><published>2010-07-13T12:24:00.000+08:00</published><updated>2010-07-13T12:26:33.822+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C/C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><title type='text'>Qt 讀取MP3的ID3 tag</title><content type='html'> MP3資訊目前都是以ID3的tag標示&lt;br /&gt;&lt;br /&gt;目前常見的標示有ID3v1, ID3v2.3, ID3v2.4&lt;br /&gt;&lt;br /&gt;讀取方式大同小異但在v1和v2.3的編碼方式為Big5所以讀取時要比較注意一點&lt;br /&gt;&lt;br /&gt;關於各欄位資訊可參照Wikipedia&lt;br /&gt;&lt;br /&gt;http://en.wikipedia.org/wiki/ID3&lt;br /&gt;&lt;br /&gt;下面提供簡單的讀取範例&lt;br /&gt;&lt;br /&gt;    QFile *file=new QFile(MP3檔案路徑);&lt;br /&gt;    if (!file-&gt;open(QIODevice::ReadOnly))&lt;br /&gt;    {&lt;br /&gt;        qDebug()&lt;&lt;&quot;return&quot;;&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;    QTextCodec *codec = QTextCodec::codecForName(&quot;Big5&quot;);&lt;br /&gt;    QString head = file-&gt;read(3);&lt;br /&gt;    QString sver = file-&gt;read(1);&lt;br /&gt;    int ver = sver.at(0).toAscii();&lt;br /&gt;&lt;br /&gt;    //移到倒數第128個位置&lt;br /&gt;    file-&gt;seek(file-&gt;size()-128);&lt;br /&gt;&lt;br /&gt;    QString tag = file-&gt;read(3);&lt;br /&gt;    qDebug()&lt;&lt;&quot;tag&quot;&lt;&lt;tag;&lt;br /&gt;&lt;br /&gt;    QString title = codec-&gt;toUnicode(file-&gt;read(30));&lt;br /&gt;    QString artist = codec-&gt;toUnicode(file-&gt;read(30));&lt;br /&gt;    QString album = codec-&gt;toUnicode(file-&gt;read(30));&lt;br /&gt;    QString year = codec-&gt;toUnicode(file-&gt;read(4));&lt;br /&gt;    QString comment = codec-&gt;toUnicode(file-&gt;read(30));&lt;br /&gt;&lt;br /&gt;    qDebug()&lt;&lt;&quot;head&quot;&lt;&lt;head;&lt;br /&gt;    qDebug()&lt;&lt;&quot;ver&quot;&lt;&lt;ver;&lt;br /&gt;    qDebug()&lt;&lt;&quot;title&quot;&lt;&lt;title;&lt;br /&gt;    qDebug()&lt;&lt;&quot;artist&quot;&lt;&lt;artist;&lt;br /&gt;    qDebug()&lt;&lt;&quot;album&quot;&lt;&lt;album;&lt;br /&gt;    qDebug()&lt;&lt;&quot;year&quot;&lt;&lt;year;&lt;br /&gt;    qDebug()&lt;&lt;&quot;comment&quot;&lt;&lt;comment;&lt;br /&gt;    file-&gt;close();</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/2407732235724864158/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/2407732235724864158' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/2407732235724864158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/2407732235724864158'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/07/qt-mp3id3-tag.html' title='Qt 讀取MP3的ID3 tag'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-776349685067924832</id><published>2010-07-01T23:15:00.000+08:00</published><updated>2010-11-28T23:25:32.153+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AJAX"/><category scheme="http://www.blogger.com/atom/ns#" term="書籤"/><title type='text'>AJAX 教學</title><content type='html'>AJAX 上手篇&lt;br /&gt;&lt;a href=&quot;http://wiki.moztw.org/index.php/AJAX_%E4%B8%8A%E6%89%8B%E7%AF%87&quot;&gt;http://wiki.moztw.org/index.php/AJAX_%E4%B8%8A%E6%89%8B%E7%AF%87&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;掌握 Ajax，第 1 部分: Ajax 簡介&lt;br /&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/tw/library/wa-ajaxintro1.html&quot;&gt;http://www.ibm.com/developerworks/tw/library/wa-ajaxintro1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;AJAX深度歷險1(Getting Started) &lt;br /&gt;&lt;a href=&quot;http://blog.xuite.net/jameschih/java/5598706?st=c&amp;re=list&amp;p=1&amp;w=262779&quot;&gt;http://blog.xuite.net/jameschih/java/5598706?st=c&amp;re=list&amp;p=1&amp;w=262779&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ajax內部交流文檔&lt;br /&gt;&lt;a href=&quot;http://www.dragonson.com/doc/ajax.html&quot;&gt;http://www.dragonson.com/doc/ajax.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ajax 技術資源中心&lt;br /&gt;&lt;a href=&quot;http://www-128.ibm.com/developerworks/cn/xml/ajax/&quot;&gt;http://www-128.ibm.com/developerworks/cn/xml/ajax/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;AJAX - Asynchronous Javascript And Xml&lt;br /&gt;&lt;a href=&quot;http://www.xul.fr/en-xml-ajax.html&quot;&gt;http://www.xul.fr/en-xml-ajax.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Java Script DIV Popup&lt;br /&gt;&lt;a href=&quot;http://simpleandeasycodes.blogspot.com/2009/01/pop-up-div-with-background-disabled.html&quot;&gt;http://simpleandeasycodes.blogspot.com/2009/01/pop-up-div-with-background-disabled.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.javascripttoolbox.com/lib/popup/example.php&quot;&gt;http://www.javascripttoolbox.com/lib/popup/example.php&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/776349685067924832/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/776349685067924832' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/776349685067924832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/776349685067924832'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/07/ajax.html' title='AJAX 教學'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-6025496111106653639</id><published>2010-06-23T16:23:00.001+08:00</published><updated>2010-06-23T16:24:39.843+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><title type='text'>Qt 中文顯示亂碼解決方式</title><content type='html'>在main文件中添加代码：&lt;br /&gt;#include &lt; QTextCodec &gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;    ....................&lt;br /&gt;    QTextCodec::setCodecForTr(QTextCodec::codecForName(&quot;UTF8&quot;));&lt;br /&gt;    QTextCodec::setCodecForLocale(QTextCodec::codecForName(&quot;UTF8&quot;));&lt;br /&gt;    QTextCodec::setCodecForCStrings(QTextCodec::codecForName(&quot;UTF8&quot;));&lt;br /&gt;    ..........................&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;這樣就可以在其他地方使用中文字了</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/6025496111106653639/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/6025496111106653639' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6025496111106653639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/6025496111106653639'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/06/qt.html' title='Qt 中文顯示亂碼解決方式'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-266208437047479024.post-3845826690801418847</id><published>2010-06-10T17:08:00.000+08:00</published><updated>2010-06-10T17:09:01.948+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><title type='text'>QNetworkAccessManager 處理Http Command</title><content type='html'>在Qt 要做Http Command也可以用QNetworkAccessManager這元件&lt;br /&gt;&lt;br /&gt;這元件還可以讓使用者保持登入狀態&lt;br /&gt;&lt;br /&gt;使用方式&lt;br /&gt;&lt;br /&gt;#include &lt; QNetworkAccessManager &gt;&lt;br /&gt;#include &lt; QNetworkReply &gt;&lt;br /&gt;&lt;br /&gt;//宣告&lt;br /&gt;&lt;br /&gt;QNetworkAccessManager *manager = new QNetworkAccessManager(this);&lt;br /&gt;&lt;br /&gt;//收到Server回傳資料處理&lt;br /&gt;&lt;br /&gt;connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(decode(QNetworkReply*)));&lt;br /&gt;&lt;br /&gt;//要求登入事件處理&lt;br /&gt;&lt;br /&gt;connect(manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), this,SLOT(authenticationResult(QNetworkReply*,QAuthenticator*)) );&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;//發出Http Command&lt;br /&gt;&lt;br /&gt;QUrl url = new QUrl(Http_Command);&lt;br /&gt;&lt;br /&gt;manager-&gt;get(QNetworkRequest(url));</content><link rel='replies' type='application/atom+xml' href='http://kie0723.blogspot.com/feeds/3845826690801418847/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/266208437047479024/3845826690801418847' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/3845826690801418847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/266208437047479024/posts/default/3845826690801418847'/><link rel='alternate' type='text/html' href='http://kie0723.blogspot.com/2010/06/qnetworkaccessmanager-http-command.html' title='QNetworkAccessManager 處理Http Command'/><author><name>Kie</name><uri>http://www.blogger.com/profile/16610244355129679545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>