2016年12月31日 星期六

程式筆記

 C# 快速導覽 - 繼承


繼承 (inheritance) 是一種設計類別 (class) 的機制,使子類別 (subclass) 可以衍生自父類別 (superclass) ,這是說,子類別具有與父類別相同的屬性 (property) 及方法 (method) ,並且子類別還可以額外設定屬性或方法。

舉例如下

class Demo {
    private int a;
    private int b;
     
    public Demo() {
        a = 11;
        b = 22;
    }
     
    public string DoSomething() {
        return "There is no spoon.";
    }
     
    public int DoSomething2() {
        return a + b;
    }
}
 
class Demo2 : Demo {}
 
class DemoTest {
    static void Main() {
        Demo2 d = new Demo2();
        System.Console.WriteLine(d.DoSomething());
        System.Console.WriteLine(d.DoSomething2());
    }
}
 
/* 《程式語言教學誌》的範例程式
    檔名:class12.cs
    功能:示範 C# 程式
    作者:陳嘉豪
    時間:西元 2013 年 6 月
*/


繼承的寫是在子類別後加上冒號,然後是父類別的名稱

class Demo2 : Demo {}


此例的子類別沒有另外設定屬性及方法,注意父類別 Demo 的屬性 ab 都是 private ,這裡是用 public 的方法存取 private 屬性,這是物件導向程式設計的封裝技巧喔!


編譯執行,結果如下
There is no spoon.
33

2016年12月29日 星期四

美式拳擊 PUNCH-OUT --任天堂紅白機(FC)遊戲



拳擊經典,翻譯成「美式拳擊」,又另一個名稱為「泰森拳擊」因為最後魔頭就是泰森

這個遊戲的特色就是對手是整個身體就在畫面擂台中間,我們操縱的主角就在下面露出個上半身,手把為B是左拳、 A是右拳,上鍵+A、B鍵是打臉,不按上鍵就是打腹部,左右鍵是往左右閃躲、下鍵是防禦、下下鍵是往下閃躲。

通常敵手要出拳攻擊時,都會有跡可尋,比方說做姿勢、搖頭、眼睛一閃一閃的就是出拳前兆,記得此時閃躲後,就會發現攻擊的時機。有時出拳時機好的話,打中對手會有一顆星出現,此時按暫停鈕便可出必殺跳拳,比賽最多為三回合,分不出勝負,就用畫面上方的分數來比出勝負。

第一關:弱到不行的對手,是用來練習用的,隨便打都能擊中,要打輸他還真的很難。








第二關:比第一關稍強一點,但防禦力較強,只要注意一下也很容易過關。
第三關:有點本事的傢伙出現了,這傢伙就不能用亂打了,注意一下他出拳的前兆,慢慢攻擊即可過關,他如果使用必殺技的話,就是往後退一步左右跑來跑去的話,瞄準腹部,只要一擊就可過關。打敗他有過關密碼:005 737 3454


 
第四關:這小子會挑撥你,這時要出臉部攻擊,他擋住時就會出拳,抓準時機躲開再慢慢攻擊,就照這個模式打即可過關,不難。





第五關:第一次跟他打時完全不知所措,都被打假的,後來是人家玩後才知道,他出拳時嘴巴會張開,此時打他嘴巴一拳,他就會雙拳舉起遮口,這時猛往腹部攻擊即可,照此模式一直進行下去,只要一倒地就是  ,其實知道方法後,這關出其簡單。


第六關:不難,看清楚他頭上寶石發光的時機就是出拳時機,閃躲後再出拳攻擊就好,他使用必殺技的話,就是一直轉來轉去攻擊的,只要按下防禦擋住他就會暈倒,趁機給他一拳即可倒地。





第七關:這個對手算很強,出拳徵兆很快,出拳也很快,所以就算看到出拳時機,來不及閃躲也是會被打到,所以神經要繃緊一點,他使用必殺青蛙跳殺時,只要抓準接近的時機,往腹部一拳,就可以讓他倒地。打敗他有過關密碼:777 807 3454




第八關:之前被打敗的第三關對手又來啦,這次變的更強了,出拳時間短又快,跟之前不能比,他的必殺技弱點仍然在腹部,如果擊中的話,也是一擊必殺。
第九關:這個酒鬼會哈哈笑,算是挺有特色的,雖然出拳快,但是我覺得這個對手不會很難打,只要不太過緊張,看準出拳時機,一回合打敗他不是難事。


第十關:第七關的對手又來啦,這次一樣,變的更強了,打法跟第七關時差不多,但是他的必殺蛙跳這次多了一個短距離的,所以變的更棘手了,但如果反擊成功擊中腹部的話,仍是一擊倒地。
第十一關:第四關的對手又來了,這次可不好對付,除了挑撥攻擊外,他這次一開始還會出拳攻擊,而且速度很快,再加上他的點數很高,打到第三回合的話,他被判定贏的機會很高,他如果被擊倒地再爬起來的話,體力幾乎都是全滿,所以儘量小心的  他,不要拖到三回合到。






