mysql批量控制項fifo檔案 檔案 FIFO佇列

2021-10-18 19:02:40 字數 1785 閱讀 7978

* filefifo.php 檔案型fifo佇列*/

classfilefifo

* $_file_data, 資料檔案的路徑*/

private $_file_data = '';/**

* $_file_idx, 索引檔案的路徑*/

private $_file_idx = '';/**

* $_file_idx_bak, 索引備份檔案的路徑, 防止意外斷電等導致索引檔案破壞*/

private $_file_idx_bak = '';/**

* $_f_data, 資料檔案的控制代碼*/

private $_f_data;/**

* $_f_idx, 索引檔案控制代碼*/

private $_f_idx;/**

* $_f_idx_bak, 索引備份檔案控制代碼*/

private $_f_idx_bak;private static $_instance = array();public static function instance($file)

return self::$_instance[$file];

}public function __construct($file)

public function__destruct()

.idx";$this->_file_idx_bak = ".idx.bak";if (! file_exists($file)) $idx_data_bak = '';/**

* 有備份則讀取備份資料,無備份則建立空備份檔案*/

if (file_exists($this->_file_idx_bak)) elseelse$this->_f_data = fopen($this->_file_data, 'a+b');$this->_f_idx = fopen($this->_file_idx, 'rw+b');$this->_f_idx_bak = fopen($this->_file_idx_bak, 'rw+b');

* detach, 分離當前佇列檔案*/

private functiondetach()

,");rewind($this->_f_idx_bak);ftruncate($this->_f_idx_bak, 0);fwrite($this->_f_idx_bak, ",");

}else$data_all[$line] = $data;

}flock($this->_f_idx,lock_un);$cur_pos = array('pos' => $pos,

'line' => $line,);return $data_all ? $data_all : false;

* push, 隊尾壓入多條記錄

* @param string | array $data, 字串資料,不能包含回車換行,否則會追加多條記錄

* @return int, 返回插入的記錄條數*/

public function push($data)

$count = 0;/**

* 鎖定資料檔案,追加記錄*/

flock($this->_f_data,lock_ex);if (is_array($data)) flock($this->_f_data,lock_un);return $count;

* del, 清空乙個佇列*/

public functiondel()

{$this->detach();unlink($this->_file_data);unlink($this->_file_idx);unlink($this->_file_idx_bak);return true;

winform 批量控制項取值賦值

以前寫winform 最多寫幾個文字框,最近需要入錄乙個人員資訊,那好幾十個字段,一下子幹蒙了,這要是乙個個取值賦值都寫到明天了,於是就自己寫了個方法,也不是什麼高大上的,就是很簡單很普通很low的方法。廢話少說上 注意,這塊我就用了個文字框,你也可以找到所有控制項,盡量控制項name與實體字段一樣...

linux 批量解壓gz bz2檔案

一 批量解壓bz2檔案 find maxdepth 1 name bz2 xargs i tar xvjf 這條命令可解壓當前目錄下的所有bz2檔案 批量解壓是比較鬱悶的事,以前嘗試各種方法,甚至用指令碼迴圈語句解壓都不行 現在發現這條命令可以搞定,maxdepth表示搜尋深度,1代表只搜尋當前目錄...

sqlldr批量匯入資料夾下多個csv檔案

建立表的時候要建立在一般使用者下,不要建立在sys和sysytem使用者下,否則sqlldr匯入時提示許可權不夠 批量匯入,可以通過獲取資料夾下所有檔案的絕對路徑實現 echo off setlocal enabledelayedexpansion for f delims i in dir a s...