2011年12月7日 星期三

C#之foreach 迴圈

foreach( type element-name in group-name){
..........
}

type 元素的資料型態

element-name 元素的變數名稱,可自訂

group-name 包含元素的群組名稱,可以是陣列名稱

foreach迴圈會自動跑過每個陣列元素,即使是多維陣列,也只需要一層迴圈即可。

C#的陣列

陣列索引從0開始

一維陣列

僅宣告陣列,元素值須另外設定:


資料型態[] 陣列名稱 = new 資料型態[元素個數] ;


int[] a = new int[10] ;  //10個元素


a[0] = 1 ;  //設定第一個陣列元素之值


宣告陣列並設定元素值:


資料型態[] 陣列名稱 = new 資料型態[] { 陣列元素值1 , 陣列元素值2 , ......} ;


int[] a = new int[]{1,2,3,4,5} ;  //5個元素及元素值


二維(以上)陣列,以二維陣列為例

僅宣告陣列,元素值須另外設定:


資料型態[,] 陣列名稱 = new 資料型態[ 第一維元素個數 , 第二維元素個數 ] ;


int[,] a = new int[3 , 4] ;


宣告陣列並設定元素值:


資料型態[,] 陣列名稱 = new 資料型態[,] { { 陣列元素值1 } , { 陣列元素值2 } , ......} ;


int[,] a = new int[,]{ {0,1,2,3} , {1,2,3,4} ,{4,5,6,7} } ;  //3*4陣列


陣列長度可變的宣告方式(第一維元素也是陣列但長度可不同):


資料型態[][] 陣列名稱 = new 資料型態[ 第一維元素個數 ][] ;


int[][] a = new int[3][] ;  //第一維有3個元素(均為陣列)


a[0]=new int[2] ;  //2個元素


a[1]=new int[4] ;  //4個元素


a[2]=new int[3] ;  //3個元素


陣列的 Length 屬性可取得陣列的長度

2011年12月3日 星期六

對話方塊元件(以OpenFileDialog為例)

Visual C# 內建的對話方塊控制項

OpenFileDialog:開啟檔案對話方塊


SaveFileDialog:儲存檔案對話方塊


FolderBrowserDialog:資料夾選取對話方塊


FontDialog:字型選取對話方塊


ColorDialog:顏色選取對話方塊


開啟檔案對話方塊(OpenFileDialog)常用屬性:

Filter:限定格式,語法如下


選項名稱1|過濾規則1|選項名稱2|過濾規則2|選項名稱3|過濾規則3|......


一個選項名稱及一個過濾規則為一組,第一組索引為1


範例:


ini檔|*.ini|所有檔案|*.*


FilterIndex:對話方塊中檔案篩選條件預設選取條件的索引


MultiSelect:是否可以多重選取


FileName:預設檔案名稱或使用者選取的檔案名稱


InitialDirectory:預設開啟目錄



對話方塊呼叫方法:ShowDialog 方法

ShowDialog 方法會回傳使用者最後按下的按鈕類型。

範例:


呼叫出對話方塊並檢查使用者是否按下『確定』鈕


if( openFileDialog.ShowDialog() == DialogResult.OK ){......}

圖片控制項(PictureBox)

圖片來源設定:

Image 屬性:較常使用『專案資源檔』


ImageLocation:可用來載入網路上的圖片或本機圖片位置


若兩項屬性都設定,則使用ImageLocation


SizeMode屬性:調整圖片大小的方式

Normal:左上角對齊,圖片大小不變,圖片若過大則無法完整顯示


StretchImage:圖片延展填滿圖片方塊,圖片若過大可顯示完整圖片,會變形


AutoSize:圖片方塊大小自動隨影像大小改變,當圖片過大時圖片方塊也會過大,超出視窗範圍的部分就無法顯示


CenterImage:圖片正中央對齊圖片方塊中央,影像大小不變,圖片若過大則無法完整顯示


Zoom:圖片大小隨圖片方塊調整,可顯示完整圖片,不會變形


程式中用程式碼設定 SizeMode 範例:

pictureBox.SizeMode = PictureBoxSizeMode.Normal ;

C#自動轉換換行字元

不同作業系統或環境對於換行字元的定義可能不同,在C#中可以使用Environment.NewLine自動轉換為對應的換行字元

下拉式清單方塊(ComboBox)

Items 屬性:清單的選項

Sorted 屬性:清單選項按字母順序排列(true)或按輸入順序排列(false)

DropDownStyle 屬性:

Simple 包含文字方塊、已展開的下拉清單


DropDown 包含文字方塊、下拉按鈕、清單選項


DropDownList 包含下拉按鈕、清單選項,不包含文字方塊



Text屬性:文字方塊所顯示的文字,被選到的清單項目會顯示於文字方塊

文字方塊能讓使用者自訂項目

常用方法與清單方塊(ListBox)一樣

2011年12月2日 星期五

清單方塊(ListBox)

清單項目:items 屬性中編輯

Sorted 屬性:清單項目排列方式,True為依字母順序排列,False為依輸入順序排列



SelectionMode屬性:清單項目選取方式。None 不能選取,One 單一選取,MultiSimple 簡單多選,MultiExtended 進階多選 ( 配合鍵盤 Shift、Ctrl 鍵 )

清單中每個選項都有索引(由0開始)

ListBox.Items.Count 清單的總項目數

單選模式(SelectionMode=One)時:

被選取項目為 ListBox.SelectedItem, 索引為 ListBox.SelectedIndex,未選取任何項目則ListBox.SelectedIndex=-1

複選模式(SelectionMode=MultiSimple or MultiExtended)時:

被選取項目個數 ListBox.SelectedItems.Count,第n個被選取項目為 ListBox.SelectedItems[n-1],其索引為 ListBox.SelectedIndices[n-1],第n個被選取指該項目在表單的排列順序,不是使用者點選的順序

變更清單項目的方法:

ListBox.Items.Add("新項目") 新增一個項目到清單最後一項

ListBox.Items.Insert( n , "新項目") 於索引n的位置插入新項目

ListBox.Items.Remove("移除項目") 從清單中移除指定項目,若有多個同名項目則只移除第一個

ListBox.Items.RemoveAt(n) 從清單中移除指定的索引位置的項目

ListBox.Items.Clear() 清除所有項目

2011年11月27日 星期日

AMA:Chains練習,以伸展操為例

將多頁動畫集中於一頁,類似選單 icon 超連結方式呈現(但不是超連結),運用到開關設定中的Chains(接龍)。

2011.11.26 Chains練習,以伸展操為例

2011年11月25日 星期五

Timer 計時器元件

重要屬性:

Enabled:True啟動計時器,False不啟動

Interval:多久執行一次,以毫秒為單位(1000毫秒=1秒),預設為 100 ms

預設事件:

Tick

MessageBox 訊息方塊元件的使用

訊息方塊MessageBox,用Show方法呼叫。

用法1:MessageBox.Show("參數1");



用法2:MessageBox.Show("參數1", "參數2");



用法3:MessageBox.Show("參數1", "參數2", MessageBoxButtons.按鈕種類);

2011年11月22日 星期二

C#資料型別轉換

1、Parse方法

語法:目標資料型別.Parse( 字串 );

轉換字串為指定型別

回傳值為轉換結果

若轉換失敗需做例外處理

null值會發生例外,Convert不會(傳回0)

2、TryParse方法

語法:目標資料型別.TryParse( 字串 , out 變數名稱 );

轉換字串為指定型別,轉換結果儲存於指定變數(out之後的變數名稱)

回傳值為布林值,代表轉換是否成功

若轉換失敗不需做例外處理

若可能轉換失敗,TryParse效率比Parse為佳

3、Convert類別

語法:system.Convert.Totype( 變數或資料 );

可轉換成各種類型,接受的輸入資料類型不限字串

常用Totype種類:ToDouble、ToInt32、ToUInt32、ToString、ToChar、ToBoolean、....

若轉換失敗需做例外處理

null會轉換為0,但Parse方法會發生例外

當回傳值為0時,則輸入資料為null或0,可能造成混淆,須小心

使用ToInt32將浮點數轉換為整數時,採用四捨五入法

PS.練習時例如3.5、4.5轉換結果都為4,推測只有一位小數且第一位小數為5時,轉換為整數時為偶數

