Feeds:
文章
留言

Archive for 九月 22nd, 2005

輕鬆建立執行緒

在 .Net 中建立執行緒(thread)真的是異常的簡單,不用呼叫像 CreateThread 或 _beginthreadex 之類的函數,只需要透過 Thread 類別即可輕鬆建立執行緒,簡單的範例如下:
 
using System;
using System.Threading;
namespace threadTest
{
 class CTest
 {
  [STAThread]
  static void Main(string[] args)
  {
   // 靜態方法
   Thread thread1 = new Thread ( new ThreadStart(CTest.func1));
   thread1.Start();
 
   // 物件方法
   CTest obj = new CTest();
   Thread thread2 = new Thread (new ThreadStart(obj.func2));
   thread2.Start();
  }
  
  static void func1(){
   Int64 i = Int64.MinValue ;
   while(true){
    ++i;
    Console.WriteLine("func1(): " + i.ToString() ) ;
    if (i>=Int64.MaxValue ){
     i = Int64.MinValue ;
    }
   }
  }
  void func2(){
   Int64 i = Int64.MinValue ;
   while(true){
    ++i;
    Console.WriteLine("func2(): " + i.ToString() ) ;
    if (i>=Int64.MaxValue ){
     i = Int64.MinValue ;
    }
   }
  }
 }
}
雖然執行緒建立簡單,但是執行緒同步問題還是需要考慮…

Read Full Post »

PHP 將指定路徑下的所有檔案印出來

為了寫一個編碼驗證工具,需要比對每一個檔案,所以寫了一個巡覽函數,如下:
 
 function file_process_func($filename){
  echo $filename . ‘<br>’;
 }
 
 function dump_folder($path, $process_func = “){
  $dir = opendir($path);
  while(($file = readdir($dir))){
   $filename = $path . ‘/’ . $file;
   if ( is_file( $filename ) ){
    if (function_exists($process_func)) {
     $process_func($filename);
    }
   }else if ( is_dir( $filename) && $file != ‘.’ && $file != ‘..’){
    dump_folder($filename, $process_func);
   }
  }
 }
 
dump_folder(‘.’, ‘file_process_func’);

Read Full Post »

PHP 檔案一次讀取一行

工作上因為需要一次讀取一行資料,可是從 Help 中找不到這個指令,於是自己寫了一個勘用的函數,如下:

 

  function readline($fp) {
   if (feof($fp)) {
    return false;
   }

   list($data) = fscanf($fp, "%sn");   
   return $data;
  }

 
簡單的說,就是利用格式化輸入 fscanf 來達成。

Read Full Post »

常用的資料定義語法

今天因為工作上的需要,需要對已有的資料庫進行修改,我的記性不好又常忘掉,所以,整理用到的語法如下:
 
# 建立新的 Table
CREATE TABLE tblName(
);
 
# 刪除已存在的 Table
DROP TABLE tblName;
 
# 修改已存在的 Table
#   1. 修改一個欄位定義
#   2. 新增 UNIQUE KEY
#   3. 新增 KEY
#   4. 刪除索引
# 5. 新增 FULLTEXT KEY
#   6. 刪除 PRIMARY KEY
# 7. 建立 PRIMARY KEY
ALTER TABLE test
 ADD UNIQUE idx1 (pid,username,aid),
 CHANGE username username varchar(20) binary NOT NULL default “
 ADD INDEX idx2 (wid,grade),
 DROP INDEX idx99,
 ADD FULLTEXT subject (subject,content),
 DROP PRIMARY KEY,
 ADD PRIMARY KEY (cid,username,st,et);

Read Full Post »