顯示具有 Programming 標籤的文章。 顯示所有文章
顯示具有 Programming 標籤的文章。 顯示所有文章

2008年5月14日 星期三

《 PHP 》擷取中文字串發生的斷字問題


  1. big5 編碼字串


  2. //擷取字串前幾個字並避免截掉半個中文字,$strlen要擷取的字串長度
    function CuttingStr($str,$strlen) {
    if(strlen($str) > $strlen) {
    for($i=0;$i<$strlen;$i++) {
    $ch=substr($str,$i,1);
    if(ord($ch)>127) $i++;
    }
    $str= substr($str,0,$i);
    }
    return $str;
    }



  3. utf-8 編碼字串


  4. //擷取字串前幾個字並避免截掉半個中文字,$strlen要擷取的字串長度(以英文字母數計算,中文字需算二個字數)
    //此處直接傳入從資料庫讀出之UTF-8編碼字串
    function CuttingStr($str, $strlen) {
    //把' '先轉成空白
    $str = str_replace(' ', ' ', $str);

    $output_str_len = 0; //累計要輸出的擷取字串長度
    $output_str = ''; //要輸出的擷取字串

    //逐一讀出原始字串每一個字元
    for($i=0; $i //擷取字數已達到要擷取的字串長度,跳出回圈
    if($output_str_len >= $strlen){
    break;
    }

    //取得目前字元的ASCII碼
    $str_bit = ord(substr($str, $i, 1));

    if($str_bit < 128) {
    //ASCII碼小於 128 為英文或數字字符
    $output_str_len += 1; //累計要輸出的擷取字串長度,英文字母算一個字數
    $output_str .= substr($str, $i, 1); //要輸出的擷取字串

    }elseif($str_bit > 191 && $str_bit < 224) {
    //第一字節為落於192~223的utf8的中文字(表示該中文為由2個字節所組成utf8中文字)
    $output_str_len += 2; //累計要輸出的擷取字串長度,中文字需算二個字數
    $output_str .= substr($str, $i, 2); //要輸出的擷取字串
    $i++;

    }elseif($str_bit > 223 && $str_bit < 240) {
    //第一字節為落於223~239的utf8的中文字(表示該中文為由3個字節所組成的utf8中文字)
    $output_str_len += 2; //累計要輸出的擷取字串長度,中文字需算二個字數
    $output_str .= substr($str, $i, 3); //要輸出的擷取字串
    $i+=2;

    }elseif($str_bit > 239 && $str_bit < 248) {
    //第一字節為落於240~247的utf8的中文字(表示該中文為由4個字節所組成的utf8中文字)
    $output_str_len += 2; //累計要輸出的擷取字串長度,中文字需算二個字數
    $output_str .= substr($str, $i, 4); //要輸出的擷取字串
    $i+=3;
    }
    }

    //要輸出的擷取字串為空白時,輸出原始字串
    return ($output_str == '') ? $str : $output_str;
    }



  5. 使用 PHP5 新增加的函式


  6. //取得 utf-8 編碼的字串長度,這裡共 8 個字
    echo iconv_strlen('無標題文件abc', 'utf-8');
    //取得 utf-8 編碼的子字串,指定 從 0 開始取 20個字,結果是 "無標題文件1無標題文件2無標題文件3無標"
    echo iconv_substr('無標題文件1無標題文件2無標題文件3無標題文件4無標題文件5', 0, 20, 'utf-8');


2008年3月9日 星期日

《 YWE 》入門第一步:介紹和工具的準備

在很久以前 YWE 4.0 那時候吧,我發下宏願說要研究一下
然後還紀錄了一下如何用 XML 寫 Hello World! 但是事隔多年,我現在才要繼續研究
而且還是因為數位內容專題想借用它的介面來呈現,天啊,這是報應吧!

Anyway,開始紀錄一下 What's Yahoo! Widget Engine 有人會問說
和桌面程式哪裡不同啊,一樣嗎之類的話語,官方網站的確有說:

「Yahoo!奇摩Widget工具」是供您下載各式各樣 “Widget工具” 的一項服務。Widget工具是一種迷你應用程式,可在電腦桌面上單獨執行。Widget的功能包羅萬象,例如:查看氣象、閱讀即時新聞、檢視個人行事 曆,或玩玩小遊戲。Widget工具通常位在電腦桌面上,看起來像是張小圖片或小動畫,和一般的應用程式不同。

