CalcNotepad是我開發的一款具有計算功能的記事本工具。其界面由如下4部分構成:
- 菜單欄
- 文本區
- 結果區
- 狀態欄
首先介紹一下菜單系統
【文件菜單】里面的命令與Windows內置記事本的命令相似,但是當另存為為文件時,可以選擇編碼。
【編輯菜單】
其中,查找和替換支持正則表達式。
【格式菜單】可以設置字體格式和文本區的背景格式,這些設置保存於注冊表中,下次啟動會記憶。
【計算菜單】用於設置語言,本工具支持VBScript和JavaScript語法。
在文本區中選擇一部分代碼,然后按下【F8】可以把表達式的值計算出來,並且顯示在左下角。
注意:F8只把選擇了的文本作為計算根據,和它周圍的文字無關。但是F5是以全部文本作為計算根據的。
例如,書寫一個不帶參數的Function,函數名稱可以任意起。按下【F5】,會計算所有代碼,彈出對話框中顯示變量c的值。
然后左下角會給出該函數的返回值Test,應該是36
如果計算菜單中勾選的是JavaScript,就需要書寫JS代碼了。
如下計算100除以7的余數,左下角顯示結果。
同樣,也可以從一個不帶參數的function開始運行。
下面的程序Area是帶參數函數,ABC是不帶參數的,因此首先調用ABC函數。計算結果為90。
【幫助菜單】可以設置txt擴展名的默認程序,如果設置為本工具,那么雙擊TXT文件,會默認以本工具打開。
【狀態欄】分為3部分,分別顯示的是當前文件的編碼、文件的完整路徑、光標所處的位置。
如圖所示,光標顯示處於“戰斗”兩個字之間,因此是12行5列。並且斗字是整個文件的第202個字,一共選中了28個字。
多國語言版
英文
2020/05/04 更新
從各方面考慮,把已有的VBScript、JavaScript計算功能去掉了,現在換成了腳本調用功能。可以調用任何exe文件及其對應的腳本。
基本用法:
解壓縮后,會看到CalcNotepad.exe這個主文件。其余文件都是示例代碼文件,作為學習參考用。
點擊【調用】、【設置】
打開設置對話框。該對話框包括4項設置:
當前工作目錄:需要輸入一個文件夾的路徑,設置了此項后,在命令行參數中就可以使用相對路徑。
例如"Sample_BAT.bat"就等價於"E:\baidu player\Sample_BAT.bat"
可執行文件:此項是必須輸入。
命令行參數:可選。
標准輸入參數:可選。
Sample_BAT.bat腳本用於計算5個數字之和,內容如下:
@echo off set /p c=c: echo; set /p d=d: echo; set /p e=e: echo; set /a result=%1+%2+%c%+%d%+%e% echo %result% exit
設置完畢后,按下ESC關閉設置對話框,在CalcNotepad界面中按下【F5】,即可在底部看到計算結果是15。
調用cmd.exe時,要求命令行參數中必須有 /c
例如:
我用十來種語言編寫了5個數字之和的示例代碼,其中變量a、b來自於命令行參數,變量c、d、e來自於標准輸入。
VBS版
Sample_VBS.vbs代碼如下
Main Sub Main() Dim a,b,c,d,e a=WScript.Arguments(0) b=WScript.Arguments(1) c=WScript.StdIn.ReadLine WScript.StdOut.WriteLine c d=WScript.StdIn.ReadLine WScript.StdOut.WriteLine d e=WScript.StdIn.ReadLine WScript.StdOut.WriteLine e WScript.StdOut.WriteLine CInt(a)+CInt(b)+CInt(c)+CInt(d)+CInt(e) End Sub
VBS腳本使用系統文件夾的cscript.exe來解釋執行,設置畫面為:
PowerShell版
Sample_Powershell.ps1代碼如下:
$a=$args[0] $b=$args[1] $c=Read-Host("c") $d=Read-Host("d") $e=Read-Host("e") Write-Host $a,$b,$c,$d,$e,`n Write-Host $([System.Int32]$a+[System.Int32]$b+[System.Int32]$c+[System.Int32]$d+[System.Int32]$e)
Powershell的參數較多。命令行參數的內容為
-NoLogo -ExecutionPolicy RemoteSigned -File Sample_Powershell.ps1 1 2
另外,也支持調用PowerShell的單行命令。例如:
注意是 -Command,而不是 -File。
運行結果為:
如果參數中有錯誤,或者運行出錯,本工具會輸出為StandardError。
假設不小心寫成了GetProcess
是不是有點愛上了PS呢。
Python版
Sample_Python.py內容如下
import sys a = sys.argv[1] b = sys.argv[2] c=input("c:\n") d=input("d:\n") e=input("e:\n") print(a,b,c,d,e) print(int(a)+int(b)+int(c)+int(d)+int(e))
設置畫面為:
打印結果同樣是15。
如果你想自己做一個支持命令行參數和標准輸入的可執行文件,可以試一下C#或VB.NET,示例代碼如下。
C#
using System; static class Module1 { public static void Main(string[] args) { var a, b, c, d, e; a = args[0]; b = args[1]; c = Console.ReadLine(); d = Console.ReadLine(); e = Console.ReadLine(); Console.WriteLine(System.Convert.ToInt32(a) + System.Convert.ToInt32(b) + System.Convert.ToInt32(c) + System.Convert.ToInt32(d) + System.Convert.ToInt32(e)); } }
VB.NET
Module Module1 Sub Main(args As String()) Dim a, b, c, d, e a = args(0) b = args(1) c = Console.ReadLine() d = Console.ReadLine() e = Console.ReadLine() Console.WriteLine(CInt(a) + CInt(b) + CInt(c) + CInt(d) + CInt(e)) End Sub End Module
最后,本工具還支持XML、帶有VBScript和JavaScript的HTML網頁的預覽功能。
首先在工具中打開Sample_JavaScript.html這個示例文件,然后點擊菜單“WebBrowser”
彈出的瀏覽器中,可以看到網頁上的兩個按鈕。
關閉瀏覽器,在CalcNotepad中繼續編輯網頁或Script,再次啟動瀏覽器,這樣就可以調試了。
XML也是這樣的做法,大家自己試一下。
其他重要提示
- 文本區按下{Tab}輸入制表位
- 文本區中雙擊鼠標可以選中整行
- 查找到最后一處彈出的MsgBox對話框,3秒后自動消失
- 支持文件拖放,可以從文件夾中拖放一個TXT文件到文本區,快速打開
- 左手按住Ctrl,右手滾動鼠標滾輪,可以改變字體大小
下載地址:https://share.weiyun.com/5dpcNqx