2007年3月29日 星期四

實作 Turing Machine 範例

Turing Machine 定義:

A Turing machine M is defined by (Q,S,G,d,qs,qa,qr)、with
‧ states Q ={qs,q0,q1,q2,q3,q4,qa,qr}
‧ input alphabet S = {>,0,1,u}
‧ start state qs 屬於 Q
‧ accept state qa 屬於 Q
‧ reject state qr 屬於 Q
‧ transition function d

q 屬於 Q、 s 屬於 S d(q、s)
qs 0 (q0 、> 、R)
qs 1 (q1 、> 、R)
qs > (qs 、> 、R)
qs u (qa 、u 、-)
q0 0 (q0 、0 、R)
q0 1 (q0 、1 、R)
q0 u (q2 、u 、L)
q1 0 (q1 、0 、R)
q1 1 (q1 、1 、R)
q1 u (q3 、u 、L)
q2 0 (q4 、u 、L)
q2 1 (qr 、1 、-)
q2 > (qa 、u 、R)
q3 0 (qr 、1 、-)
q3 1 (q4 、u 、L)
q3 > (qa 、> 、R)
q4 0 (q4 、0 、L)
q4 1 (q4 、1 、L)
q4 > (qs 、> 、R)
說明:輸入檔(input-1.txt)第一行表示有幾個 Turing Machine 迴圈要進行,輸出檔(out-1.txt) 1 表示接受,0 表示拒絕。

輸入:
3
>101u
>11000u
>1010u

輸出:
1
0
0

程式下載

原碼下載

移除 Adobe Acrobat PDF Office Addin

問題描述:

在安裝 Adobe Acrobat PDF 時,通常會自動 Addin 所有已安裝的 Office 系列加入一個工具列和選單列方便 PDF 檔案進行輸出,但是往往我們只需要使用 Adobe PDF 所安裝的 PDF 虛擬印表機,然而無法移除或關閉 Office 系列的工具列和選單列,造成打開 Office 系列時載入延遲和版面不美觀。

解決方式:

  1. 在開始->執行,鍵入 regedit
  2. 工具列->編輯->尋找 HKEY_CLASSES_ROOT\PDFMaker.OfficeAddin
  3. 將此機碼所有允許權限移除(即任何人不可存取此機碼)
  4. 完成

注意事項:

如果爾後要進行移除安裝的 Adobe Acrobat 時,必須將此機碼權限設定目前本機電腦帳號可完全控制的權限。

2007年3月25日 星期日

密碼回復工具


下載

軟體名稱:PasswordSpy
軟體版本:v 1.0
軟體作者:cuteofdragon
軟體授權:免費軟體
發佈時間:2007/03/25

說明:有了這個工具,當記憶的密碼忘記時,但仍存在顯示在畫面上時,執行PasswordSpy後點擊Scan按鈕,然後將滑鼠移至密碼*號的位置,Password Text欄位立刻顯示遺失的密碼。支援中/英文Unicode密碼顯示。

2007年3月20日 星期二

動態網址解析概念


下載

軟體名稱:CNN 新聞資訊檢索
軟體版本:v 1.0
軟體作者:cuteofdragon
軟體授權:免費軟體
發佈時間:2007/03/20

大綱

  1. 瀏覽網頁
  2. 取得標頭
  3. 原始內容
  4. 去除HTML標籤
  5. 正規表達式
  6. 資料儲存/回復


瀏覽網頁

新增WebBrowser元件
webBrowser1.Navigate(textBox1.Text);



取得標頭

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
ASCIIEncoding ascii = new ASCIIEncoding();
headerTextBox.Text=ascii.GetString(response.Headers.ToByteArray());



原始內容

StreamReader sr = new StreamReader(response.GetResponseStream()、Encoding.Default);
string content = sr.ReadToEnd();
bodyTextBox.Text = content;



去除HTML標籤

Regex r = new Regex("<[^>]*>");
string removeTag = r.Replace(content、"").
Replace(" "、" ").
Replace("\r"、" ").
Replace("\n"、" ").
Replace("\t"、" ");



正規表達式

HTML 標籤:<[^>]*>
Hyperlink:<a href=""http://cnn.com[^<]*</a>
Href:http://[^>""]*
Text:>[^<]* Date:\d*\d 網址:http://search.cnn.com/pages/search.jsp? currentPage={0}&query=*&sortby=Date





資料儲存/回復

1.使用List儲存所有Hyperlink
2.做用XmlDocument迭代輸出檔案
3.對所有CNNHyperlinkTag物件建立XmlElement
4.使用XmlDocument讀取檔案
5.重建List




CNNHyperlinkTag

class CNNHyperlinkTag
{
public string Href;
public string Text;
public DateTime Date;
public bool Visited;
}



XmlDocument 輸出

XmlDocument doc = new XmlDocument();
foreach (CNNHyperlinkTag tag in cnnHyperlinkTagList)
{
XmlElement element = doc.CreateElement("CNNHyperlinkTag");
element.SetAttribute("Date"、tag.Date.ToString("d")); element.SetAttribute("Visited"、tag.Visited.ToString());
ement.SetAttribute("Href"、tag.Href);
element.SetAttribute("Text"、tag.Text);
doc.DocumentElement.AppendChild(element);
}
doc.Save(fileName);




XmlDocument 讀取

XmlDocument doc = new XmlDocument();
doc.Load(openFileDialog1.FileName);
XmlNodeList xnl = doc.GetElementsByTagName("CNNHyperlinkTag");
foreach (XmlElement data in xnl)
{
CNNHyperlinkTag tag = new CNNHyperlinkTag();
tag.Date = DateTime.Parse(data.GetAttribute("Date"));
tag.Visited = Boolean.Parse(data.GetAttribute("Visited"));
tag.Href = data.GetAttribute("Href");
tag.Text = data.GetAttribute("Text");
cnnHyperlinkTagList.Add(tag);
}


原文下載

網路組態設定工具


下載

軟體名稱:網路組態設定工具
軟體版本:v 1.0
軟體作者:cuteofdragon
軟體授權:免費軟體
發佈時間:2007/03/20

使用方式 I:
  1. 選擇 Adapter(你欲設定的網路卡)
  2. 輸入 IP、Submask、Gateway、DNS
  3. 點選 SetIP 進行手動設定


使用方式 II:

  1. 選擇 Adapter(你欲設定的網路卡)
  2. 點選 Auto 按鈕進行自動取得 IP


使用方式 III(自動設定方式):

當你使用行動電腦時,常常往返不同地方,有些網路設定須為自動取得 IP,有些則須設定固定 IP,但是網路卡只能接受其中一種方式的設定,不能進行快速的選擇,你可以參考下列方式進行網路卡設定,並存成批次檔,偶後即可快速的切換不同地方的網路設定組態。

  1. 在命令列模式(或批次檔)下自動取得 IP 鍵入:
    Win32_NetworkAdapterConfiguration.exe true
  2. 在命令列模式(或批次檔)下手動取得 IP 鍵入:(請自行替換你的 IP 位址)
    Win32_NetworkAdapterConfiguration.exe 10.1.1.1 255.255.255.0 10.1.1.254 168.95.1.1
    139.175.10.20