Go Top

2019年1月21日 星期一

[學習] Bootstrap 折叠(Collapse)插件

Bootstrap 实例 - 折叠(Collapse)插件方法 http://www.runoob.com/bootstrap/bootstrap-collapse-plugin.html
Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo.
Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo.
Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo.
Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo.
閱讀更多 »

2019年1月17日 星期四

一些比較少人知道的 VisualStudio 偵錯功能

轉載:
這篇主要是針對微軟 VisualStudio Team 部落格的《7 lesser known hacks for debugging in Visual Studio》和《7 More Lesser-known Debugging Tactics for Visual Studio》這兩篇文章,做簡單的整理。
在 Heresy 來看,微軟的 Visual Studio 算是目前數一數二的程式開發環境。不過另一方面,它的功能也相當地多,多到一般人應該有超過七成的功能都沒有用過。而在這些從來沒用過、甚至從來不知道的功能裡面,其實有些是相當實用、相當方便的!
微軟在這邊就是列出了 7 + 7 個罕為人知的 debug 技巧,來分享給開發者;不過裡面有的內容是針對 C# 這類 managed code 的,有的則是針對原生 C++ 的,並非全部都可以使用。
而這邊 Heresy 則是稍微再重新整理一些 C++ 可以用、個人也覺得比較有用的出來了~
另外,這邊所列的功能,大多是在 Visual Studio 2015 就已經有的,不過還是有部分功能是 Visual Studio 2017 才有的;如果是 2017 才有的,這邊也會特別強調。

跳到特定的陳述式(Set Next Statement)

這個功能是在 Visual Studio 2015 就可以用的功能,而在 2017 版則是簡化了他的操作。
在 Visual Studio 中進行偵錯,中斷的時候,一般是可以使用 F10 來逐行執行程式,進行分析;另外也可以透過 Ctrl + F10(執行至游標處),直接執行到滑鼠游標所在的位置。
但是實際上,在偵錯模式是,Visual Studio 在原始碼的右鍵選單中,還有一個「設定下一個陳述式」(Set Next Statement)的功能(Ctrl + Shift + F10),可以直接讓 Visual Studio 無視原本的順序、跳到特定陳述式。
透過這樣的方法,就可以在不修改程式的情況下,透過偵錯模式,來調整程式的執行順序;例如可以跳過某些程式碼,或甚至直接跳回之前的段落。如果程式本身編譯要很久的話,這樣可以不用重新編譯的調整流程功能,某方面來說,也算滿實用的了。

Visual Studio 2017 中,則是進一步簡化這個功能的操作。
在 VS 2017 裡,在偵錯模式中斷的情況下,把滑鼠游標移到每一行程式碼的前面,都會有一個往右的綠色箭頭,代表本來的「執行至游標處」,只要點下去,他就會依序執行到這一行。
而如果在此時壓住鍵盤的 Ctrl 的話,綠色的箭頭就會變成黃色的,而此時點下去,他就是「設定下一個陳述式」的功能,可以讓 Visual Studio 把標記移到這邊,告訴他接下來要執行這邊的程式碼。
下面的動畫圖,就是官方提供的示意:

修改變數的值

Visual Studio 在偵錯時另一個有趣的功能,是許允開發者可以不修改程式碼、直接修改變數的值。
也就是說,如果偵錯進行到一半,發現某個變數計算錯誤了,此時可以選擇不要修改程式重新偵錯,而是直接把這個值修改成正確的值,然後繼續執行下去。
而要在偵錯時修改變數的值,有三種方法。
  1. 在「資料提示」(DataTips)的地方直接修改
    在偵錯模式時,把滑鼠游標移動到變數上,會出現一個小小的浮動視窗、顯示這個變數的名稱和值。而這時候,點選他的值的部分,就可以修改他的值,然後繼續偵錯了。
  2. 在變數視窗(自動變數、區域變數、監看式)(Autos, Locals, Watch windows)中修改
    當透過自動變數、區域變數或監看式的視窗來觀察變數的資料的時候,用滑鼠雙集值的位置,也可以修改變數的數值。
  3. 使用「即時運算視窗」(Immediate window)修改
    在「即時運算視窗」裡面,可以直接在這邊修改變數的值。
    這個視窗的開啟方法,是點選工具列的「偵錯」、「視窗」、「即時運算」。
    不過這部分 Heresy 以 C++ 專案測試總覺得怪怪的,像是要把整數 x 改成 10 的話,不能輸入「x=10;」而是得輸入「x=10」…

