最近搞思博倫測(cè)試儀表,,用TCL處理一下db文件和csv文件,,學(xué)習(xí)一下。 先下載sqlite3 .exe 才438KB 用它打開.db文件 方法如下: 例如: 把sqlite3 .exe 放到D:/下面. 把test.db文件放在D:/A 目錄下 1>操作: 運(yùn)行-->cmd-->D:--> sqlite3 D:/A/test.db SQLite的簡(jiǎn)單使用 3.1 建立數(shù)據(jù)庫(kù) C:\sqlite> sqlite3.exe dbname.db sqlite3.exe后面跟數(shù)據(jù)庫(kù)文件名 3.2 創(chuàng)建數(shù)據(jù)表 sqlite> create table users(userid varchar(20) PRIMARY KEY, ...> age int, ...> birthday datetime); 3.3 添加記錄 insert into users values('wang',20,'1989-5-4'); insert into users values('li',22,'1987-11-16'); 3.4 查詢記錄 select * from users order by birthday; 3.5 刪除記錄 delete from users where userid='wang'; 3.6 退出sqlite sqlite> .exit SQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)是存貯在 "sqlite_master" 表中 具體命令可以輸入 .help查看或參考幫助文檔 sqlite 表結(jié)構(gòu)和數(shù)據(jù)的導(dǎo)出 全部導(dǎo)出 sqlite3 data.db >.output dd.sql >.dump
全部導(dǎo)入 sqlite3 mydb.db >.read dd.sql
平時(shí)使用官方提供的sqlite3.exe工具來操作 sqlite的數(shù)據(jù)庫(kù) 進(jìn)入管理: sqlite3.exe d:\test.db //假設(shè)數(shù)據(jù)是 d:\test.db >.databases //顯示所有數(shù)據(jù)庫(kù) 和 mysql的 show databases; >.tables //顯示當(dāng)前數(shù)據(jù)庫(kù)的表格 和 mysql 的show tables; >.schema tablename; //顯示表格結(jié)構(gòu) 和mysql的 SHOW Create TABLE tbl_name >.output c:\\1.sql //導(dǎo)出當(dāng)前數(shù)據(jù)庫(kù)的 sql語句 和mysql的 mysqldump >.dump >.import c:\\1.sql //導(dǎo)入 //mysql 用source =================== 導(dǎo)入 命令: .import sqlite> .import 文件名 表名 注1: 不要忘了開頭的點(diǎn) 注2: 這條語句不能用分號(hào)結(jié)束. 非SQL不需要分號(hào)結(jié)束. 注3: 需要查看默認(rèn)的分隔符separator. 必須一致. 如果不一致可能導(dǎo)致sqlite字段分割錯(cuò)誤. 查看分隔符使用命令 .show , 如果不一致可直接修改, 比如: sqlite>.separator "," 將分隔符轉(zhuǎn)為逗號(hào). 舉例1: 將文件a.csv中的數(shù)據(jù)導(dǎo)入表 tab_xx. (a.csv中字段以逗號(hào)分割) sqlite> .separator "," sqlite> .import a.csv tab_xx sqlite> 導(dǎo)入結(jié)束.
導(dǎo)出 實(shí)現(xiàn)方式: 將輸出重定向至文件. 命令: .output sqlite> .output a.txt 然后輸入sql語句, 查詢出要導(dǎo)的數(shù)據(jù). 查詢后,數(shù)據(jù)不會(huì)顯示在屏幕上,而直接寫入文件. 結(jié)束后,輸入 sqlite> .output stdout 將輸出重定向至屏幕. 舉例2: 將 tab_xx 中的數(shù)據(jù)導(dǎo)出到文件a.txt sqlite> .output a.txt sqlite> select * from tab_xx; sqlite> .output stdout 導(dǎo)出完畢.
TCL處理CSV文件: package require csv package require struct::queue
set csv_file d:\\EXCEL\\results.csv set csv [ open $csv_file {RDWR} ] ::struct::queue myqueue ::csv::read2queue $csv myqueue puts [myqueue size] for {set i 0} {$i<[myqueue size]} {incr i} { puts [lindex [lindex [myqueue peek [myqueue size]] $i] 5] }
對(duì)于myqueue的內(nèi)容,,可以使用 puts [myqueue peek [myqueue size]]就OK了,,得到myqueue的結(jié)構(gòu),可以按照你自己的想法進(jìn)行解析,。
|