那開發人員又會提問,主要是用啥米程式語言和工具去架構呢?

每一個Widget工具都是運用「Yahoo!奇摩Widget Engine」製作出來的。「Yahoo!奇摩 Widget Engine」是一種JavaScript應用程式平台,在Windows和Mac OS X的作業環境都可使用。

那重點就勾勒出來了對吧!用 Yahoo!奇摩 Widget Engine 去構築整個 Widget 的模式,而該模式
是一種資料交換的介面,可以加入 JavaScript 的平台。

更詳細的介紹請洽 Yahoo!Widget 官方網站喔!
以我的桌面來說安裝完 Yahoo!Widget 之後的工具各代表啥米:


而開發人員必須專一個方便的小工具來助興:

他可以讓 .widget 的工具反轉成製作時的資料夾,讓我們可以對他作解析;
亦可以我們做好 Widget 之後,他自動幫我們壓縮成 .widget 的檔案給 YWE 去執行喔。
開發人員最好是安裝比較時間啦,我個人這樣認為。

##CONTINUE##

製作 Widget 範例的步驟:
  1. 規劃介面和功能
  2. 建立好 widget project 的架構(備註1)
  3. 用繪圖軟體製作,可能是去背的處理或是設計規劃頁面等等
  4. 編寫程式碼(備註2)
  5. 將 widget project 托移到 widget converter 並按下 convert
  6. 將產生的 .widget 納入工具列之中
  7. 啟用 Widget工具
備註1:
  • 如果以製作著的角度來說,這點可以非常隨性。
  • Project Name 之下,愛怎麼放就怎麼放,只要 .kon 的 xml 檔案在第一層。
  • 其他說明參閱 NKTalk 的說明文件
備註2:
  • .kon 是 XML 所構成的,而亦可以增加互動的效果,這部份由 Javascript 去處理。
  • 整個流程,最好是參閱 AJax 的觀念去思考。
以下是小範例:
  • 元素有:去背的介面和文字連結


  • <widget minimumVersion="4.0" version="0.1a1">
    <debug>on</debug>
    <window>
    <name>main_window</name>
    <title>Picture Widget</title>
    <width>228</width>
    <height>228</height>

    <image src="images/logo.png"/>
    <text>
    <name>Link</name>
    <data>NCUE</data>
    <size>25</size>
    <hOffset>65</hOffset>
    <vOffset>110</vOffset>
    <onMouseUp>
    openURL("http://www.ncue.edu.tw");
    </onMouseUp>
    </text>
    </window>
    </widget>



此 Widget 呈現效果為以下圖片展示:


雖然是非常簡單的範例,但是足以讓我們跨入門檻的第一不,希望下一次的進度會直接進入到
JavaScript 的傳遞和資料整合的部份,開始撰寫功能的程式碼。

後記:
我一直以來都用 Editplus 在編寫關於網頁相關的程式碼,於是為了寫 .kon 的檔案
我將 XML 複製一份改名為 Kon,現在 .kon 的檔案都有顏色區別了,這樣眼睛好看一些 :)

參考來源:
NKTalk 技術文件

2007年12月8日 星期六

《 PHP》.txt 轉 .xls ( 特定格式轉換 )

家裏的老大姐小小花前天跑來問我問題,我盡然被看得起啊(受寵若驚)
研究所的資料庫探勘課程要弄資料分析,據說教授丟了一堆.txt


3:
1025579,4,2003-03-29
712664,5,2004-02-01
1331154,4,2004-07-03
2632461,3,2005-07-22
44937,5,2004-06-22
656399,4,2003-09-20
439011,1,2004-01-22
1436762,3,2003-03-17
1644750,3,2003-03-19
2031561,4,2004-03-31
616720,4,2003-08-10
2467008,4,2004-03-15
975874,5,2004-02-09
701730,2,2005-10-05
1614320,4,2003-08-11
115498,3,2003-07-16
931626,2,2004-07-08
.........


檔案只列出部份而已,以上數據分別代表"顧客編號","評等","評分日期"
不過41kb的 .txt 還真多資料啊,在加上有一萬多個 .txt 檔案要處理到 SQL Server
小小花是說,轉成 Excel 檔會比較方便,然後他 Lab 的同學好像也都覺得
一個一個轉檔很麻煩,因為一萬多筆會累死人呢!

