2010年8月28日 星期六

Java 由指令讀取文字檔

ref http://tw.group.knowledge.yahoo.com/java-ppl/listitem/view?iid=20

重點:呼叫參數、賭取檔案方式

程式名稱 readfile.java

文字檔 st.txt (內容為數句英文句子)

[執行]

javac readfile.java

java readfile st.txt

[結果]

印出st.txt 的內容



import java.io.*;

public class readfile{
public static void main (String args[]){

try{
FileReader fw= new FileReader(args[0]);
BufferedReader buf = new BufferedReader(fw);
String s;

while ( (s=buf.readLine() ) != null)
System.out.println(s);
buf.close();
}
catch (IOException e){
System.out.println("Error: " + e.toString());
}
}
}

按鍵精靈 小程式

其中有用的是,搜尋視窗名稱,切換到視窗


Hwnd = Plugin.Window.Search("Zcoco")
Hwnd = replace(Hwnd, "|" , "") //Hwnd 為陣列型式,如有搜尋到多個,將以 | 分隔,固去除 | ,讓切換視窗能夠順利執行
Call Plugin.Window.Active(Hwnd)




'==========以下是按鍵精靈錄製的內容
Hwnd = Plugin.Window.Search("Zcoco")
Hwnd = replace(Hwnd, "|" , "")
Call Plugin.Window.Active(Hwnd)
// MsgBox "find " & Hwnd

//MoveTo 509, 548
//Delay 8
MoveTo 509, 549
Delay 360
LeftClick 1

KeyDown "Enter", 1
Delay 71
KeyUp "Enter", 1
Delay 1
Delay 100
KeyDown "Up", 1
Delay 2
KeyUp "Up", 1
Delay 2000

Hwnd = Plugin.Window.Search("Eclipse")
Hwnd = replace(Hwnd, "|" , "")
Call Plugin.Window.Active(Hwnd)
//MsgBox "find " & Hwnd

// KeyDown "Alt", 1
// KeyUp "Tab", 1
// Delay 200
// Delay 18
// KeyUp "Alt", 1
Delay 500
KeyDown "Ctrl", 1
Delay 250
Delay 6
KeyDown "F11", 1
Delay 161
KeyUp "F11", 1
Delay 25
KeyUp "Ctrl", 1
Delay 2000

Hwnd = Plugin.Window.Search("Zcoco")
Hwnd = replace(Hwnd, "|" , "")
Call Plugin.Window.Active(Hwnd)


//KeyDown "Alt", 1
//Delay 374
//KeyUp "Tab", 1
//Delay 369
//KeyUp "Alt", 1
//Delay 100
'==========以上是按鍵精靈錄製的內容==========

Java 小程式 解析 down.dl

自己寫的一點小東西,處理ZcocoComic Viewer運作過程中,down.dl 的暫存檔,使之創造一個批次檔,直接下載檔案。

其中用到「讀檔」「寫檔」「Regular Expressions」「字串處理」

注意事項:如果要在寫入的文字檔中換行,需要加入 "\r\n"

另附 轉換String to int
int x = Integer.parseInt(str); <-------字串轉換成int的整數數值 ;



程式碼:
package downdl;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ext01 {
public static void main(String[] args) throws IOException {

FileReader fr = new FileReader(
"n:/ZcocoComic_1.00_cn/support/workshop/down.dl");
BufferedReader buf = new BufferedReader(fr);
String s;
String t;
String picDir = "", pageName = "", wget = "";

String regEx = "picSrc\\[[0-9][0-9]*\\] ?= ?'";

while ((s = buf.readLine()) != null) {
s = s.replace("%7C", "|");
s = s.replace("\t", " ");


// pageName
if (s.indexOf("pageName = ") != -1) {
pageName = s.substring(s.indexOf("pageName = \"") + 12, s.lastIndexOf("\""));

System.out.println("mkdir " + pageName);
System.out.println("cd " + pageName);
}

// picDir
if (s.indexOf("url=") != -1) {
picDir = s.substring(s.indexOf("url=") + 4, s.indexOf("\";"));

}

Pattern pattern = Pattern.compile(regEx);
Matcher m = pattern.matcher(s);

while (m.find()) {

t = s.substring(m.end(), s.indexOf("';"));
System.out.println("wget \"" + picDir + t + "\"");
wget += ("wget \"" + picDir + t + "\"\r\n");

}

// System.out.println(s);

}

t = "M:/DEL/" + pageName + ".bat";

FileWriter fw = new FileWriter(t);
BufferedWriter output = new BufferedWriter(fw);
output.write("mkdir " + pageName + "\r\n");
output.write("cd " + pageName);
output.write(13); // \r 13是歸位字元
output.write(10); // \n 10是換行字元
output.write(wget);
System.out.println(t);
output.close();
}
}


2010年3月28日 星期日

刪除已移除的硬體裝置設定與驅動程式程式

按開始,到執行,輸入 cmd 按確定(「開始」>>「程式集」>>「附屬應用程式」>>「命令提示字元」)

輸入以下指令後,按 ENTER 鍵,這是讓裝置管理員顯示已安裝但是目前不在機器上的裝置。

set devmgr_show_nonpresent_devices=1

這個設定,是設定一個環境變數,這個環境變數(devmgr_show_nonpresent_devices)就是讓裝置管理員去顯示已經安裝的設備,而這個設備是目前並不在機器上的東西。

因為這是在 command 模式下利用 SET 建立的環境變數,只是暫時的,所以只對此次有效,下次開機就會從記憶體消失,因此你不用擔心如此的設定會無法恢復原狀的問題。

輸入 start devmgmt.msc,這是啟動裝置管理員的意思。

到「檢視」,選「顯示隱藏裝置」,去找你之前移除的硬體裝置,找到之後,在其上按滑鼠右鍵選「解除安裝」。

2010年3月3日 星期三

debian忘記 root密碼解決方法

現在我們一般使用grub作為系統的引導程序,而lilo進入單用戶的方法很簡單,這裡就不提了。

對於一些版本的OS(如redhat) 來說,編輯grub,在後面加上「single」即可進入單用戶模式。但是對於debian來說,這種方式是無效的,因為debian進入單用戶模式也需 要你輸入root用戶的密碼。

下面介紹一個在所有版本linux的grub上均可以使用的方法:

1、在Grub的引導裝載程序菜單上,選擇你要 進入的條目,鍵入 「e」 來進入編輯模式。
2、在第二行(類似於kernel /vmlinuz-2.6.15 ro root=/dev/hda2 ),鍵入」e」進入編輯模式;
3、在句末加上」init=/bin/bash」,回車;
4、按「b」啟動 系統。

這樣我們即可獲得一個bash的shell。

進入 shell後,根分區的掛載模式默認是只讀,我們要將其改為可寫,否則不能更改root密碼:

mount -no remount,rw /
passwd root
sync
mount -no remount,ro /
reboot

這 樣即可成功更改debian的root用戶的密碼。

2010年1月27日 星期三

Windows 遇到藍色當機畫面解決方向

ref http://wenwen.soso.com/z/q112777948.htm ps原始出處未知

一旦出現藍屏,版主就該立即記錄下藍屏代碼,這樣就可以依據代碼對號入座,這樣問題就很容易解決了。回答版主的問題,首先我先說下藍屏的原因有哪些,這樣讓版主對藍屏有個大致的瞭解。其次,我在最後附上了一些藍屏代碼,供版主依代碼來解決問題,當然代碼很多我不可能全部列出來完。剩餘的,版主可以在最後的鏈接去查看更多代碼。
電視機會出現藍屏,電腦也會出現"藍屏"。電腦出現"藍屏"時還會出現一連串警告,輕者只要按ESC就能返回,重者就會出現死機,使人十分煩惱。出現"藍屏"無外有二種情況,一種是軟件引起的,另一種是硬件引起的,軟件引起的"藍屏"故障,一般重裝系統都能解決。但也可以不重裝系統來解決。而硬件引起的"藍屏"故障,要根據具體的情況分別解決。


