星期日, 12月 20, 2009

2010年1月課表

星期日 星期一 星期二 星期三 星期四 星期五 星期六





1




2




3




4




5
PHP全修班-6
6




7
PHP全修班-7
8




9




10
東區C-1-2
11




12
PHP全修班-8
13




14
PHP全修班-9
15




16




17
東區C-3-4
18




19
PHP全修班-10
20




21
PHP全修班-11
22




23




24
東區C-5-6
25




26
PHP全修班-12
27




28
東區C-1
29




30




31









星期二, 12月 01, 2009

十二月將開PHP&MySQL全修班

十二月將開PHP&MySQL全修班,這一班將著重在PHP語法介紹,
不談基本語法,也不用商業軟體,課程將以免費的NetBeans
及Notepad++兩套軟體來編輯PHP網頁,教材部分為自編教材
,課程中會提供PDF檔案給各位,建議學員有基本網頁設計基礎。
如果想要由基本網頁設計開始,建議可選擇「網頁視覺設計專班」
學習。

2009年12月課表

星期日 星期一 星期二 星期三 星期四 星期五 星期六





1
東區 C-7
2




3
東區 C-8
4




5




6
VB遊戲設計講師試講
7




8
東區 C-9
9




10
東區 C-10
11




12




13
館前C語言 1-2



14




15
PHP全修班-1
16




17
PHP全修班-2
18




19




20
館前C語言 3-4



21




22
PHP全修班-3
23




24
PHP全修班-4
25




26




27
館前C語言 5



28




29
PHP全修班-5
30




31






星期六, 11月 21, 2009

C語言推薦書籍

C語言課程中所使用的講義,是參考過去的經驗與歷年學員的問題
累積而成,所以我並沒有特別參考某一本書或網站來編輯。
但初學C語言,手邊確實得有本參考書可以翻閱,二十年前我也是如此,
只是我在二十年前用的書已經沒有販售,無法推薦。
近日參考坊間書籍,我推薦旗標的「C語言教學手冊(四版)」。
旗標的「 C語言教學手冊(四版)」的書本封面為:

請點選圖示或連結就可以線上訂閱圖書..

如果有其他朋友推薦C語言入門書籍,煩請跟我聯絡,我會放在部落格上介紹。
C可說是很多程式語言的源頭,請大家多做練習,由練習中找到不懂的地方再做
提問,希望大家都能進步。

星期四, 10月 29, 2009

規劃MySQL函數介紹專欄

之前於RunPC雜誌所介紹的MySQL屬於大範圍的資訊分享,
預計年底或明年將一系列介紹MySQL內函數的使用。
MySQL擁有相當多的函數, MySQL內就可以作基本的字串
分析..條件判斷..數值分析..這些動作 其實不必由PHP 進行..
MySQL就可以作了。

星期一, 10月 26, 2009

C++課程:例外處理之修改

以下程式碼為上課提供並做修改的部分:

#include
#include
using namespace std;
class DivideByZero {
public:
DivideByZero(int n, int d) : num(n), denom(d), message("Divide by zero") {}
~DivideByZero()
{ cout << "Bye~ " << endl; }
int getNumerator() {return num;}
int getDenominator() {return denom;}
string getMessage() {return message;}
private:
int num;
int denom;
string message; };
int main()
{
int x = 5;
int y = 0;
int result;
try { if (y == 0) { throw DivideByZero(x, y); }
result = x/y; }
catch (DivideByZero e) {
cout << e.getMessage() << endl;
cout << "Numerator: " << e.getNumerator() << endl;
cout << "Denominator: " << e.getDenominator() << endl; }
cout << "Goodbye" << endl;
return 0;
}
這裡的問題是解構子會被執行兩次。
其實Throw 時及 new 出來的DivideByZero物件的建構子均有執行到的,
只是目前只有提供 DivideByZero(int n, int d)這一個建構子,
所以沒有傳參數進去就不會使用這個建構子。

改成以下語法就可以減少物件的產生:

try
{
if (y == 0)
{
throw new DivideByZero(x, y);
}
result = x/y;
}
catch (DivideByZero *e)
{
cout <<>getMessage() << endl;
cout << "Numerator: " <<>getNumerator() << endl;
cout << "Denominator: " <<>getDenominator() << endl;
delete e;
}
cout << "Goodbye" << endl;

ASP.Net 課程中使用Access與SQL Server Express檔案

ASP.Net 課程中使用Access與SQL Server Express檔案。
但這兩種方式均不太適合用於實際對外服務上,資料庫大
小或資料庫同時連線人數均有若干限制。
目前進階課程已經是全部都講資料庫相關工具了,我想我會
再做修改,儘量於最後一天課程能轉換到SQL Server Express
上操作,讓大家有個概念。

Plurk與Facebook帳號

目前我的Plurk與Facebook帳號:
Plurk為:http://www.plurk.com/jiannrongwork
Facebook為:http://www.facebook.com/yeh.jiannrong
歡迎各位將我加入..原則上我發佈的消息會以巨匠課程為主

如果各位有需要,可以把我加入吧..

星期日, 10月 25, 2009

2009年11月課表

星期日星期一星期二星期三星期四星期五星期六
1




2




3




4




5




6




7




8




9




10
東區 C-1
11




12
東區 C-2
13




14
講師受訓,暫不安排



15




16




17
東區 C-3
18




19
東區 C-4
20




21
另有其他活動安排


22
另有其他活動安排
23




24
東區 C-5
25




26
東區 C-6
27

ww

28




29




30









星期三, 9月 30, 2009

2009年10月課表

星期日星期一星期二星期三星期四星期五星期六





1
板橋 C&C++入門-4
2




3




4




5

6
板橋 C&C++入門-5
7

8
板橋 C&C++進階-1
9

10




11




12
東區VC-1
13
板橋 C&C++進階-2
14
東區VC-2
15
板橋 C&C++進階-3
16
東區VC-3



17




18




19
東區VC-4
20
板橋 C&C++進階-4
21
東區VC-5
22
板橋 C&C++進階-5
23
張小姐時間
24




25




26
整理資料
27
整理資料



28
劉先生時間
29




30




31
暫不安排活動



星期一, 8月 31, 2009

板橋分校C語言第一階段與第二階段上課範例檔案下載

板橋分校C語言第一階段與第二階段上課範例檔案下載網址為http://rapidshare.com/files/273856424/c.zip,如果各位於九十天內沒有下載,該連結會自動失效。

星期五, 8月 21, 2009

2009年9月課表

星期日 星期一 星期二 星期三 星期四 星期五 星期六





1
保留時段



2




3
保留時段



4




5




6




7
東區VB-1
8
保留時段



9
東區VB-2
10
保留時段



11
東區VB-3
12
信義VB-1-2
13




14
東區VB-4
15
保留時段



16
東區VB-5
17
保留時段



18




19
信義VB-3-4
20




21
東區VB-6
22
板橋C-1



23
東區VB-7
24
板橋C-2



25
東區VB-8
26
信義VB-5-6
27




28
東區VB-9
29
板橋C-3



30
東區VB-10





星期日, 8月 09, 2009

PHP檔案下載

下載的檔案與實際的檔案不同:


<?php

include("auth1.php"); //可不加上此行

header("Content-type: text/html; charset=utf-8");

$file="./9707.zip"; // 實際檔案的路徑+檔名

$filename="0714.zip"; // 下載的檔名

//指定類型

header("Content-type: ".filetype("$file"));

//指定下載時的檔名

header("Content-Disposition: attachment; filename=".$filename."");

//輸出下載的內容。

readfile($file);

?>


開啟網頁前的認證(auth1.php ):


<? header("Content-type: text/html; charset=utf-8");

if (empty($_SERVER['PHP_AUTH_USER'])) {

header('WWW-Authenticate: Basic realm="Please input"');

header('HTTP/1.0 401 Unauthorized');

echo '請輸入正確的帳號及密碼, 不可以取消!';

exit;

} else {

$correctName="pcschool";

$correctpwd="mysql" ;

if (($_SERVER['PHP_AUTH_USER'] != $correctName) or

($_SERVER['PHP_AUTH_PW'] !=$correctpwd)){

echo "登入失敗,請開啟新的瀏覽器重新登入";

}

}

?>

星期六, 8月 01, 2009

head與java script讓網頁自動轉向

自動轉向,是指使用者參觀某一網頁時,自動將網頁轉換到其它網頁。轉向的網頁位址可以是網站內的其它網頁,也可以是其它網站。 自動轉向技術主要用於以下的部分:依使用者瀏覽器的版本判斷轉移到指定瀏覽器的網頁版本;當網站的網域名稱變更或移除後後將網址轉到到新網域域內。

Meta Refresh Tag自動轉向方式搜尋引擎能夠自動檢測出來,頁面定時重新整理標幟(Meta Refresh Tag)只能放在HTML程式碼的<HEAD>區裡。


如下所顯示:


程式碼<meta http-equiv="refresh" content="10" url=http://jiannrong.blogspot.com/">


其中的「10」是告訴瀏覽器在頁面載入10秒鍾後自動跳轉到http://jiannrong.blogspot.com/這個網頁。用Meta Refresh標幟進行轉向,建議時間設定在10
秒左右,讓使用者知道網頁即將轉換。


「java script」自動轉向法


由於不能解析java script,所以搜尋引擎無法察覺(自動檢測到)用java script指令碼進行的自動轉向。java script自動重向程式碼可以放在網頁的任何位置上,如果要求立即轉向,可以放入網頁的<head>區內的最上面。用
java script設計轉向的範例如下:


範例1:

程式碼<script LANGUAGE="java script">

<!--

window.location="http://jiannrong.blogspot.com/";

// -->

</script>


範例2:

程式碼<script language="java script">

<!--

location.replace("http://jiannrong.blogspot.com/");

-->

</script>


用java script設計網頁轉換有一個好處:轉換時的目標網頁不會保留在瀏覽器的歷史記錄中,如果使用者按下返回按鈕返回,將回到轉換前的網頁,而不是包含java
script自動轉換程式碼的轉換頁面。

星期四, 7月 16, 2009

民國98年8月課表

星期日星期一星期二星期三星期四星期五星期六





1
東區VC-3-4
2




3




4
東區PHP全修-5
5




6
東區PHP全修-6
7




8
東區VC-5
9




10
板橋C語言-1



11
東區PHP全修-7
12
板橋C語言-2



13
東區PHP全修-8
14
板橋C語言-3


15
東區VC-6-7
16




17
板橋C語言-4



18
東區PHP全修-9
19
板橋C語言-5



20
東區PHP全修-10
21
板橋C語言-6



22
東區VC-8-9
23




24
板橋C語言-7


25
東區PHP全修-11
26
板橋C語言-8



27
東區PHP全修-12
28
板橋C語言-9



29
東區VC-10
30




31









星期二, 7月 14, 2009

回覆jungle關心「打算開始整理PHP的問與答」這一篇的進度

回覆jungle關心「打算開始整理PHP的問與答」這一篇的進度。
這一篇所列的項目的確有在整理,但因現在有幾件事情準備
或正在進行,所以這一部份整理的結果會延後張貼於部落格上。
1.巨匠總公司安裝程式語言線上教學課程,目前正規劃C++
2.RunPC雜誌規劃MySQL專欄介紹,進行中
所以很抱歉,我必須先把手邊這三個計畫完成後才會回過頭來
整理部落格上的資料..因為我的時間已經滿了..謝謝各位的關心..

星期一, 7月 13, 2009

正規表示式:中文

限制輸入中文可用: [\u4e00-\u9fa5] 
例如字串中只能輸入中文:
^[\u4e00-\u9fa5]{0,}$

當FormView新增資料後,可以直接轉換到另外一個網頁

當FormView新增資料後,可以直接轉換到另外一個網頁
Protected Sub FormView1_ItemInserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.FormViewInsertedEventArgs)

Response.Redirect("gridview2.aspx")

End Sub
轉換到另外一個網頁後可由GridView1顯示最新一頁紀錄。請加上If Not Page.IsPostBack Then進行判斷,
這樣頁次才能順利切換。另外,請留意這語法不能放在Form_Load內。

Protected Sub GridView1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)

If Not Page.IsPostBack Then
GridView1.PageIndex = GridView1.PageCount - 1
End If

End Sub

樣版欄位內的Calendar被點選後,希望把值帶給另一個textbox樣版欄位

若樣版欄位內的Calendar被點選後,希望把值帶給另一個textbox樣版欄位,
若網頁與程式碼沒有分離,當Calendar被點選後,會發生的事情如下
Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)

Dim tb As TextBox = Me.FormView1.FindControl("HireDateTextBox")
tb.Text = sender.SelectedDate.ToString()

End Sub
如果網頁與程式碼分離,當Calendar被點選後,會發生的事情如下
Protected Sub Calendar2_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)

Dim SenderCalendar As Calendar = CType(sender, Calendar)

Dim tb As TextBox = Me.FormView1.FindControl("HireDateTextBox")
tb.Text = SenderCalendar.SelectedDate.ToString()

End Sub

Calendar本身也得作型別轉換

(ASP.Net) FormView1.DefaultMode變更

FormView1.DefaultMode代表FormView預設的模式,所以若要變更預設模式,

請呼叫FormView1.ChangeMode( ) ,ChangeMode內分別為

FormViewMode.ReadOnly:唯獨

FormViewMode.Edit:更新

FormViewMode.Insert:插入

以下透過三個按鈕變更FormView1的模式

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
FormView1.ChangeMode(FormViewMode.ReadOnly)
End Sub

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
FormView1.ChangeMode(FormViewMode.Edit)
End Sub

Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
FormView1.ChangeMode(FormViewMode.Insert)
End Sub

星期三, 6月 24, 2009

驗證網址

驗證網址:

^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$



首先說明*與+與?的不同。


*代表前面的項目重複0~無限次。例如zo*代表有z與zoo等各種可能性,也就是{0,}

+*代表前面的項目重複1~無限次。例如zo+代表zo與zoo,但不包括z,也就是{1,}

?代表前面的項目重複0次或1次。例如do(es)?代表do或does也就是 {0,1}


以下就開始逐步分析

1.

^http://

^ 和 $ 搭配運用 , 代表符合某字開始, 某字結束。什麼字開始呢? http://

2.

[\w-]+

代表任意英文或數字或-可重複一次以上

3.

([\w-]+\.)

代表任意英文或數字或-可重複一次以上後接著輸入.

4.

([\w-]+\.)+

代表「任意英文或數字或-可重複一次以上後接著輸入.」可以重複一次以上

5.

[\w-]+

代表任意英文或數字或-可重複一次以上

\w+

代表數字或英文字可重複一次以上

4.

([-+.]\w+)*

代表-或+或.加上任意數字或英文字可重複0次以上

5.

@\w+

@符號之後可接多個英文或數字

6.

/[\w-./?%&=]

可輸入任意字或-或/或?或&或=

7.

(/[\w-./?%&=]*)?

可出現0到一次

任意字或-或/或?或&或=一般都是出現在網址的最後..

驗證Email地址第二種方法

驗證Email地址第二種方法:

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*



首先說明*與+與?的不同。


*代表前面的項目重複0~無限次。例如zo*代表有z與zoo等各種可能性,也就是{0,}



+*代表前面的項目重複1~無限次。例如zo+代表zo與zoo,但不包括z,也就是{1,}


?代表前面的項目重複0次或1次。例如do(es)?代表do或does也就是 {0,1}


以下就開始逐步分析

1.

^\w+

^ 和 $ 搭配運用 , 代表符合某字開始, 某字結束。什麼字開始呢? \w代表 [a-zA-Z_0-9] 數字或是英文字,而這些任意字
是可以重複一次以上。也就是說email第一個字一定要是英文或數字。

2.

[-+.']

代表可以輸入-或+或.或'

3.

\w+

代表數字或英文字可重複一次以上

4.

([-+.]\w+)*

代表-或+或.加上任意數字或英文字可重複0次以上

5.

@\w+

@符號之後可接多個英文或數字

6.

([-.]\w+)*

與第四點相同,代表-或+或.加上任意數字或英文字可重複0次以上

7.

\.\w+

代表.之後接任意英文或數字,而.之後的英文或數字可重複一次以上

8.

[-.]\w+

代表-或.之後接多個英文或數字

9.

([-.]\w+)*

-或.之後接多個英文或數字這樣的組合可重複0次以上



整段的意思是

在@之前,必須是英文或數字開始,若之後接-或.或+或'等字必須搭配英文或數字。
@之後至少接一個點.,若是-或.開始的字必須搭配英文或數字。

驗證Email地址第一種方法

驗證Email地址第一種方法:
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$


首先說明*與+與?的不同。


*代表前面的項目重複0~無限次。例如zo*代表有z與zoo等各種可能性,也就是{0,}



+*代表前面的項目重複1~無限次。例如zo+代表zo與zoo,但不包括z,也就是{1,}


?代表前面的項目重複0次或1次。例如do(es)?代表do或does也就是 {0,1}


以下就開始逐步分析

1.

^\w+

^ 和 $ 搭配運用 , 代表符合某字開始, 某字結束。什麼字開始呢? \w代表 [a-zA-Z_0-9] 數字或是英文字,而這些任意字
是可以重複一次以上。也就是說email第一個字一定要是英文或數字。

2.

[-+.]

代表可以輸入-或+或.

3.

\w+

代表數字或英文字可重複一次以上

4.

([-+.]\w+)*

代表-或+或.加上任意數字或英文字可重複0次以上

5.

@\w+

@符號之後可接多個英文或數字

6.

([-.]\w+)*

與第四點相同,代表-或+或.加上任意數字或英文字可重複0次以上

7.

\.\w+

代表.之後接任意英文或數字,而.之後的英文或數字可重複一次以上

8.

[-.]\w+

代表-或.之後接多個英文或數字

9.

([-.]\w+)*

-或.之後接多個英文或數字這樣的組合可重複0次以上



整段的意思是

在@之前,必須是英文或數字開始,若之後接-或.或+等字必須搭配英文或數字。
@之後至少接一個點.,若是-或.開始的字必須搭配英文或數字。

星期一, 6月 22, 2009

RegularExpressionValidato屬性:ValidationExpression Part2

我於2007年11月24日整理「RegularExpressionValidato屬性:ValidationExpression」,不過該文只是ValidationExpression的基礎,其實正規表達式還有以下的定義:

計算數量用的符號
? 代表前面的項目重複0次或1次
* 代表前面的項目重複0~無限次
+ 代表前面的項目重複1~無限次


而 ^ 和 $ 搭配運用 , 表示符合某字開始, 某字結束的字串

我們可以使用預先定義的符號來定義文字所屬類別:
\d 等於 [0-9] 數字
\D 等於 [^0-9] 非數字
\s 等於 空白字元
\S 等於 非空白字元
\w 等於 [a-zA-Z_0-9] 數字或是英文字
\W 等於 [^a-zA-Z_0-9] 非數字與英文字

例如以下的內容:


整數或者小數:^[0-9]+\.{0,1}[0-9]{0,2}$
只能輸入數字:^[0-9]*$
只能輸入n位的數字:^\d{n}$
只能輸入至少n位的數字:^\d{n,}$
只能輸入m~n位的數字:^\d{m,n}$
只能輸入有兩位小數的數字:^[0-9]+(.[0-9]{2})?$
只能輸入有1~3位小數的數字:^[0-9]+(.[0-9]{1,3})?$
只能輸入非零的正整數:^\+?[1-9][0-9]*$
只能輸入非零的負整數:^\-[1-9][]0-9"*$
只能輸入長度為3的字串:^.{3}$
只能輸入由26個英文字母組成的字串串:^[A-Za-z]+$
只能輸入由26個大寫英文字母組成的字串:^[A-Z]+$
只能輸入由26個小寫英文字母組成的字串:^[a-z]+$
只能輸入由數字和26個英文字母組成的字串:^[A-Za-z0-9]+$

以下兩個例子請大家參考


驗證Email地址:有兩種方式-->

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*


驗證網址:

^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$



參考網址:微軟MSDN:Regular Expression Syntax (Scripting)

星期五, 6月 12, 2009

2009年7月份課表

星期日 星期一 星期二 星期三 星期四 星期五 星期六





1




2
重慶asp.net-9
3




4




5




6




7
重慶asp.net-10
8




9




10




11




12




13




14




15




16




17




18




19




20




21
東區PHP全修-1
22




23
東區PHP全修-2
24




25
東區VC-1-2
26




27




28
東區PHP全修-3
29




30
東區PHP全修-4
31









星期三, 6月 10, 2009

IIS安裝

1.IIS請在.net framework之前安裝,並啟動
2.安裝.Net Framework SDK 快速入門組態精靈


IIS 若比 .Net Framework 晚安裝,則安裝完後執行 aspnet_regiis -i 註冊 ASP.NET 即可
該檔案位於 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 路徑下 (預設安裝的話)

安裝順序及圖示我七月份再把圖片放上來..

浮動IP或內部IP申請DNS服務

關於浮動IP或內部IP申請DNS服務,我查了三家公司,目前都是要付費的,免費服務已經停止,我的舊有帳號服務也不能啟動,一定要付費:
http://www.no-ip.com/
http://www.dyndns.com/
http://www.everydns.com/
至於是不是有免費的DNS服務
我還在查..
稍晚提供相關資訊給各位..

星期四, 5月 28, 2009

2009年6月課表

星期日 星期一 星期二 星期三 星期四 星期五 星期六





1
東區asp.net-7
2
重慶asp.net-1
3
東區asp.net-8
4
重慶asp.net-2
5
東區asp.net-9
6




7




8
東區asp.net-10
9
重慶asp.net-3
10




11
重慶asp.net-4
12




13




14
樹林VB-1、2



15




16
重慶asp.net-5
17




18




19




20




21
樹林VB-3、4



22




23
重慶asp.net-6
24




25
重慶asp.net-7
26




27




28
樹林VB-5



29




30
重慶asp.net-8