4、ToString方法

語法:變數.ToString();

將變數轉換為字串

回傳值為轉換後的字串

2011年11月12日 星期六

CentOS 6 安裝VMware-tools(OSPs)

今天玩了一下CactiEZ中文版10.1(簡體中文),因為是基於CentOS 6,對於RedHat系列很不熟,就順便找一下VMware-tools的安裝方式。

以下是以OSPs方式安裝VMware-tools for ESXi 5.0

1、匯入金鑰

rpm --import http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-DSA-KEY.pub
rpm --import http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub


2、新增套件庫來源檔

檔案:/etc/yum.repos.d/vmware-tools.repo

內容:

[vmware-tools]
name=VMware Tools
baseurl=http://packages.vmware.com/tools/esx/5.0/rhel6/$basearch
enabled=1
gpgcheck=1


3、使用yum安裝

yum install vmware-tools-esx-nox

如果有安裝X,可以改用下面的指令

yum install vmware-tools-esx

2011年11月8日 星期二

多重開機USB隨身碟製作

工具:[download id="12"]、[download id="13"]

參考資料:http://liaozi.blogspot.com/2008/07/linux-live-usb.html

OS:Win 7

1、先用 HP USB Disk 格式化工具將隨身碟格式化成FAT32

2、下載 syslinux 後解壓縮,將 以下檔案複製到隨身碟根目錄

  • win32/syslinux.exe

  • com32/mboot/mboot.c32

  • com32/menu/menu.c32

  • com32/menu/vesamenu.c32

  • memdisk/memdisk


3、下載[download id="16"],解壓縮到隨身碟根目錄,會產生 make-usb-boot.bat

步驟2、3所需的檔案可以下載[download id="17"]後解壓縮到隨身碟根目錄

4、執行隨身碟根目錄下的 make-usb-boot.bat,完成後隨身碟根目錄下會產生一個隱藏檔 ldlinux.sys

5、在隨身碟根目錄下產生 syslinux.cfg

6、完成。

接下來就是把 Live CD、Live USB 的檔案放進隨身碟,並編輯 syslinux.cfg 即可。

2011年11月4日 星期五

AMA:MWSnap 抓圖

AMA:MWSnap 抓圖

AMA:框的作用-動畫的平移縮放

AMA:框的作用-動畫的平移縮放

AMA:原形(波動效果練習)

AMA:原形(波動效果練習)

AMA:頁間動畫轉為激發式動態呈現-多元開關練習(框的作用)

AMA:頁間動畫轉為激發式動態呈現-多元開關練習(框的作用)

AMA:格線練習

AMA:格線練習

AMA:對齊練習1-頁間保留相對位置之對齊

AMA:對齊練習1-頁間保留相對位置之對齊

AMA:自訂磁力練習

AMA:自訂磁力練習1

AMA:自訂磁力練習2

AMA:拆字

AMA:拆字

2011年10月8日 星期六

實現不需密碼SSH登入ESXi 5

ESXi 5已經官方正式支援使用SSH key了,比起ESXi 4.x方便多了,以下是執行步驟。

1、如果已經有authorized_keys,那直接匯入或取代/etc/ssh/keys-root/authorized_keys就可以了。

2、如果要從頭做起,接著往下看囉。

  • 使用ssh-keygen產生SSH key,在此使用ob2d,sudo -i 為root

  • 產生的私鑰(Private Key)存在/root/.ssh/id_dsa,公鑰(Public Key)存在/root/.ssh/id_dsa.pub

  • 使用scp將公鑰檔id_dsa.pub上傳到ESXi Server並覆蓋/etc/ssh/keys-root/authorized_keys
    scp /root/.ssh/id_dsa.pub root@ESXiServerIP:/etc/ssh/keys-root/authorized_keys

  • 收工。


連線方式請參考這一篇

參考資料:
http://www.virtuallyghetto.com/2011/07/ssh-keys-lockdown-mode-caveat-in-esxi-5.html

Insufficient video RAM解決方法

升級到ESXi 5之後,出現警告:Insufficient video RAM



看了很礙眼,所以找了解法,只要修改一下虛擬機的設定就搞定了,如下圖。