在「呼叫堆疊」顯示參數值(Show parameter values in the Call Stack)

Visual Studio 的「呼叫堆疊」(Call Stack)視窗可以很方便地看出來目前程式執行的地方,是從那些函式一路呼叫下來了,相當地方便。
而實際上,他還有一個預設被關閉的選項、「顯示參數值」(Show Parameter Values ),在開啟後是可以讓偵錯時更方便地了解函式呼叫的狀況的~
只要在「呼叫堆疊」的視窗按右鍵,就可以找到這個選項了。本來只會顯示有哪些參數,開啟之後就會直接把呼叫時所傳進來的參數值也顯示出來了。
這個視窗的開啟方法,是點選工具列的「偵錯」、「視窗」、「呼叫堆疊」。

使用「平行監看式」來確認遞迴函式中的值(Look at values throughout recursive function calls)

「平行監看式」(Parallel Watch)這個視窗基本上是設計用來針對多執行序程式,同時監控不同執行序中的資料用的工具。
不過,他實際上也可以用來監控遞迴函式每個階段的狀態~
只要在偵錯狀態下開啟「平行監看式」(點選工具列的「偵錯」、「視窗」、「平行監看式」),並在各個欄位輸入要監看的式子、或是變數,接下來在執行遞迴函式的時候,就可以看到這些監看式在每次遞迴時的值了!

中斷點的進階使用

一般在使用 Visual Studio 的中斷點的時候,大多是會再要停止的程式碼前面,逐行加入中斷點,讓 Visual Studio 執行到這行的時候就停下來。
不過實際上,Visual Studio 的中斷點,事還有很多進一步的功能可以使用的!包括了可以設定中斷點的條件,或是去監看某個記憶體位址、當值有變化的時候中斷。這些中斷點的進階功能,都可以更方便地根據變數來做中斷的控制。

附加中斷條件
其中一個方法,是在中斷點上附加條件,只有在值有變化、或是符合指定條件時,才中斷程式。
要使用這個方法,基本上就是先透過本來的方法,在程式碼中加入中斷點(可以用快速鍵 F9);然後在中斷點的紅圈上按下滑鼠右鍵、選擇「條件」(condition)。接下來就只要在跳出的框框中,輸入自己需要的條件就可以了。

監控記憶體位址
而另一個只能用在原生 C++ 的方法,則是直接去監控記憶體位址,當變數值改變時就停止。
這個方法可以透過點選工具列的「偵錯」、「新增中斷點」、「資料中斷點」,來教出對應的視窗。在裡面,只要輸入變數的記憶體位址(或是用「&myVal」的形式)、以及對應的位元組數,就可以了。
這樣設定後,不管是在任何地方修改到這個變數,Visual Studio 都會停下來。所以如果是某個變數在不知道哪裡被修改的時候,這樣的中斷方式是非常有用的!
不過這邊也要注意,由於每次執行的時候,記憶體位址都會變化,所以當程式結束後,這個中斷點就會被停用;如果要重新啟用,則需要手動再做設定。

針對函式名稱中斷
Visual Studio 另外還有提供一個「函式中斷點」(Function breakpoint)的功能,可以讓使用者直接輸入函式名稱來完成設定。
透過這個方法來設定中斷點的好處,主要是可以不用手動去找到要中斷的函式的實際位置,只要知道名稱、就可以中斷了!
而這個方法的使用條件也很簡單,只要點選工具列的「偵錯」、「新增中斷點」、「函式中斷點」,然後再輸入函式名稱就可以了。

使用中斷點視窗檢查、管理所有中斷點
點選工具列的「偵錯」、「視窗」、「中斷點」,可以打開「中斷點」的視窗;在這個視窗裡面,可以看到所有的中斷點,同時也可以進行中斷點的新增。
當之前加了一堆中斷點,想要大量修改的時候,這個視窗會是相當好用的工具。

這篇就先寫到這裡吧~本來兩篇文章裡面,還有一些針對多執行序程式偵錯的技巧,目前是沒什麼需求,等之後有碰到再說吧~ :p
閱讀更多 »

線上編譯器

一般來說,要進行程式開發,或多或少都需要建立一個開發環境,才能來做開發。不過,如果臨時需要測試一個簡單的語法能不能運作的時候,要為此弄一個開發環境,有的時候會有點麻煩。
而這一篇,算是簡單介紹兩款 Heresy 知道的兩個支援多種不同程式語言的線上編譯器。可以用來做一些簡單的程式開發時的測試。

compile online </> com

除了一般像是 C++、C、C#、Java 等等語言外,也還支援 Matlb、R、SQLite SQL 等等~除了這些本機的程式外,他也支援網頁上的程式、或是標記語言,像是 HTML、CSS、JQuery、JQueryUI 等等。
要使用也相當簡單,只要選擇要測試的語言後,就可以在左邊輸入自己要測試的內容,然後按下左上方的按鈕(以 C++ 來說就是「Compile & Execute」),就會在右邊呈現結果了~
整個網站相當地乾淨、單純,對於自己要做測試來說,應該算是相當地便利~

ideone.com

一樣也是支援相當多總程式語言,C、C++、Go、Java 都有支援;另外,也支援 Node.js、SQL、PHP 等等。(還有支援 Text 是怎樣? o_O)
使用方法,就是在左邊選擇要使用的語言後,在右邊輸入程式碼的內容後,按下左下方的送出就可以了~
相較於「compile online </> com」,ideone 多了不少廣告,版面看來比較雜;不過,他在送出程式碼後,是會有一個網址,可以把自己的程式碼、以及執行結果傳給別人看的~如果要給別人看自己寫的程式、或是要和別人討論程式碼,ideone 應該算是個不錯的選擇。

基本上,這兩者都算是可以簡單測試程式的網站。不過,他也是有它的限制的,像是以 C++ 來說,如果有用到其他函式庫,那基本上就沒戲唱了~他大致上,就是拿來做 C++ 標準語法、或是 STL 的測試了。
而實際上,「compile online </> com」和「ideone」兩者雖然都可以拿來測試程式碼,不過在本質上,應該算是有當的差異的。「compile online </> com」基本上就是為了測試程式碼而發展出來的,所以要修改、執行都相當地方便~
相較之下,ideone 應該算是以程式碼片段的分享,為主要訴求?Heresy 個人是覺得 ideone 在程式碼的編輯上,沒那麼好用;但是相對的,他提供可以分享的功能,則是「compile online </> com」所缺乏的功能!
總之,這算是兩個實用的工具網站,有需要的人,就記下來以備不時之需吧~
閱讀更多 »

2019年1月14日 星期一

[test] 顯示 GitHub Gist 程式碼,並且套用(比較)一致的顯示風格

GitHub 是現在很熱門的程式碼管理工具,它甚至也提供了純粹用來分享程式碼片段的功能: Gist。甚至不需要註冊,就可以使用,也支援版本管理。當然,它也提供了在網頁上顯示程式碼的功能,只要複製要 分享的程式碼片段的頁面 左邊的 Embed this gist 內容,貼到 html 上即可。 貼上的 html 程式碼,長得像這個樣子: <script src="https://gist.github.com/tsaiid/6b4b20242367425726fb.js"></script>
閱讀更多 »

[教學] 如何在網頁blogger中插入程式碼

轉貼自: https://pjchender.blogspot.com/2015/03/blogger.html

有時候,我們會想在文章中插入語法,讓其他人可以比較清楚的瞭解,過去我常常是透過截圖的方式,但這麼做的缺點是,對方並不能直接複製貼上,那麼我們要怎麼在文章中插入語法呢?



像這樣:<pre class="codeblock prettyprint">
</pre>



首先在版面配置區插入HTML/JavaScript小工具的方式

STEP 1:


STEP 2:

STEP 3:

STEP 4:接著在HTML/JavaScript中貼入以下語法

在小工具中貼入以下程式碼

