2014年5月14日 星期三

[Android APP] 初探Android APP開發

首先,

前面文章有寫過如何安裝 在這篇, 在經過幾次範例練習後大概有一些心得。

先寫起來以免忘記,當然都是一些基本觀念(新手容易犯的錯誤)

1.專案開起來後設計圖形介面錯誤

正確路徑檔案是在: res資料夾->layout->activity_main.xml 而不是 Fragment_main.xml

(如果寫在Fragment_main.xml會造成java.lang.null point exception 因為它找不到)

2.變數宣告位置錯誤

新手往往會有一個錯誤就是宣告變數再protected void onCreate()的裡面,

但是當這App還沒有被創建時候,是沒有這變數,因此也會造成錯誤,切記切記。

3. 遇到 " error: No resource identifier found for attribute "類似這樣的問題,有可能是更改最底層的Layout

造成的問題(id為container的layout),可以嘗試按右鍵選擇Change Layout,有機會可以去除掉錯誤。

4.在implement監聽物件的時候,MainActivity會需要 -> add unimplement method (程式碼旁邊會有一

個小燈泡,按下去會有這選項)他會幫你新增onXXXChange()這個函式(如果要自己輸入,記得上方

要加入@override,不然還是會有錯)



(未完待續.....)

2014年5月9日 星期五

[C#] txt or csv檔案 多次重新讀取

通常我們讀檔都會使用StreamReader,但往往只能讀一次,無法從頭開始。

最基本的如下:

try
{
     using (StreamReader SR = new StreamReader(路徑)
    {
          string Line;

           while ((Line = SR.ReadLine()) != null) //一次讀一行
           {
                  string[] ReadLine_Array = Line.Split(',');//csv檔用逗號做分隔
                  //這邊可以處理文件
           }
     }
 }
 catch (IOException)
 { }
 catch (NullReferenceException)
 { }
 catch (FormatException)
 { }

在using裡面讀完一次就無法再從頭讀起,因此我們需要增加

StreamReader.ReadToEnd();//標頭拉到尾
StreamReader.BaseStream.Seek(0, SeekOrigin.Begin);//標頭重新回到最開始

增加以後就可以讓 檔案再次從頭讀起!

End

2014年4月22日 星期二

[C#] 如何打包exe檔 與 dll 檔?

相信很多人google關鍵字一定是會出現ILMerge這個工具,但今天要講得不是這個工具。

今天要介紹的是一個叫"Xenocode Postbuild 2010 for .Net" *(年份可能會更新,目前最新版本為

2010(好像也有看到2013,但不確定)



首先,進入Application ->Add(加入你要的dll + exe)


一次只能放一個exe檔,但可以多個dll檔


進入virtrualize->Enable(打勾)->Runtimes->Enabled .NET runtime engine: (選擇要的版本)

(底下有SQL,但我沒用到所以就沒選擇)



最後在Output分頁這邊,有一個Single application executable(當然你要選multiple application也是可以,

但功能不同)選曲要輸出的exe檔案後->按下Build Application->完成!

然後你的程式就可以在 "非.net環境下"(沒有安裝.net framework)執行!

低調載點: .

End

2014年4月16日 星期三

[C#/winform] 資料夾小功能-開啟路徑資料夾/指定MyDocument/程式起始路徑

由於在XP / Win7 的My Document路徑是不同的,因此如果程式內要設定建立資料夾或是儲存在

My Document資料夾下的話,就必須要撰寫特殊程式碼:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

最後的MyDocuments可以改為MyComputer之類的....請依照需要去變更。

另外如果想要開啟指定路徑的資料夾則是:

System.Diagnostics.Process.Start(路徑)

程式起始路徑的部分是當程式放在不同資料夾時會有不同的相對路徑,因此如果要取得目前路

徑就必須要靠程式碼:

Application.StartupPath

簡單,但是實用。

End

2014年4月14日 星期一

[C#winform] 小技巧:如何新增檔名到combo box內,並檢查時否有重複?

先看程式碼

string[] Dir_sub_file = Directory.GetFileSystemEntries(要新增到combo Box項目內的資料夾內檔案名稱);
foreach (string s in Dir_sub_file)
{
      file_list.Add(Path.GetFileNameWithoutExtension(s)); //檔案名稱清單 的list<string>陣列
}

foreach (string ss in file_list)
{
      if(!comboBox_SN_1.Items.Contains(ss))
           comboBox_SN_1.Items.Add(ss);
}

首先利用Directory.GetFileSystemEntires()來取得資料夾內檔案名稱,為了不要讓後面的附檔名出現

在combo Box的內容之中,因此這邊用Path.GetFileNameWithoutExtension(string 路徑)來除去附檔名,

然後利用foreach(也可以用for)來存入我們所建立的一個list<string>陣列 叫file_list。(功用只是存檔

名清單)

第二段foreach則是把file_list內所有的string都拿出來,利用comboBox.item.Contains(string)比對是否已

經有存在在comboBox內容中,如果沒有就用.add()這方法加入comboBox的items。

End