升級ESXi 中虛擬機的VM Version

ESXi 5中VM Version為8,而ESXi 4.x為7,既然主機升級了,那虛擬機的版本也順便升級一下。

1、升級前VM Version為7



2、先將要升級的虛擬機關機,然後按下滑鼠右鍵,選擇Upgrade Virtual Hardware



3、升級是不能回復的,升級後的虛擬機不能給舊版本(例如:ESXi 4.x)使用。如果確定要升級就按下[是]。



4、稍等一下就完成囉,升級後VM Version為8

2011年10月7日 星期五

2011年8月14日 星期日

錦衣衛安裝筆記

OS:Windows Server 2003

1、先安裝好IIS,啟用ASP.NET支援

2、從光碟依序安裝JRE、.NET Framework 2、資料庫、錦衣衛Server端



3、IIS管理員中允許使用ASP



4、web管理介面

http://IP/asset/default.asp

相關網頁:

2011年7月8日 星期五

ob2d(Etch)升級到Lenny

因為WordPress 3.2需要PHP 5.2.4才能用,而原來的ob2d(基於Etch)的PHP版本已經升不上去了,所以要把ob2d升級到Lenny,目前為止看起來還算正常。

1、變更sources.list,記得先備份

利用Debian Sources List Generator產生sources.list內容


我選擇了以下項目:


Debian Branches ==>Main - Free Packages、Contrib - Free software that has non-free dependencies、Non-free - Non Free software


Debian Updates ==>Security - Security Updates、Updates - Proposed Updates


3rd Parties Repos ==>Debian Multimedia(因為這台Server還有裝osTube)


2、如果在 Debian Updates有選擇Updates - Proposed Updates,則執行apt-get update時可能出現類似以下錯誤

W: GPG error: http://mirrors.163.com lenny-proposed-updates Release:
The following signatures couldn't be verified because the public key
is not available: NO_PUBKEY AED4B06F473041FA


安裝debian-archive-keyring即可解決


apt-get install debian-archive-keyring


3、如果有包含Debian Multimedia,則按照產生的指示執行以下指令

apt-get update && apt-get install debian-multimedia-keyring && apt-get update


4、執行apt-get dist-upgrade,過程中會有一連串詢問,通通按Enter採預設值即可

2011年6月30日 星期四

Virtualbox出現NS_ERROR_FAILURE之解法

Virtualbox突然無法開啟虛擬機,出現類似下列錯誤:



Google了一下,同樣症狀出現的還不少,解法如下:

1、開啟虛擬機的 .vbox

2、用 GuestAdd/VersionEx 搜尋,找到這一行。

3、value值怪怪的,禍首應該就是它了,改為 value="" 後存檔。

4、虛擬機應該可以正常開啟了。

2011年6月16日 星期四

VMware-tools的另一種安裝方式:OSPs

簡單的說,就是可以利用Guest OS的套件管理程式來安裝及管理VMware-tools,和之前的方法比較起來,我比較喜歡這種方式。

以下以TWubuntu miniserver(Version 1,基於Ubuntu 10.10),ssh登入操作為例,ESXi為4.1U1。

關於TWubuntu

下載TWubuntu

參考資料:[download id="15"],第23、24、27、28頁

2011年6月9日 星期四

2011年6月4日 星期六

機房虛擬化主機及NAS之不斷電系統配置

終於搞定了,把相關配置記錄下來,也許不符合標準,但至少在像我們學校這種迷你規模的機房還算堪用。

目標:

因應虛擬化架構,伺服器透過iSCSI將虛擬機儲存於NAS上,所以關機及開機順序必須正確才能讓設備自動且正確執行動作,減少人為操作的介入及資料損毀的風險。關機時伺服器需先執行關機,確保虛擬機的資料已儲存到NAS,接下來NAS才執行關機;開機時需由NAS先完成開機,然後伺服器才開始開機,確保伺服器可透過iSCSI連入NAS,再依序開啟虛擬機。

設備:

1、ESXi Server 2台

2、APC Smart-UPS RT 3000 RM XL 3U機架式UPS(含網路控制卡)1台,提供ESXi Server使用

3、NAS 2台(Synology DS1010+、DS1511+)