<style>
.post .codeblock {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 10pt;
overflow:auto;
background: #f0f0f0 url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAASwCAYAAAAt7rCDAAAABHNCSVQICAgIfAhkiAAAAQJJREFUeJzt0kEKhDAMBdA4zFmbM+W0upqFOhXrDILwsimFR5pfMrXW5jhZr7PwRlxVX8//jNHrGhExjXzdu9c5IiIz+7iqVmB7Hwp4OMa2nhhwN/PRGEMBh3Zjt6KfpzPztxW9MSAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzB8HS+J9kUTvzEDMwAAAABJRU5ErkJggg==) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:1000px;
line-height: 1.2em;
}
</style>

如圖所示

STEP 5:
接著只要把想要放在code裡面的語法用,開頭用: 
<pre class="codeblock ">
結尾用這個: 
</pre>
像是這樣
<pre class="codeblock">
中間可以插入你想放入的程式碼
</pre>

這樣就可以了 

STEP 6:當程式碼中包含「<>」時,需轉碼
如果程式碼中包含方角時,需要先把原本的程式碼轉碼,透過這個網站即可以輕易完成。


補充:自動將程式碼上色

我們除了可以用上方的色盤將自己的程式碼套色外,
像這樣
結果會像這樣
<pre class="codeblock ">

我們也可以另外安裝一段JavaScript讓他自己幫我們上色,
安裝的方法很簡單,一樣透過最上面所說的方法新增「HTML/JavaScript」,新增下述這段語法:
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
這時候只要在原本的class後面在新增一段prettyprint,程式碼就會自動套色了, 像是這樣: 
<pre class="codeblock prettyprint">
中間可以插入你想放入的程式碼
</pre>

閱讀更多 »

2019年1月13日 星期日

[C#][WinForm] 中華民國身分證字號(第七代)-驗證及產生器

【載點】 https://www.haolizi.net/example/view_8808.html

【更新記錄】

※更新日期:2016-08-13 17:30

※更新內容:

‧中華民國身分證字號(第七代) 序號產生並驗證


【原始碼特點】
      本軟體是一個WinForm的中華民國身分證字號(第七代) 序號產生並驗證。
■功能介紹
      可依照需要的選擇資訊如"縣市別"、"男性"、"女性"、"隨機"…等產生符規的身分證字號。
並提供驗證機制

閱讀更多 »

2019年1月12日 星期六

[C#]WinForm的簡易取色器


下載:https://www.haolizi.net/example/view_18616.html

【更新記錄】

※更新日期:2019-01-11 05:13

※更新內容:

‧對話方塊開啟時預設為"自訂色彩控制項"
----------------------------------------------------------------------------------

【原始碼特點】
‧本軟體是一個WinForm的簡易取色器。

■功能介紹
‧可使用系統顏色選擇器或螢幕取色器來查詢顏色值。


顏色選擇器由以下幾個部分組成:

•三種色彩空間的參數查詢
•用於ASS 和 HTML的16進制色彩值代碼
•從螢幕中一區塊,建立一個迷你截屏,然後從中取色

三種可用的色彩空間介紹:
•RGB顏色空間
RGB(red,green,blue)顏色空間最常用的用途就是顯示器系統,彩色陰極射線管,彩色點陣圖形的顯示器 都使用R、G、B數值來驅動R、G、B 電子槍發射電子,並分別激發螢光屏上的R、G、B三種顏色的螢光粉 發出不同亮度的光線,並通過相加混合產生各種顏色;掃描器也是通過吸收原稿經反射或透射而發送來 的光線中的R、G、B成分,並用它來表示原稿的顏色。RGB色彩空間稱為與設備相關的色彩空間,因為不同 的掃描器掃描同一幅圖像,會得到不同色彩的圖像資料;不同型號的顯示器顯示同一幅圖像,也會有不同 的色彩顯示結果。顯示器和掃描器使用的RGB空間與CIE 1931 RGB真實三原色表色系統空間是不同的,後者 是與設備無關的顏色空間。btw:Photoshop的色彩選取器(Color Picker)。可以顯示HSB、RGB、LAB和CMYK 色彩空間的每一種顏色的色彩值。
•HSB顏色空間
HSB(hue,saturation,brightness)顏色空間,這個顏色空間都是使用者桌上型電腦圖形程式的顏色表示, 用六角形錐體表示自己的色彩模型。










閱讀更多 »
Copyright © BCL BLOG | Powered by Blogger