一、軟件引起的"藍屏"故障

1、重要文件損壞或丟失會引起"藍屏"故障(包括病毒所致)。
WIN中VxD(虛擬設備驅動程序)或.DLL(動態連接庫)之類的重要文件丟失會出現"藍屏警告"。解決的辦法是利用Win的啟動盤中的"Ext"來恢復被損壞或丟失的文件,步驟如下:
(1)、先用WIN的啟動盤起動電腦,在提示符下敲入"Ext"命令;
(2)、在提示"Please enter the path to the Windows CAB files (a) :" 後輸入WIN安裝壓縮包所在的完整路徑,回車,如"E:\Pwin2003\Win2003;
(3) 、在提示"Please enter the name (s) of the file (s) you want to extract:"後輸入你丟失的文件名,如"BIOS.Vxd",回車;
(4)、在解壓路徑提示"Please enter path to extrct to (' Enter' for current directory): " 後輸入文件將被解壓到的完整路徑,如"C:\Windows\System" 並回車,後面出現的提示,只要按YES回車即可,得新啟動後就能恢復系統。註:因事先記下丟失的文件名,以便恢復)
如是病毒引起,可用殺毒軟件來殺毒,並及時恢復中毒前的備份;
如果能啟動圖形界面,可採取重裝主板以及顯示卡的驅動程序,和進行"系統文件掃瞄"來恢復被破壞或丟失的文件,可從開始菜單內附件中的系統工具中找到;

2、註冊表損壞導致文件指向錯誤所引起的"藍屏"
在註冊表被改動後或受到破壞,在開機或在調用程序時出現"藍屏",並且屏幕有出錯信息(包括出錯的文件名)。
--解決方法是恢復註冊表備份,重新啟動計算機,切換到MS-DOS方式,進入Windows子目錄,鍵入Scanreg\regstore 後回車,就可恢復最近一次註冊表

3、在卸載程序後出現"藍屏",多數是由於程序卸載不完善造成。解決辦法:首先記下出錯文件名,然後到註冊表中找到以下分支"HKEY_LOCAL_MACHINE\Sysytem\CurrentControlSet\Services\VxD",在"查找"中輸入出錯的文件名,把查到鍵值刪除即可。

4、在System.ini文件錯誤引起的"藍屏",由於軟件卸載或安裝時沒有即時更新System.ini造成"藍屏"的,解決辦法:禁用註冊表中該項或重裝相應軟件或驅動程序;
由於Win98的spl和Microsoft的Vxd_fix.exe補丁程序對Win98的穩定起著重要的作用,可到華軍網站下載補丁Vxd_fix.exe.

5、系統資源耗盡引起的藍屏。這一類故障主要是三個堆資源(系統資源、用戶資源、GDI資源)佔用有情況有關。
--打開資源監視器,看一下剩餘資源的情況,如這三種資源都 在50%甚至更低,就很容易出現"非法操作"、"藍屏"、"死機"。因此,必須減少資源浪費,減少不必要的程序加載,避免同時運行大程序(如圖形、聲音和視頻軟件),如加載計劃任務程序、輸入法和聲音指示、聲卡的DOS驅動程序,系統監視程序等;

6、DirexctX問題引起的"藍屏"故障。如DirectX版本過高、過低;遊戲與它不兼容或是不支持;輔助文件丟失;顯卡對它不支持,都可能造成此故障。升級或重裝DirectX,嘗試更新顯卡的BIOS和驅動程序,或升級顯卡。

7.軟件不兼容導致的。


二、硬件引起的"藍屏"故障

此類故障主要有以下幾種:

