其實這又是一篇很怪異的發文
多怪異呢
看下去就知道啦
相信有很多曾經玩過DOS的人一定接觸過Basic
我覺得那是我玩電腦的時光中,最快樂的時光
就算是現在的系統多強大多好用,就因為過於強大好用,用起來反而覺得綁手綁腳的
最後還是懷念直譯式的Basic
曾經透過虛擬機器來回味,可是仍覺得太過於麻煩
因為我想要玩Basic的操作環境,卻又希望能有Windows般的控制環境
最後就突發奇想的想自己用C++ Builder設計一個
我的做法很簡單
在新表單上放一個Rich的元件,這元件的功能就類似記事本,但比記事本強大,所以其實是Windwos附屬應用程式裡的Wordpad(因為大家比較常用記事本,所以先講記事本,讓大家對原本功能有點印象)
接著放兩個ListBox元件一個存放變數名稱,一個存放變數值
當程式指令下達A=10時
程式會先搜尋ListBox的項目,看是否有這個變數值若有,就改變值
引用:
_for (int i=0 ; i<=ListBox1->Items->Count-1 ; i++)
__if (ListBox1->Items->Strings[i]==v1) {
___p=i;
___ListBox2->Items->Strings[p]=v2;
___break;
__}
|
若沒有新增值
引用:
_if (p<0){
__ListBox1->Items->Add(v1);
__ListBox2->Items->Add(v2);
__p=ListBox1->Items->Count-1;
|
然後就是最基本的PRINT指令
PRINT必須顯示""中間的文字
引用:
_String v1,v2;
_if(s.Pos("\"")){
__s=s.SubString(s.Pos("\"")+1,s.Length()-s.Pos("\""));
__if(s.Pos("\"")) s=s.SubString(1,s.Length()-1);
_} else {
|
以及顯示變數值
引用:
__v1=s.SubString(s.Pos(" ")+1,s.Length()).UpperCase();
__for (int i=0 ; i<=ListBox1->Items->Count-1 ; i++) if (ListBox1->Items->Strings[i]==v1) s=ListBox2->Items->Strings[i];
_}
_RichEdit1->Lines->Add(s);
|
有輸出就一定要有輸入
但利用Rich元件實在很難控制輸入的指令,而且既然是在Windows環境,就該"入境隨俗",利用Windows的資源InputBox
引用:
_if(s.Pos("\"")){
__v1=s.SubString(s.Pos(",")+1,s.Length()).UpperCase();
__s=s.SubString(s.Pos("\"")+1,s.Pos(",")-s.Pos("\"")+1);
__if(s.Pos("\"")) s=s.SubString(1,s.Length()-1);
__v2=InputBox("選擇",s.c_str(),"");
__for (int i=0 ; i<=ListBox1->Items->Count-1 ; i++)
___if (ListBox1->Items->Strings[i]==v1) {
____p=i;
____ListBox2->Items->Strings[p]=v2;
____break;
___}
__if (p<0){
___ListBox1->Items->Add(v1);
___ListBox2->Items->Add(v2);
___p=ListBox1->Items->Count-1;
__}
_}
|
感謝的沒學過C++ Builder或C++的朋友,很感謝你耐心的看到這裡
實在想不出該發些什麼文了,只好把這個無聊的興趣也跟大家分享
不知大家看了有沒有什麼想法