4、APC SUA750 UPS 1台,提供NAS使用

2011年6月2日 星期四

解決IE下載Office2007、2010的檔案變成zip檔

當Web Server是apache時,用IE下載docx、pptx、xlsx檔可能會變成zip檔。

解決方法:

1、存檔時手動變更副檔名

2、修改mime.types(ob2d在/etc/mime.types),加入

application/vnd.openxmlformats    docx pptx xlsx


3、修改httpd.conf或apache2.conf(ob2d在/etc/apaches/apache2.conf),加入

AddType  application/vnd.openxmlformats  .docx .pptx .xlsx


4、使用 .htaccess,加入

AddType  application/vnd.openxmlformats  .docx .pptx .xlsx


參考來源:http://blog.linym.net/archives/221

2011年5月2日 星期一

解決vSphere Host Update Utility 4.0無法下載更新檔的症狀

這幾天要更新ESXi Server,結果一直卡在無法下載更新檔.....





今天終於找到解決辦法了,只要掛proxy就好了。

用文字編輯器開啟settings.config,路徑如下:

x86 OS:
C:\Program Files\VMware\Infrastructure\VIUpdate 4.0

x64 OS:
C:\Program Files (x86)\VMware\Infrastructure\VIUpdate 4.0

第6行填入要使用的proxy和port
<add key="ProxyServer" value="proxy.edu.tw:3128" />

存檔後重新執行vSphere Host Update Utility 4.0應該就可以了。

PS.以前沒有掛proxy一樣可以正常更新呀,難道市網最近不正常??

2011年4月19日 星期二

Android 3.0(Honeycomb)下好用的檔案管理軟體

使用過AstroES文件瀏覽器文件大師,最後決定使用文件大師。

以下是這幾天使用下來的經驗。

優點:

1、中文介面,雖然使用的辭彙似乎是大陸用語,不過看習慣就好。

2、支援收藏夾,可快速切換到常用的資料夾。

3、支援網路芳鄰(SMB)。

4、可透過wi-fi利用HTTP(預設8080 port)、FTP(預設2211 port)分享裝置上的檔案,也可從PC上傳檔案。

缺點:

1、不支援SFTP,需安裝其他app(例如:AndFTP)。

2、使用網芳的搜索功能時程式會出現錯誤而自動關閉,只能手動新增連線。

3、使用分享功能時,顯示的IP是IPv6,需要另外查詢IPv4的IP。

2011年4月7日 星期四

ESXi Server 變更 SSH Port

修改檔案:
/etc/services

找到以下2行:

ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol

把預設埠(22)改掉後存檔。

將主機重新啟動或將inetd重啟即可。

將inetd重新啟動步驟:
1、查詢inetd的process id
ps | grep inetd

2、重新啟動inetd
kill -HUP 上一步查到的id

2011年3月31日 星期四

ESXi 更新虛擬機的VMware tools

1、在右邊Summary標籤下,VMware tools顯示為Out of date即表示需要更新。



2、在要更新的虛擬機按右鍵,選擇Guest->Install/Upgrade VMware Tools



3、選擇Automatic Tools Upgrade



4、等等等.....



5、再檢查VMware tools,顯示為OK即表示更新完成。



 

 

2011年3月19日 星期六

解決extras.ubuntu.com缺少金鑰的問題

在Ubuntu中啟用extras.ubuntu.com的套件來源時,apt-get update之後會出現以下錯誤訊息。

GPG error: http://extras.ubuntu.com maverick Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 16126D3A3E5C1192

解決方法:

安裝ubuntu-extras-keyring套件即可。

2011年2月13日 星期日

Ubuntu下安裝Wacom繪圖板GUI設定工具

參考網址:

http://gtk-apps.org/content/show.php/Wacom+Control+Panel?content=104309

1、新增PPA來源

sudo add-apt-repository ppa:hughescih/ppa


2、安裝wacom-utility套件

sudo apt-get update && sudo apt-get install wacom-utility


3、安裝完成後可從[系統]-[偏好設定]-[Wacom Control Panel]開啟

GIMP設定壓力感應支援

從[編輯]-[偏好設定]開啟偏好設定視窗,依下圖設定。