顯示具有 Visual Studio 標籤的文章。 顯示所有文章
顯示具有 Visual Studio 標籤的文章。 顯示所有文章

2012年5月17日 星期四

懶人Unzipo

事實證明,越懶的人....越勤快....

因為在網路上"索取"了一些測試檔案
又懶得一個一個點開來解壓縮
就寫了一支程式來幫忙了...

流程大概如下:

  1. 搜尋所有類型檔案
  2. 檔案分組 >分成 7z單檔、7z多檔、rar 單檔、rar多檔、zip單檔
  3. 個別對分組群的 7z多檔、 rar多檔檢查檔案是否完結
    1. 抓取分佈檔1來判定頭檔是否存在
    2. 根據檔案大小判定尾檔是否存在
    3. 擷取尾檔檔名來判定檔案數量是否正確
  4. 讀取密碼表
  5. 對所有有效的分組群進行解壓縮
  6. 根據解壓後的資訊判定檔案是否正確
  7. 對所有錯誤的分組群進行 rar 測試(7z和zip的就不鳥它了)
  8. 取得錯誤的rar檔案名稱後進行fix,並rename回原本檔案
  9. 再次對錯誤的分組群進行流程5
  10. 移除*.html *.bat *.lnk *.htm
  11. done~
這是Step5 (Step1~4是看不到的、Lack是指檔案沒下載完、Fail是指檔案損毀)

這是Step8 (Step6-7是看不到的)

這是Step9


這就是結果了~







by Keng-li.Lin

2012年3月8日 星期四

Using MCR in Windows Azure Web/Worker Role

ppt版本
找了眾多的方法,終於找到一種可以用的了
首先說明我使用的架構是User <=WCF=> Web Role <=Azure Queue=> Worker Role(Run MCR)
皆為64位元版本
在此只講Worker Role環境架設就好。

行前準備:
MCRInstaller.exe <== 自己想辦法得到
BootStrapper.exe <== Google "Windows Azure Bootstrapper"
vcredistx64.exe  <== Google一下,可以抓到
AzureStorageExplorer4.exe <== Google "AzureStorageExplorer" (可以先在本機端上安裝)

動作:
1.將取得的MCRInstaller.exe
(在Windows Server 2008 R2的作業系統上執行安裝一次,建議安裝路徑為:D:\Program Files\MATLAB\MATLAB Compiler Runtime\v714\runtime\win64\ ,此範例使用64位元 R2010b版本,不同版本路徑會有差異,注意一下就好)
(沒電腦的話,開一台Worker role用遠端桌面登入安裝好後,再抓回來是個笨方法,但有時還蠻好用的...)

2.到剛安裝的路徑D:\Program Files\,把MATLAB整個資料夾用"zip"壓縮起來,在此命為MATLAB.zip

3.開啟AzureStorageExplorer,在你的Blob中建立新的Container名為initfile

4.將MATLAB.zip上傳到雲端Blob的initfile下

5.將vcredistx64.exe上傳到雲端Blob的initfile下

6.開啟你的雲端專案,在ServiceDefinition.csdef 的WorkerRole部分,設定Startup 和 Runtime如下:


7.在WorkerRole的環境中增加連接字串 "ConnectionString" ,並將他定為放置MATLAB.zip的Storage位置

8.在WorkerRole的專案中加入新的檔案名為InstallVcredistx64.cmd,設定"永遠複製",其檔案內容如下:
d:\vcredistx64.exe /q

9.在WorkerRole的專案中加入BootStrapper.exe (和 BootStrapper.exe.config),設定"永遠複製"。

10.將D:\Program Files\MATLAB\MATLAB Compiler Runtime\v714\toolbox\dotnetbuilder\bin\win64\v2.0\MWArray.dll加到WorkerRole的專案中,順便將自己要用的DLL一起加入,並設定"永遠複製"。
注意:自己的DLL也要用相同本版的Matlab編譯成的才行

11. 確認其他的專案也弄好後,就可以發佈了,發佈的服務位置最好和Storage相同,不然起始時會很慢。

by Keng-li.Lin

2011年11月15日 星期二

Windows 作業系統的暫存檔功能

這是在 [小朱® 的技術隨手寫] 中找到的
由於暫存檔會交由WS自行清除,也不用費心去想檔名和自己清除,應該有可以利用的空間。

以下為節錄修改後的程式範例:

FileInfo tempFile = new FileInfo(Path.GetTempFileName());
FileStream fs = tempFile.OpenWrite();
fs.Write(DataString, 0, DataString.Length);
fs.Close();
// tempFile.FullName 檔案位址


