發表文章

運算子的優先順序

一般我們在撰寫程式時常常會用到運算子,比如"="、"AND"、"ANDALSO"等等;有時候不小心常常會在這部分發生一些錯誤,所以不知道是不行的,比如今天撰寫程式時就發生一個錯誤,像下面這樣 If MyByteArray(8) And &HF = 0 Then ... Else ... End If 這段是把我接收到的byte陣列中的一個抓出來,然後取低位元組來用(也就是bit0~bit3),判斷是不是0,是的話要做特殊的處理,結果執行時發現永遠不會成立,為什麼呢?查了MSDN之後原來"="運算子的優先權高於AND運算子,所以會先處理 &HF = 0 的部分結果當然是傳回0,之後是 MyByteArray(8) And 0 結果也會是0,再來就輪到IF了,IF 0會判定為False,所以我程式的動作就會異常了..T.T 解決的方式是 If (MyByteArray(8) And &HF) = 0 Then ... Else ... End If 所以還是要養成好習慣,該有括號的地方不要偷懶啊.. 相關參考 Visual Basic 中的運算子優先順序

Visual Studio 2008

Visual Studio 2008 英文版本已經發行了 資料來源: http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=2432939&SiteID=14 Express Edition http://www.microsoft.com/express/ . Net Framework 3.5 http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=en 相關參考資源可以到資料來源那邊看看

SNTP Sample for Windows CE

在Windows CE的平台上如果要做SNTP自動校時的功能我們應該要如何實做呢?下面這邊有些相關資料可以參考 SNTP Client in C# RFC 2030 下面的是參考上面所提的C#範例修改過來的(開發平台是VS2003在CE4.2上面),省略了很多部分,有興趣的可以參考看看 ''共用模組(設定系統時間的API) _ Public Structure SYSTEMTIME Public year As Short Public month As Short Public dayOfWeek As Short Public day As Short Public hour As Short Public minute As Short Public second As Short Public milliseconds As Short End Structure 'SYSTEMTIME _ Public Function SetLocalTime(ByRef time As SYSTEMTIME) As Boolean End Function _ Public Function SetSystemTime(ByRef time As SYSTEMTIME) As Boolean End Function ''主程式Form1,上面有TextBox1(用來顯示訊息),Button(名稱為btnSyncTime), ''TextBox(名稱為txtServerName,用來放校時主機的IP位址) ''傳送給校時主機用 Dim btySend(47) As Byte ''接收資料用 Dim btyRecv(47) As Byte Private Sub btnSyncTime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSyncTime.Click...

How Do I..

最近MSDN上面推出了 MSDN 教學短片 ,是個不錯的學習資源,在美國的MSDN上今天也看到了 How Do I? 的教學短片,各位鄉親有空也可以前往觀賞一下;比如說下面這個看過覺得還不錯 Creating Animated Buttons in Blend 是教你如何用Blend做一個button,並且在mouseover、mouseleave的時候去做相關動作,雖然是說英文,不過看著他操作相信也會有不錯的學習成果的。

如何列舉Access資料庫中的結構資訊

參考資料 OleDbConnection.GetOleDbSchemaTable 方法 Dim CN As OleDb.OleDbConnection Dim DA As OleDb.OleDbDataAdapter Dim DT As DataTable Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CN = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\XXXXX.mdb;Persist Security Info=True") CN.Open() DT = CN.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _ New Object() {Nothing, Nothing, Nothing, "TABLE"}) DisplayData(DT) End Sub Private Sub DisplayData(ByVal table As DataTable) For Each row As DataRow In table.Rows For Each col As DataColumn In table.Columns Debug.Print("{0} = {1}", col.ColumnName, row(col)) Next Debug.Print("============================") Next End Sub

如何取得資料庫中自動編號欄位下一筆的值

這個方式是在MSDN論壇上面看到的(原文作者是chhuang 大大),有需要的朋友可以參考看看 資料來源: 請問一下mssql 的IDENTITY 要怎樣知道next value 使用方式 SELECT IDENT_CURRENT ('[Schema].[Table]') + IDENT_INCR ('[Schema].[Table]')

在裝置(mobile)的環境下如何取得執行檔位置呢

一般我們在做開發的時候要用到目前執行檔的位置通常會這樣用 Application.StartupPath 但是到了裝置上面沒有這個東西可以用,怎麼辦呢?我們可以利用下面的方式來取得 Public Function GetAppPath() As String Return System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString) End Function 如果你是用C#的話請用下面這個 MessageBox.Show(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase));