星期三, 9月 26, 2007

GIMP去背

1.將圖片增加透明圖層
就是Layer/Transparency/Add ALPHA Channel那個選項

2.選取不要的背景
利用魔術棒等工具選取不要的背景

3.去掉背景
Edit/clear ,即可去掉選取的背景

星期四, 9月 13, 2007

利用datagridview存取xml

//read XML
DataSet ds = new DataSet();
ds .ReadXml(xmlFile, XmlReadMode.InferSchema);

datagridview1.DataSource = ds ;
datagridview1.DataMember = tag;

//save xml

用C#讀取XML的元素和屬性

用C#讀取XML的元素和屬性

Method 1 (ex. Google Weather API)
private String weatherApiUri = @"http://www.google.co.uk/ig/api?weather=";
private String xmlNode = "xml_api_reply/weather/current_conditions";

XmlDocument xd = (XmlDocument)xmlFromGoogle; //set xml document
XmlNodeList xnl = xd.SelectNodes(xmlNode); //get the node

XmlNode xmlDetail;
xmlDetail = GWP_NodeList.Item(0).SelectSingleNode("condition ");
Console.write(xmlDetail.Attributes["data"].InnerText);


Method 2


using System.Xml;
namespace DOMTest
{
class DOM
{
private static void PrintElement(XmlDocument document)
{
//獲取所有的Node
XmlNodeList nodeList=document.GetElementsByTagName('*');
//打印每一個node的名稱
for (int i=0;i (less) nodeList.Count;i++)
{
XmlNode node=nodeList.Item(i);
Console.WriteLine(node.Name);
}
}

private static void PrintAttributes(XmlDocument document)
{
XmlNodeList nodeList=document.GetElementsByTagName("*");
XmlNamedNodeMap nameNodeMap;
XmlElement element;
XmlAttribute attribute;
string attributeName;
string attributeValue;

for(int i=0;i (less) nodeList.Count;i++)
{
element=(XmlElement)nodeList.Item(i);
Console.WriteLine(element.Name+":"+element.ChildNodes[0].Value);
nameNodeMap=element.Attributes;
if(nameNodeMap!=null)
{
for(int j=0;j (less) nameNodeMap.Count;j++)
{
attribute=(XmlAttribute)nameNodeMap.Item(j);
attributeName=attribute.Name;
attributeValue=attribute.Value;
Console.WriteLine("屬性是:"+attributeName+"="+attributeValue);
}
}
}
}
[STAThread]
static void Main(string[] args)
{
XmlDocument document =new XmlDocument();
document.Load("student.xml");
Console.WriteLine("元素是:");
PrintElement(document);

// Console.WriteLine("元素屬性是:");
// PrintAttributes(document);
}
}
}

星期三, 9月 12, 2007

片片段段

Google => http://www.google.co.uk/ig/api?weather=Taipei
Yahoo => http://xml.weather.yahoo.com