所以幫忙寫了一個小程式轉檔囉,以下是 php 的程式碼:

<?php
/*****************************************************
*
* 說明:大量讀取.txt,轉成.xls,針對檔案內容做的轉換
* 以下是部分檔案內容:
* 3:
* 1025579,4,2003-03-29
* 712664,5,2004-02-01
* 1331154,4,2004-07-03
* 2632461,3,2005-07-22
* 44937,5,2004-06-22
* ...
* 如果是別種檔案結構可能會有部份錯誤,見諒!
* 作者:寶尼
*
******************************************************/

// HTML 下載頁面
echo '<div align="center">';
echo '<h2>.txt 大量轉檔 .xls 程式</h2>';
echo '<h4>Author:Bernie (NCUE IM)<br/>2007/12/07</h4>';
echo '<p>Download</p>';

require('loadfile.php');

$i = 0; $flag = 0; $tmp = array(); $value = NULL;
// 讀取檔案
$tmp = openfile('./txt');
foreach($tmp as $data)
{
$tok = explode(".", $data);
$filename = $tok[0];
$filename_orginal = 'txt/'.$filename.'.txt';
$filename_translate = 'xls/'.$filename.'.xls';
$file = @fopen($filename_orginal,"r");
$file_translate = @fopen($filename_translate,"w");

while($buffer = fgets($file, filesize($filename_orginal))){
if($i++ == 0){
$value = $buffer;
}
else{
// 進行轉檔
$tok = explode(",", $buffer);
foreach($tok as $data){
$value .= $data;
if($flag != 2){
$value .= "\t";
$flag++;
}
else if($flag == 2){
$flag = 0;
}
}
}
}

$i = 0;
@fputs($file_translate, $value);
@fclose($file);
@fclose($file_translate);
$value = NULL;

echo '<a href="'.$filename_translate.'"> '.$filename.'</a><br/>';
}
echo '</div>';
?>


目前的方式會讓 /txt 底下的 .txt 檔案一次全部轉完並放到 /xls 底下,產生相同檔名的 .xls 檔案。因為我沒用過微軟另一個免費的大刀 MS SQL Server,所以不確定匯入外部資料的方式,是用那一種,反正只差在匯到資料庫而已,所以我的幫忙到此告一段落。

順便說一下,會知道 \t 在 excel 會放到下一個欄位,以及 \n 會換行是在如何用php將資料寫到Excel中 知道的,雖然是小技巧但是卻很屌,根本沒想到可以這樣互通有無啊,果真學到新的一技呢 :D

2007年12月3日 星期一

《 Java 》JavaMail 環境配置

工欲善其事,必先利其器,所以我們先到 Sun Micro 去 Download Classes

1) 下載的步驟這裡省略。
2) 將 javamail,jaf 解壓縮之後的幾個檔案複製到 C:\Program Files\Java\jdk1.6.0\jre\lib\ext
  • 說明:C:\Program Files\Java\ 是我的Java安裝路徑,jdk1.6.0是我的版本。請依照自己的路徑去作修正,只要放到當中的jre\lib\ext即可(言下之意是擴充extends,Sun Micro 設想真週到啊)。
  • javamail 的部份分別為:javamail\mail.jar,以及javamail\lib\ 底下的全部
  • jaf 的部份為:jaf\activation.jar
3) 接著,在環境變數下增加 C:\Program Files\Java\jdk1.6.0\jre\lib\ext
  • [我的電腦] 按右鍵 > [內容] > [進階] > [環境變數]
  • path 編輯,在最後加上 C:\Program Files\Java\jdk1.6.0\jre\lib\ext
  • 小心分號(;)
4) 如果有用編譯器的習慣記得將 jdk 的 Class 作更新的動作
  • JCreator:在 [Configure] > [Options] > [JDK Profiles] 會看到您的版本
  • 點選 [Edit] ,引入最新加入的全部檔案,這樣就可以用編譯器繼續 Coding 囉。

以上必須下載的檔案附在這裡,雖然說到目前為只是最新的,不過以後就不知道啦。
有需要的話,就自取 [JavaMail 1.41] [Jaf 1.11]囉。

2007年10月20日 星期六