第十二關:我跟表哥、表弟們的夢魘呀,小時候跟他打一個下午都沒贏過,有一次 : 「只差一拳」就可以  他了,結果我想看他進休息場面的臉變形畫面,結果那一拳沒打下去,被表哥、表弟們罵的要死!因為後來當天再也沒贏過他了  ….  後來是我表哥表弟們趁我回家時,才一直打、一直打,才打贏他的。
這個對手我覺得僅次於最終魔王,他出拳的速度超快,有時身體光一閃就連出三拳,我就被打倒了,要打倒他,真的精神得很集中才行。








第十三關:也算是小時候的夢魘之一,那時最怕他的必殺技「旋轉拳」,其他都沒啥可怕的,有時一拳沒躲開就是倒地,小時候就是一直敗在他這招底下,長大後再玩的話,反而覺得他並沒第十二關的對手強,旋轉拳我現在很簡單的就可以全部躲開了  ….打敗他有過關密碼:259 893 7538




第十四關(最終關):原本的版本是泰森才對,也許是因為版權的關係才會換了另一個人(聽說泰森本人也對快打旋風的四天王「拜森」很不滿,因為根本是在學他),但招式幾乎沒變就是了。
最原先的泰森版本
後來改的夢幻先生版本
其實要打敗他很簡單,就是躲開他全部一擊倒地的拳頭就可以了  (廢話  ~~~~~~~),但是他出拳速度超快,而且都是一擊就倒地,就算普通的拳擊也會讓你損失不少體力,要打敗他真的有超集中的精神才行, : 「我到現在還沒打敗過他 :   ………….. : 」。而且只要輸一場就沒有第二次挑戰機會,就直接   V。後來找到直接跟最終頭目打的密碼啦!就是007 373 5963可直接挑戰泰森  後來改的夢幻先生。






使用 LINE 內建快取清理工具,替手機空間減肥瘦身

 LINE 是一個很佔用手機空間的程式,如果你打開手機設定查看每個應用程式的容量佔用情形,一定會發現它超乎你的想像!
LINE 上個月推出更新終於能讓使用者快速將可能用不到的快取資料刪除以空出更多空間,不過這項功能也藏得很隱密,使用時只會將你的「快取資料」刪除,也能自己選擇要額外刪除照片、語音訊息或檔案資料,刪除後對話記錄不會消失!只是如果要回頭開啟之前的相片,就必須重新下載一次(也就是會額外耗用你的流量),但使用 Wi-Fi 連線就沒什麼影響。


如何使用 LINE 清理功能刪除用不到的快取資料?
開啟「設定」功能(在下方最右邊的按鈕,點選後再按一下右上角「齒輪」進入設定),接著往下滑動找到「聊天、語音通話」相關選項。


將頁面滑動到最下方,找到「刪除資料」功能,點選後會開啟如右下圖畫面,預設情況下會勾取「快取資料」刪除,我建議還能將底下的「照片資料」打勾,我換手機後從沒有清過,容量累積到 988.7 MB 接近 1 GB,相當可觀!

依照 LINE 說明,快取資料是暫存資料,且可再次下載,但如果你刪除的照片、語音訊息或檔案超過保存期限(已過期)的話,就無法重新取得內容,記得先將你認為重要的資料備份下來。


點選最下方「刪除所選資料」後會再跳出一次提示訊息,詢問使用者是否確定要刪除選擇的資料,沒問題的話確定刪除即可,刪除後通常可以再為手機空出不少容量,尤其對於 iPhone 來說,可能有些機型容量不大、又無法擴充空間,這時候透過這個小工具就能讓手機容量不被消耗太多。

2016年12月21日 星期三

excel 自動抓欄位資料生成qr code圖檔 貼在指定位置上

b1=qrcode(A1,ROW())

Function qrcode(qr, r)
if qr<>"" then
'因為google qrcode限制,中文需先轉成utf-8格式
'如果只有純英數,等號內的程式碼可以不要,utf8string 用您要的文字取代就可以了
'如果是excel 2013以後的版本,就不用程式碼來轉,記得有一個函數可以轉成utf-8
'=========================================================
'利用jscript來縮短轉成utf-8的程式碼
Dim ScriptEngine As Object
Dim utf8string As String
Set ScriptEngine = CreateObject("scriptcontrol")
ScriptEngine.Language = "JScript"
utf8string = ScriptEngine.Run("encodeURIComponent", qr)
'==========================================================
'取得google qrcode產生的圖片,插入excel表格
Set q = ActiveSheet.Pictures.Insert("https://chart.googleapis.com/chart?chs=70x70&cht=qr&chl=" & utf8string)
'調整圖片位置
With q
.Left = ActiveSheet.Cells(r, 2).Left
.Top = ActiveSheet.Cells(r, 2).Top
End With
end if
qrcode = ""

End Function


程式不用改,一樣可以轉的…重點是有中文就一定要先轉成utf-8,不然google會轉不出來
程式碼中這一串,圖片大小的定義等等…
https://chart.googleapis.com/chart?chs=70x70&cht=qr&chl= ..... ...

請參考google 官方說明修改
https://developers.google.com/chart/infographics/docs/qr_codes?csw=1

barcode 用字型就好了,不用寫程式,快又方便
請google "barcode 字型"

2016年12月19日 星期一

VirtualBox教學

下載:
https://www.virtualbox.org/wiki/Downloads
下載微軟虛擬影像檔:
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
教學:
http://blog.itist.tw/2014/07/oracle-virtualbox.html
http://blog.xuite.net/yh96301/blog/66578586-免費虛擬機器VirtualBox下載、安裝與設定

用EXCEL取得電腦的MAC ADDRESS

Dim strcomputer$, objwmiservice As Object, coldevices As Object, coldevice
Dim MacNum&
strcomputer = "."
Set objwmiservice = GetObject("winmgmts:\\" & strcomputer & "\root\cimv2")
Set coldevices = objwmiservice.ExecQuery _
("SELECT MACAddress FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))")

For Each coldevice In coldevices

Sheets("SHEET1").Range("A1").Value = coldevice.macaddress
Next

2016年12月11日 星期日

VirtualBox – 一台電腦可供二人同時使用
主題內容

為節省電腦的支出,透過「VirtualBox」這免費工具,可讓一台電腦同時提供給兩個人使用。要達到以上的功能,其基本條件是:
1. 雙輸出的顯示卡:提供兩個顯示輸出端口給兩台顯示器;
2. 兩台顯示器;
3. 兩台鍵盤;
4. 兩隻滑鼠;

「VirtualBox」操作方面:下載及安裝「VirtualBox」後,第一次執行時,先按程式視窗左上角的「新增」,隨意輸入一個名稱作識別。其後再選擇要安裝的「作業系統類型」,方便程式分配合適的虛擬硬件裝置,以便配合作業系統的公用驅動程式。然後需要建立一個「虛擬硬碟」,用於儲存虛擬電腦(Virtual machine)將要安裝的作業系統、應用程式,以及運作過程中需要儲存的文件及資料。首次運行虛擬電腦時,軟件會詢問是以「光碟」或「軟碟」開機,又可讓用戶選擇以「實體光碟機」還是「光碟映像檔」啟動系統。其後,以「Windows XP」或其他系統的安裝光碟啟動虛擬電腦,並如常的安裝作業系統。

在虛擬電腦上安裝作業系統後,先關閉虛擬電腦,才可調整USB裝置的設定。可點選虛擬電腦的名稱,按下「Settings」按鈕,再選擇「USB」設定頁,然後將撥給客戶端(client)鍵盤及滑鼠的「Remote」項目,分別設定為「No」。然後再於桌面上右按滑鼠鍵,選「內容」進入「設定值」頁面後,點選第二個顯示器,再勾選「將我的Windows桌面延伸到這個監視器」方格。

接著在「VirtualBox」啟動虛擬電腦,再用滑鼠將「VirtualBox」視窗由主顯示器向右推。這時虛擬電腦的視窗轉移到另一個螢幕來,但主機滑鼠仍拳握著控制權。只要在「VirtualBox」視窗右下角,點一下「滑鼠」圖示,停用主機的滑鼠,這樣虛擬電腦的滑鼠指標,便會交由之前分配給客戶端的滑鼠來操控了。然後再按下鍵盤右邊的Ctrl鍵,便會由之前分配給客戶端的鍵盤,以對應虛擬電腦的輸入。然後在虛擬電腦那邊按下鍵盤右邊的Ctrl + F組合鍵,便可切換至全屏幕模式,感覺與單機操作無異。以後每次開機使用時,按照這段指示的做法來將主機的權限分享給虛擬電腦使用便可。

[共用資料夾設定]
要讓Virtualbox的Windows可跟原來主電腦的Windows共享同一個資料夾,方便交換檔案之用,可依下列方法 (Virtualbox 版本4.1或以上):

在Virtualbox的Windows上端「裝置」-->「共用資料夾」,在「共用資料夾」內的「機器資料夾」,到右邊的「+」資料夾圖示按一下,「資料夾路徑」,選「其他」,選一個要共用的檔案夾,再於「自動掛載」及「永久性」項目打勾。

然後再到Virtualbox的Windows上端「裝置」-->「安裝Guest Additions」,再到「檔案總管」內的左邊「VirtualBox Guest Additions」雙擊,正式安裝Guest Addition,完成後再重新啟動電腦,這樣再到「檔案總管」,於左邊便可發現「共用資料夾」顯示及成功可使用。


win虛擬機器系列影像檔下載:
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ 
win虛擬機器中文化
http://blog.xuite.net/yh96301/blog/458515495-Windows+10虛擬機器中文化

2016年12月8日 星期四

EXCEL 必學技/交叉查表浪費大量時間? 用這招幫你省下 90% 搜尋時間

在整理資料時常常遇到需要「對照資料」,尤其是像分機號碼、銀行代號等代碼,你都怎麼處理呢?如果你是手動搜尋的話,那你一定浪費了很多寶貴的時間,在這篇文章好手要教你使用一個 Excel 函數,只要簡單幾個字,就可以幫你節省大量比對資料的時間,一定要學起來!


範例情境設定

在本文的範例,好手模擬一個時常使用到的「客戶匯款資料表」,要轉帳給客戶時,常常找不到銀行代號,如果是使用人工匯款甚至需要填寫分行名稱、代號,搞得一個頭兩個大。現在學會這招,你只要2秒鐘就能完成!
在第一個 Sheet 準備了一個簡化過的客戶資料表,包含「客戶姓名」、「銀行名稱」和「銀行代碼」三兩個欄位,其中銀行代碼是自動跳出,可以省去許多搜尋分行代碼的時間。


另外在第二個 Sheet 準備了一個網路上都搜尋得到的銀行代碼表,包含了「分支機構名稱」和所對應到的「銀行代號」


透過 VLOOKUP 函數來快速查表

接下來,我們要使用 EXCEL 提供的資料搜尋函數 VLOOKUP 來完成我們要「輸入銀行/分行名稱」並自動找出「銀行/分行代號」的需求。
先選擇要自動填入資料的儲存格,並且在上邊資料編輯列輸入「=VLOOKUP( 」,再按下旁邊的 【fx】鈕,就可以跳出如下圖「函數引數」輔助視窗。


使用 VLOOKUP 函數共需要輸入四個參數 (設定值),一一說明如下:
VLOOKUP 函數 參數說明:
  1. Lookup_value
    想要在「對照表」中尋找的資料,可以輸入儲存格的參照號碼 (如 B5) 或者直接輸入文字。
  2. Table_array
    「對照表」的範圍,稍後會說明如何設定。
  3. Col_index_num
    要回傳的資料在「對照表」的第幾欄 (從1開始算)。
  4. Range_lookup
    是否使用模糊搜尋,通常建議輸入 FALSE。
設定 Table_array 的方法
點選在 Table_array 文字方塊的旁邊的 image ,再使用滑鼠拖拉整個「對照表」涵蓋的範圍。


注意:
作為搜尋資料用的欄位必須在選取範圍的第一欄 (最左邊),才能正確找到資料。
如果正確輸入,當按下【確認】以後,就會看到原本空白的儲存格已經自動填入了資料,以後只需要把【銀行名稱】欄位輸入正確後,就可以自動帶出銀行代碼囉!

參考網址:https://www.soft4fun.net/software/docs-translate/excel-functions-vlookup.htm




 
 

辦公應用/如何在 PDF 文件中輸入文字及簽名


PDF一般無法輸入資料,通常要印出之後,再寫上去,如市府所辦聯誼,真辛苦,但透過 Adobe Reader 內建的簽章工具,就可以輕鬆在 PDF 上加入文字,甚至加上自己的親手簽名。

在 PDF 文件中輸入文字

Step 1.
當你用 Adobe Reader 打開 PDF 文件時,右上角會出現【Sign】這個工具。點擊開啟後,點選【Add Text】,接著在要輸入文字的點擊滑鼠左鍵並輸入文字。

Step 2.
你可以任意更改文字內容、位置,一但存檔後,所有輸入的資訊都不能再修改。



在 PDF 中加入親手簽名

至於簽名欄位!同樣的我們也可以使用簽章工具來加上你自己的親手簽名。
Step 1. 拿起你身邊的任一張白紙,在空白處簽名並用拍下清楚照片,再傳到電腦上。
Step 2. 使用影像處理工具對簽名進行裁切,刪除不必要的空白區塊
Step 3.
在簽章工具中點選【Place Signature】準備放置簽名
Step 4.
選擇【Use an image】選項,並挑選剛才裁切過後的簽名圖片
Step 5.
為了讓文件清楚印刷,簽名文字一律會以黑白顯示。檢視確認沒問題後,按下「Accept」就可完成確認。
Step 6.
同樣的,你可以把簽名放在文件中的任何地方,也可以依據版面設計調整簽名的大小。


參考網址:https://www.soft4fun.net/how-to/tips/how-to-add-signature-and-text-in-pdf.htm