1.內存超頻或不穩定。主要出現隨機性"藍屏"。恢復正常頻率運行,或找一根好的內存條進行替換,一般都能解決問題,還要注意和CPU內存條很近的散熱問題;
2.硬件的兼容性不好引起的"藍屏"。由於DIY門使用的是兼容機,沒有經過完善的監測,從而留下陷患, 如不同規格的內存條混插等,可交換內存條所插的插糟位置,或更換相同規格、廠家、批號的內存條都可解決問題。而內存條的好壞直接影響系統的穩定性,應特別引起重視;
3.硬件散熱問題也會引起"藍屏"。這一類故障,往往都有一定規律,一般在電腦運行一段時間後才出現,表現中"藍屏"死機或隨意重啟動,解決方法是很簡單,不要隨意超頻,加強機內的降溫。
4、I / O衝突也能引起"藍屏"。這種現象比較少,如果出現,可以從系統中刪除帶!號或?號的設備名,重新啟動計算機,一般能解決。


三、預防措施

總之要做到防患於末然,只要能在平時能做到以下幾點,就能有效地避免出現"藍屏"或死機。

1.定期對註冊表進行備份,出錯時能夠及時恢復到原來的狀態;
2.儘量避免非正常關機,可減少重要文件丟失。如.VxD .DLL文件等;
3.一般而言,計算機能正常工作,沒必要去升級著如顯卡、主板的BIOS和驅動程序,避免造成損害機器;
4.定期運行"系統文件檢查器"對系統文件進行檢查;在"系統工具"中可找到
5.減少無用文件的安裝,儘可能不要用手工卸載或刪除程序,以減少非法替換文件和文件指向錯誤;
6.儘量避免大程序的同時運行,如果發現在聽MP3時有沙沙的聲音,可以肯定該故障是由內存不足造成。

最後是藍屏代碼,

Windows藍屏錯誤代碼

0X0000 操作完成
0X0001 不正確的函數
0X0002 系統找不到指定的文件
0X0003 系統找不到指定的路徑
0X0004 系統無法打開文件
0X0005 拒絕存取
0X0006 無效的代碼
0X0007 內存控制模塊已損壞
0X0008 內存空間不足,無法處理這個指令
0X0009 內存控制模塊位址無效
0X000A 環境不正確
0X000B 嘗試載入一個格式錯誤的程序
0X000C 存取碼錯誤
0X000D 資料錯誤
0X000E 內存空間不夠,無法完成這項操作
0X000F 系統找不到指定的硬盤
0X0010 無法移除目錄
0X0011 系統無法將文件移到其他的硬盤
0X0012 沒有任何文件
0X0019 找不到指定扇區或磁道
0X001A 指定的磁盤或磁片無法存取
0X001B 磁盤找不到要求的裝置
0X001C 打印機沒有紙
0X001D 系統無法將資料寫入指定的磁盤
0X001E 系統無法讀取指定的裝置
0X001F 連接到系統的某個裝置沒有作用
0X0021 文件的一部分被鎖定,現在無法存取
0X0024 開啟的分享文件數量太多
0X0026 到達文件結尾
0X0027 磁盤已滿
0X0036 網絡繁忙
0X003B 網絡發生意外的錯誤
0X0043 網絡名稱找不到
0X0050 文件已經存在
0X0052 無法建立目錄或文件
0X0053 INT24失敗(什麼意思?還請高手指點站長一二)
0X006B 因為代用的磁盤尚未插入,所以程序已經停止
0X006C 磁盤正在使用中或被鎖定
0X006F 文件名太長
0X0070 硬盤空間不足
0X007F 找不到指定的程序
0X045B 系統正在關機
0X045C 無法中止系統關機,因為沒有關機的動作在進行中
0X046A 可用服務器儲存空間不足
0X0475 系統BIOS無法變更系統電源狀態
0X047E 指定的程序需要新的windows版本
0X047F 指定的程序不是windows或ms-dos程序
0X0480 指定的程序已經啟動,無法再啟動一次
0X0481 指定的程序是為舊版的 windows所寫的
0X0482 執行此應用程序所需的程序庫文件之一被損
0X0483 沒有應用程序與此項操作的指定文件建立關聯
0X0484 傳送指令到應用程序無效
0X05A2 指定的裝置名稱無效
0X05AA 系統資源不足,無法完成所要求的服務
0X05AB 系統資源不足,無法完成所要求的服務
0X05AC 系統資源不足,無法完成所要求的服務
0X06B9 資源不足,無法完成操作