MSN
片片段段: "首先呢我們先看參數的傳法,它需要指定是哪一個都市代碼與使用華氏或是攝氏,以下是我們使用的範例: http://weather.msn.com/data.aspx?wealocations=wc:TWXX0021&weadegreetype=C 一般我們習慣使用的是weadegreetype=C,當然你也可以改成 weadegreetype=F wealocations 參數要傳入都市代碼,你可以到http://weather.msn.com/region.aspx?wealocations=Taiwan 查看這個API提供了哪些都市供查詢,我想大部分的人看到這些地名的拼音,應該是猜不出來是哪裡吧! 沒關係,我在網路上發現了有好心人士把它翻譯成中文的地名,我再加上代碼方便大家查用
Taipei, TWN:台灣-台北 wealocations=wc:TWXX0021
Pan-ch'iao, TWN:台灣-台北-板橋市 wealocations=wc:10028648
San-ch'ung, TWN:台灣-台北-三重市 wealocations=wc:29496
Yung-ho, TWN:台灣-台北-永和市 wealocations=wc:37364
Hsin-chuang, TWN:台灣-台北-新莊市 wealocations=wc:14392
Hsin-tien, TWN:台灣-台北-新店市 wealocations=wc:TWXX0010
Chilung, TWN:台灣-基隆 wealocations=wc:TWXX0003
T'ao-yuan, TWN:台灣-桃園 wealocations=wc:TWXX0025
Chung-li, TWN:台灣-桃園-中壢市 wealocations=wc:7371127
Hsin-chu, TWN:台灣-新竹 wealocations=wc:TWXX0009
Chu-tung, TWN:台灣-新竹-竹東鎮 wealocations=wc:TWXX0006
Chu-nan, TWN:台灣-苗栗-竹南鎮 wealocations=wc:10034496
T'aichung, TWN:台灣-台中 wealocations=wc:TWXX0019
Chang-hua, TWN:台灣-彰化 wealocations=wc:TWXX0001
Chiayi, TWN:台灣-嘉義 wealocations=wc:TWXX0002
T'ainan, TWN:台灣-台南 wealocations=wc:32433
Yung-k'ang, TWN:台灣-台南-永康市 wealocations=wc:10480429
Kaohsiung, TWN:台灣-高雄 wealocations=wc:16133
Feng-shan, TWN:台灣-高雄-鳳山市 wealocations=wc:10209491
P'ingtung, TWN:台灣-屏東 wealocations=wc:24933
O-luan-pi, TWN:台灣-屏東-鵝鑾鼻 wealocations=wc:7365022
T'ai-tung, TWN:台灣-台東 wealocations=wc:32435
Ch'eng-kung-chen, TWN:台灣-台東-成功鎮 wealocations=wc:7372779
Pei-nan, TWN:台灣-台東-卑南鄉 wealocations=wc:10209499
Hua-lien, TWN:台灣-花蓮 wealocations=wc:TWXX0011
Yu-li, TWN:台灣-花蓮-玉裡鎮 wealocations=wc:7359057
Fu-li, TWN:台灣-花蓮-富裡鄉 wealocations=wc:7370247
Kuang-fu, TWN:台灣-花蓮-光復鄉 wealocations=wc:10209389
Makung, TWN:台灣-澎湖-馬公市 wealocations=wc:10107142
Wu-shih-pi, TWN 台東縣-烏石鼻 wealocations=wc:7359486

接下來我們來看看回傳的XML架構,

-
-










temperature為目前溫度沒問題,skycode為天氣概況編碼,可以利用這個編碼顯示出氣象狀態的小圖,方法如下
"http://st.msn.com/as/wea3/i/en-US/law/" + skyCode + ".gif"

skytext為氣象概況文字,若是我想顯示英文那就沒問題,若是想顯示中文就難了,因為根本不知道有幾種,沒辦法寫中英對應表
我看到對岸有人用了一個方法,因為skycode為連續的編號,所以他把所有氣象狀態的小圖都秀出來,自己看著圖翻譯成中文
還蠻妙的..我寫了Function方便使用:

Function toChineseString(ByVal skyCode As String) As String

Select Case skyCode

Case "26", "27"

Return "陰"

Case "35", "39", "45", "46"

Return "小雨"

Case "19", "20", "21", "22"

Return "霧"

Case "29", "28", "30", "33"

Return "多雲"

Case "5", "13", "14", "15", "16", "18", "25", "41", "42"

Return "雪"

Case "1", "2", "3", "4", "37", "38", "47"

Return "雷雨"

Case "31", "32", "34", "36", "44"

Return "晴"

Case "23", "24"

Return "中到大風"

Case "9", "10", "11", "12", "40"

Return "中到大雨"

Case "6", "7", "8", "17"

Return "冰雹"

Case Else

Return "晴"

End Select

End Function

星期三, 9月 05, 2007

從 XML 載入 DataSet

從 XML 載入 DataSet: "如果要呼叫 ReadXml 來載入一個非常大的檔案,將會使效能降低。為了確保 ReadXml 在針對大檔案時仍能保持最佳效能,請針對 DataSet 的每個資料表都呼叫 BeginLoadData 方法,再呼叫 ReadXml。最後再針對 DataSet 的每個資料表呼叫 EndLoadData (如下列範例所示)。"

C#

foreach (DataTable dataTable in dataSet.Tables)
dataTable.BeginLoadData();

dataSet.ReadXml("file.xml");

foreach (DataTable dataTable in dataSet.Tables)
dataTable.EndLoadData();

Double's thought: 超簡易入手的XML & DTD 教學

Double's thought: 超簡易入手的XML & DTD 教學: "超簡易入手的XML & DTD 教學 看過寫的最簡單的XML & DTD 教學。 XML教學在此。 DTD教學在此。 其實,還有還多超簡易教學,適合剛入手的生手看。 ZVON.org"