來源網址:
[bug逃走中][.NET] 莫名奇妙的 "在根層次的資料無效,行1,位置1"
http://www.dotblogs.com.tw/regionbbs/archive/2011/09/10/35944.aspx

by Keng-li.Lin

2011年11月10日 星期四

giveMeBreakfast 練習程式

最近完成了一個抓網頁的程式

開發環境:
Visual Studio 2010 .net 4

主要功能流程:
1.為抓取洪爺的網頁
2.截取分頁帖數量與連結後,置入Queue中
3.啟動Timer元件進行,對Queue中的連結進行內頁內碼擷取
4.轉換內碼,移除所有特殊html語法,並開啟Thread,使用WebClient進行圖片背景下載
5.將轉換後的內碼組合成html網頁
6.等待圖片下載完成後,自動展示網頁。

主要學習目的為:
web網頁擷取、html語法、多執行序分工

原始碼載點(google Docs空間):
giveMeBreakfast[source].7z
或
https://docs.google.com/leaf?id=0B4zlMKG7kf2mZTMyZDZlM2YtY2NiMi00MzRiLTg4YWQtZDYxMzAwOTFlMDcz

執行檔載點(google Docs空間):
giveMeBreakfast[bin].7z
或
https://docs.google.com/leaf?id=0B4zlMKG7kf2mNzM2NDVlMDMtMmNmMS00ODhiLWI4YTgtNmUxNDRhOTEyODFm

p.s. 此程式行為符合網站操作流程,非惡意攻擊程式,請放心使用。
另外,程式展示的內容含有限制級內容,請慎重考慮後使用。
by Keng-li.Lin

2011年10月31日 星期一

giveMeporm程式練習

最近完成了一個有關抓網頁的練習
有興趣的可以抓下來看

直接開網頁板
giveMeporn[bin].7z

giveMeporn[source].7z

全抓下來在看板
giveMeporn2[bin].7z

giveMeporn2[source].7z

檔案放在Google Docs
可以直接抓不用登入

 p.s.程式內容是18禁限制的
請小孩子不要下載喔

 by Keng-li.Lin

2011年10月27日 星期四

C# 解決WebBrowser 網頁中文為亂碼的方式

WebBrowser WB = new WebBrowser();

using (StreamReader SR = new StreamReader(WB.DocumentStream, System.Text.Encoding.GetEncoding("BIG5"))) // 要先確認該網頁使用的編碼
{
using (StreamWriter SW = new StreamWriter(".\\WebDocument.txt"))
{
SW.Write(SR.ReadToEnd());
SW.Flush();
SW.Close();
}
SR.Close();
}
WB.Dispose();
WB = null;



by Keng-li.Lin

2011年10月17日 星期一

C# 修改資料夾或檔案的隱藏屬性

// 隱藏檔案
String strFileName = @"C:\test.txt";
FileInfo fileInfo = new FileInfo(strFileName);
fileInfo.Attributes = FileAttributes.Hidden;


// 隱藏資料夾
String strDirName = @"C:\test";
DirectoryInfo diMyDir = new DirectoryInfo(strDirName);
diMyDir.Attributes = FileAttributes.Hidden;


Ref:  http://msdn.microsoft.com/zh-tw/library/system.io.filesysteminfo.attributes.aspx

2011年9月13日 星期二

解決重VS2008轉換到VS2010出現 Error: This file requires _WIN32_WINNT to be #defined at least to 0x0403. ....的錯誤


發生原因是代碼定義值是舊版VS訂的
所以只要更換定義值即可

在各專案中,如果標頭檔中有stdafx.h的話
只要在裡面填加

==========================================================================
#ifndef WINVER // 允許使用 Windows 95 與 Windows NT 4 (含) 以後版本的特定功能。
#define WINVER 0x0501 // 將它變更為針對 Windows XP (含) 以後版本適當的值。
#endif

#ifndef _WIN32_WINNT // 允許使用 Windows NT 4 (含) 以後版本的特定功能。
#define _WIN32_WINNT 0x0501 // 將它變更為針對 Windows XP  (含) 以後版本適當的值。
#endif

#ifndef _WIN32_WINDOWS // 允許使用 Windows 98 (含) 以後版本的特定功能。
#define _WIN32_WINDOWS 0x0501 // 將它變更為針對 Windows Me (含) 以後版本適當的值。
#endif

#ifndef _WIN32_IE // 允許使用 IE 4.0 (含) 以後版本的特定功能。
#define _WIN32_IE 0x0601 // 將它變更為針對 IE 5.0 (含) 以後版本適當的值。
#endif
==========================================================================
如果有相同的定義名稱,也可以改定義值即可


by Keng-li.Lin