《 JavaScript 》強制關閉網頁

close() Method 基於考量從 Netscape Navigator 3.0 起會出現對話視窗
只要將屬性值更換,就可以欺騙瀏覽器而達到關閉的效果囉。

在 window.close() 前面輸入程式碼


window.opener=null; window.close();



這樣就會強制關閉了 :D

2007年10月19日 星期五

《 思維 》PHP+MYSQL 扎實個人基本功

本文轉錄無名P_HP.world個人版文章
10句話:


1.不要依賴register_global=ON的環境,從你剛懂得配置php運行環境甚至尚不明白register_global的ON/OFF會對自己有什麼影響的那天起,就應該勇敢地把它設為OFF。
2.寫程序前看看怎麼用error_reporting.
3.不懂就問本身沒錯,但你需要在那之前查查手冊。
4.當然,你需要懂得使用手冊。手冊上找不到答案的時候,應該考慮下網絡上的搜索引擎
5.剛學會php+mysql之後,不要叫嚷著要寫論壇,要寫XXX。要明白,剛學會寫漢字並不表示你有能力寫詩。
6.在學web編程的時候,你應該先去認識html這個朋友。
7.有點能力後,試著回答新手的問題,不要看到自己懂的而別人不懂就沾沾自喜,扔下一名「簡單,那是基本的東西」就走更要不得。
8.思考是一個好習慣,不動手去寫就等於空想,什麼也沒有。
9.寫好一段程序,如果覺得很滿意,一周後再看一遍,也許你會認為它應該有所改變
10.有空多看看別人的程序,找出他人的不足或優點,自己掂量。


必定各取所需:


1.善於使用「引用」,它能直接影響到程序的效率。
2.善於用三元運算子,可以讓程式較精簡有效率(ex: _ : _ ? _)。
3.善於組織if...else...回圈。
4.盡量讓你的代碼清淅些(排版問題)。
5.編寫規範的mysql語句。



我正在經歷這一切,真的非常貼切和真實啊。
現在用 PHP5 根本不順,只能用到 PHP3或4的編成去完成任務和目的這樣不好。
要寫論壇模組,完整的系統?那是當然的啊 :D
不過是以後吧,先讓我慢慢融入基本功的文化裡面囉。

2007年9月2日 星期日

《 Blogger 》Hidden Tags

這篇是在參考堯@部落格中的如何製作熱門文章[BLOGGER]
然後還實做了他寫的JS部份,底下我直接貼上程式碼

假設要被隱藏的標籤為:_TAG

隱藏標籤( 文章 ):


<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name != "_TAG"'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
</b:if>
</b:loop>


隱藏標籤( 分類 ):


<b:widget id='Label1' locked='false' title='分類' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<b:if cond='data:label.name != "_TAG"'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:if>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>



這裡用這個方式製作最新文章的呈現,詳細的程式碼也是堯@部落格裡面的其中一篇。
蠻豐富的資訊,可以參考很久 :D

2007年8月14日 星期二

《 PHP 》Date() 完整運用

date

(PHP 3, PHP 4, PHP 5)

date -- Format a local time/date

Description

string date ( string format [, int timestamp] )

這是 http://tw2.php.net/ 一定查得到的資訊,通常會使用制式化的格式還取得
本地時間,格式如同那一堆有用的表格上面的參數


Example

$now_date=date('Y-m-d');
// 出現 2007-08-14 發文日期
echo $now_date;

$now_week=date('w');
// 今天是星期幾呢? 答案是:星期二
echo $now_week;

這個函式就是快在這裡,快速取得時間並將他格式化,也就是我們通常省略 int timestamp
這個參數,所以直接啟用本地時間。
##CONTINUE##
那如何使用 timestamp ?就要借用 mktime() 將時間轉為 UNIX 的 timestamp,因為
date()就是需要咩,直接舉個例子。

Example

$test_time='2007-08-06';
$time_tmp=explode('-',$test_time);
$time_date=mktime(0,0,0,$time_tmp[1],$time_tmp[2],$time_tmp[0]);
$time_week=date('w',$time_date);

// 2007-08-06 是星期幾呢? 答案是:星期二
echo $class_week;


關於切割字串 explode() 請看這一篇,這裡會略過。
其實只要傳成 UNIX timestamp,那就可以準確的使用 date(),不再只是取得本地時間而已,

