正常的想法是,在asp.net的頁面上讓使用者輸入需要轉換的值,直接傳入後端EXE檔後,接輸出值再放回頁面上;
但是該EXE檔的輸入參數為"輸入檔檔名"及"輸出檔檔名",
所以程序就變成:
1. 使用者輸入需要轉換的值。
2. 先將該輸入值寫入一個檔案內。
3. 呼叫EXE檔,並帶有輸出、輸入檔名參數。
4. 打開EXE所產製的輸出檔,將其內容讀出,並顯示於頁面上。
流程圖就像是:
-------------------------------------------------
整個流程會遇到三個問題:
1. 如何將資料寫入一個伺服器上的txt檔內。
2. 如何透過asp.net呼叫伺服器上的exe檔,並帶參數給他。
3. 如何讀出伺服器上的txt檔,顯示於頁面。
-------------------------------------------------
首先,第一個:將資料寫入txt檔內
1. 保留原始內容,不斷將新的加在後面。
string Dir = page.Server.MapPath("~/");
StreamWriter sw = File.AppendText(Dir + "input.txt");
sw.WriteLine("第一行");
sw.WriteLine("第二行");
sw.Flush();
sw.Close();
2. 不保留原始內容,每次寫入都是重新開始。
string Dir = page.Server.MapPath("~/");
StreamWriter sw = new StreamWriter(Dir + "input.txt")
sw.WriteLine("第一行");
sw.WriteLine("第二行");
sw.Flush();
sw.Close();
兩個只差在一個是File.AppendText去指定特定檔案Append;另一個則是new一個新的。
--------------------------------------------
然後相對的第三個問題,把伺服器上的txt檔讀出來。
StreamReader MySF = new StreamReader(Dir + "output.xyz", System.Text.Encoding.Default);
value = MySF.ReadToEnd();
MySF.Close();
或是利用單行讀取。
while (!MySF.EndOfStream)
{
value += MySF.ReadLine() + "\r\n"; //讀取單行
}
第二個問題下一篇。
5 則留言:
為什麼寫出的檔案沒有問題,但是下載後會加載其他程式碼??
你說的其他程式碼是指什麼內容?
aspx code會附於檔案內容中嗎?!
你是說txt檔會不會有程式碼寫在裡面?
不會。
如果你下載這個文字檔,發現後面有html碼,表示你下載的那隻aspx最後沒有加上Response.End();
張貼留言