活用 mktime()

$next_date=mktime(0,0,0,date('m'),date('d')+1,date('Y'));
$show_date=date('Y-m-d',$next_date);
// 明天的日期是? 答案是:2007-08-15
echo $show_date;

裡面的參數可以隨便亂代很好用。

2007年8月4日 星期六

《 PHP 》字串切割:strtok() v.s explode()

這一篇是比較一下兩個函數的差異,字串切割可以用到某些資料表示法,EX:聚集十進制表示法

程式碼:

// strtok(string1, string2)
$string1="This is a Test for strtok().";
$tok=strtok($string1," ");
while($tok)
{
echo "Part : $tok";
$tok=strtok(" ");
}

// explode(string2, string1)
$string2="This is a Test for explode().";
$tok=explode(" ", $string2);
foreach($tok as $value)
echo "Part : $value";


顯示效果如下:

=====================
Part : This
Part : is
Part : a
Part : Test
Part : for
Part : strtok().
=====================
Part : This
Part : is
Part : a
Part : Test
Part : for
Part : explode().
=====================

以非聚集十進制來說,區碼和數字是間隔的,除了最後一個區碼的地方改為 Sign Bit
所以可以好好利用字串切割來呈現這些資料表示。
感覺上還是 explode() 比較好用耶 :D

2007年8月3日 星期五

《 PHP 》Session 的疑惑

session 拿來儲存登入之後的資訊,但是熊熊會出問題
有去查 Google 大神,但是還是沒感覺到哪邊出問題,現在啟動的是替代方案。

Login 頁面:

if(!(strlen($_SESSION['id'])<1 || strlen($_SESSION['name'])<1))
{
$id=$_SESSION['id'];
$name=$_SESSION['name'];
}

而我在其他網頁會重複使用相同的變數名稱,每當該頁有 session_start()
不管 $name,$id...etc 是否有使用到,他的值一定會變樣(也就是植被更改)

某一頁(問題):

if(!(strlen($_SESSION['id'])<1 || strlen($_SESSION['name'])<1))
{
$id=$_SESSION['id'];
}

// SQL 區段
$id='46564122';
$query="select * from table where id='$id'";
$result=mysql_query($query);

只是連到這頁而已,完全沒用到 session 的變數(頂多是覆蓋)
但是呢,session的值再第三頁讀取發現他已經變樣了,變成剛剛的 46564122。

##CONTINUE##
替代方案(解決頁):

if(!(strlen($_SESSION['id'])<1 || strlen($_SESSION['name'])<1))
{
$id=$_SESSION['id'];
}

// SQL 區段
$ida='46564122';
$query="select * from table where id='$ida'";
$result=mysql_query($query);

竟然改一個變數名稱就可以解決( $id => $ida ),天啊~~
不知道是為啥,這樣來看不用到 session 就別 session_start() 的樣子,
這有可能讓別頁的相同名稱變數改到我的資訊,實在驚人。
應該有正確的解釋方式吧?我只能暫時先這樣做,改天要好好找出問題。

2007年7月28日 星期六

《 PHP 》不定名稱函數( variable function )

做個 PHP3 的功能介紹
定義 : 利用變數動態的選擇適用的函式

(之前碰 PHP 真的不知道,雖然這是舊的功能,但是對我來說挺新鮮的 :) )

function a()
{
echo "This is a()";
}

function b()
{
echo "This is b()";
}

function c()
{
echo "This is c()";
}

$tmp=null;
// $tmp maybe a, b, c
if($_GET['fun'])
{
$tmp=$_GET['fun'];
$tmp();
}
當我輸入 http://localhost/test.php?fun=a 之後,我的 browser 顯示: This is a() 。
果然是成功了,不過為了 Dynamic Bidding 或許會寫上很多 Function
還是可以利用在哪些放面呢? 不知道耶,再想想囉 :D

2007年7月19日 星期四

《 PHP 》foreach 時使用 reference 的陷阱

文章標題是來自於:石頭閒語的一篇PHP文章

PHP5 可使用參照的迴圈
 
$a = array(1,2,3);

foreach ($a as &$v) {
echo $v,"\n";
}


以前常用的迴圈方式

$a = array(1,2,3);

foreach ($a as $v) {
echo $v,"\n";
}


這要差異在於使用參照的 &$v ,reference一直更新到相對應的陣列中,而石頭大大說明了
如果兩個 foreach 迴圈照上述的順序擺放會發生情形,如果了解是用 reference 的方式來
運作我想自然而然可以反應出這是一個嚴重的錯誤,要稍微注意一下。

石頭閒語都是好文章。

2007年5月5日 星期六

《 Java 》Random 排班不機智

題目:



一間公司的倉庫守衛工作時間一天為九小時,一共聘請了六名工,同一時間必須有兩人看守。
試問一人一天的休息時間?

說明:



這是一題國小五年級的數學題目,話說當時看到還霧煞煞勒,此題正解為

總工作時間是 9 * 2 = 18 hours
有六人去分擔這些時間,所以 18/6=3,每人每天必須工作 3 hours
最後每人休息時間是 9-3=6 hours。

原本以為可以去看看如果這六位員工去排班會是怎樣的,所以寫了一些程式碼想要去跑
但是不知道怎樣才會有效率,只用了 Random 然後判斷一直重複猜數字。

RandomArray.java

import java.util.Scanner;
import java.util.Random;

public class RandomArray{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("Input Rows ans Cols:");
int m = scanner.nextInt();
int n = scanner.nextInt();
boolean play = false;
while(play != true){
Matrix a = new Matrix(m, n);
a.setMatrix();
a.getMatrix();
play = a.check();
}
}
}

##CONTINUE##

class Matrix{
private int value;
private int rows;
private int cols;
private int[][] storage;
Random random = new Random();

public Matrix(){

}

public Matrix(int rows, int cols){
this.rows = rows;
this.cols = cols;
storage = new int[rows][cols];
}

public void randomValue(){
value = random.nextInt(2);
}

public void setMatrix(){
for(int i = 0; i < rows; i++){
for(int j = 0; j < cols; j++){
randomValue();
storage[i][j] = value;
}
}
}

public void getMatrix(){
for(int i = 0; i < rows; i++){
for(int j = 0; j < cols; j++){
System.out.print(storage[i][j] + " ");
}
System.out.println();
}
}

public boolean check(){
int rowsum = 0;
int colsum = 0;

for(int i = 0; i < rows; i++){
for(int j = 0; j < cols; j++){
rowsum += storage[i][j];
}
if(rowsum != 3){
return false;
}
rowsum = 0;
}

for(int i = 0; i < cols; i++){
for(int j = 0; j < rows; j++){
colsum += storage[j][i];
}
if(colsum != 2){
return false;
}
colsum = 0;
}

return true;
}
}

以上我用過一組解去跑是可以判斷正確的,但是改用隨機呢那就...
說說回來這真的很難讓電腦去猜,因為Array[6][9]有54數字,一共有2的54次方種配法,
天啊~要用哪一個方式去改進呢?資料結構有說嗎?哈哈......(啃書去=..=) :)

2007年4月27日 星期五

跨入 Widget 的 Hello World!

Yahoo! Widget 真炫,特別把整串字標記,因為真的是很讚的應用軟體 :D

說透了裡面是一堆 XML,因為今天看了一下 Yahoo! 提供的技術文章 .....
但是內心的 OS 是:不會吧~我要去多看 XML 文章了。
很Orz耶,原本想弄一點JavaScript的說 :(

簡單的Hello World,目前還不是很會啦,以後想利用這個去處理東西 :)
所以先來了解一下,原理和技術成面的需求等等。

XML:

<?xml version="1.0" encoding="Big5"?>
<!-- Widget程式碼Root -->
<widget debug="false">

<!-- 定義Window介面 -->
<window title="Kimen n Silver Widget">

<!-- Window介面相關設定 -->
<name>main_window</name>
<width>500</width>
<height>500</height>

<text data="Hello World!" size="36" style="bold">
<name>Hello World!</name>
<hOffset>250</hOffset>
<vOffset>100</vOffset>
</text>
</window>
</widget>

以上就是第一步產生 Hello World! 的 widget 範例

2007年4月25日 星期三

首字加大賦予顏色

的部落格首字放大和變色框線的效果是用 CSS 處理的, 好像也是修改網友的作品 Code 吧 :) 總之,就是如果大家喜歡的話歡迎複製回去囉(當然可以修改,恩!)

最近發現 (好吧,我承認我是後知後覺) CSS 處理小部分的網頁變化,很快速又很簡單。除非網頁真的要大大的加上變化和處理才會需要 JScript 的幫忙,有了 CSS 和 JavaScript 的互相應用可以讓我們得到意想不到的驚喜, :) 說的 好像健達蛋蛋喔。

#cap {
float: left;
color: white;
background: #D78B00;
border: 0px solid;
font-size: 30px;
line-height: 30px;
}


使用方式:

將要標記字的id="cap",就可以囉 :)

2007年4月24日 星期二

Blogger 顯示程式碼

實在弄不出來大作 dp.SyntaxHighlighter ,設定 CSS 和 Javascript 的調整
還是不能出現,後來重新到 Google 搜尋之後找到一段 CSS 語法
放上 Blogger 還真的能跑,上傳到 Google Pages 先暫時將外連,方便修改咩 :)

還好網路上高手一堆,參考的原文 ,正宗出處 [Blog]文章中引用程式碼的作法
這段精美的CSS語法,直接放到裡面就可以跑囉 ^^

CODE, .code {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 8pt;
overflow:auto;
background: #f0f0f0 url(http://polin2005.googlepages.com/BG_CODE.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:200px;
line-height: 1.2em;
}

CMD, .cmd {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 8pt;
overflow:auto;
color: #ccc;
background: #000 url(http://polin2005.googlepages.com/BG_CMD.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:200px;
line-height: 1.2em;
}

##CONTINUE##
引述作者紀錄 :

在貼HTML code時要注意一下,括號會被browser當作tag讀掉,所以如果要貼括號的話,要用下列的字元更換!

  • < 用 &lt; 更換
  • > 用 &gt;更換
  • & 用 &amp;更換

  • 張貼程式碼的方法 :

    將程式碼置於<pre class="code">和</pre>之間。
    如果真的要用 "<",">","&" 那還是會有一點點的小麻煩,
    不過還算夠用只要能讓我將程式碼貼在部落格,這就是最大的幸福了 :)

    2007年3月15日 星期四

    Java Team Project Ⅲ

    左圖為全部資料,請利用該資料的數據以及假設值,進行Project的建置。利用Class結構寫一個類似台鐵計算票價程式的功能,不需要GUI,命令列提示字元視窗即可。
















    稍微紀錄一下,完成日期 : ? 完成時間 : ? 完成趴數 : ?

    2007年2月13日 星期二

    蔡學鏞先生《你該學什麼程式語言?》

    程式語言可分為5類

    1、Web page script languages
      就是網頁代碼,比如Html、JavaScript、Css、Asp、Php、Xml都應該屬於此類,照蔡的意思,Html不應該屬於languages的,但是大家見解不一都沒差啦。

    2、Interpreted Languages(解釋型語言)
       包括Perl、Python、REBOL、Ruby等,也常被稱作Script語言,通常被用於和底下的作業系統溝通。照蔡的意 思,每個人至少應該學會一套這類的語言。這類語言的缺點是效率差、源代碼外露——所以不適合用來開發軟體產品,一般用於網頁伺服器。

    3、Hybrid Laguages(混合型語言)
      代表是JAVA和C#。介於解釋型和編譯型之間。蔡認為C#是.NET最重要的語言,值得期待其後續發展;至於JAVA,蔡叫看他的《Sleepless in Java》。

    ##CONTINUE##
    4、COMPILING Languages(編譯型語言)
      C/C++,JAVA都是編譯型語言。蔡說C++很複雜,要成為高手沒三五年是不行的(就憑這句話,我決定向JAVA投降),雖然如此,但真正要成為高手的都應該懂C/C++。
      關於Delphi,蔡說如果想要跨Linux和Windows平臺的語言,則Delphi似乎是最好的選擇。

    5、Assembly Languages(組合語言)
      組合語言是最接近於硬體的語言,不過現在幾乎沒多少人用了。

    此篇文章為蔡學鏞先生專欄內容轉錄

    之前放在其他的Blog,最近整理又放回來這裡给程式語言入門的人觀看一下。
    關於蔡學庸先生的文章出處我一時之間找不出來,所以沒有附上連結,也因為其他網友改過文章內容,事後我也進行刪減的動作,所以希望不會侵犯到作著的大作捏。 :)