回文章列表
作者Galileo (小斌), 信區: ck48th313
標題Re: ask?
時間成大物治 黃金之島 (Sat Apr 28 00:11:06 2001) , 轉信
【 在 corelli (shit!爛站!) 的大作中提到: 】
:         ㄜ....再問visual的問題
:         因為我在改之前的人寫的程式中
:         他把一些文字資料檔存成binary格式的.dat檔了
:         書上好像寫說有特定格式編排之類的才要用binary存
:         那有什麼辦法將你要的資料存成比較熟悉的附檔名格式?例如.txt
:         我是沒有仔細看他為什麼要存成.dat啦....
:         我覺得只是從資料庫抓出東西來應該可以存文字檔比較方便
:         或者是有什麼辦法把那些被轉成binary的東西還原成.txt?
:         我看過那個檔案....用ultraedit讀可以看到那些hex的東東
:         用筆記本就看到一堆沒排好的文字檔了....
:         對檔案格式沒研究說....真糟糕
:         以後還要存圖檔~~~~
:         唉

通常用binary檔來存文字,最大的特點就是每筆紀錄的資料一樣長
比如你一共有 姓名(6),電話(10),住址(30)等三個欄位
(括號裡的字是指字串最大長度)

那麼你一筆資料就固定是 6+10+30=46 個字元長
好處就是你在做檔案處理時,一次可以讀入一定的長度就恰好是一筆資料
當然,你可以寫個把 binary 轉回 ascii 的程式
把讀進來的紀錄重新做好格式輸出, 這樣就是排好的文字檔囉

鄭斌權0222554663板橋市吳鳳路81巷37號4樓    張志嘉055264693 雲林縣斗六市林頭路
35-3號      連浩詮0228219968台北市北投區實踐街50號1樓     侯信安0952314853台�
_縣板橋市和平路180號4樓   李威慶0953750716台北縣板橋市八德路二段197巷61

像上面的資料,你一次讀進46個character就相當於一筆資料
你只要這筆46個字元長的資料,依照欄位長度讀出各欄,再存在一個陣列
(別忘了陣列最後要補\0字元)之後再輸出就會是很好看的文字檔了

ex:

char name[7] <- 名字放這, name[6]='\0'
char tel[11] <- 電話放這, tel[10]='\0'
char addr[31] <- 地址放這, addr[30]='\0'

printf("%s %s %s\n",name,tel,addr); 

注意:如果你照我說的做,在每筆記錄放到陣列之前,最好先把陣列內容清空
否則可能會出現不該出現的字 :p 還有檔案處理時,開檔也要用BINARY的模式開喔!

--
我再找找有沒有之前寫過的code
--
發信站 [成大物治 黃金之島 bbs.pt.ncku.edu.tw] ‧ FROM [swtp128-180.adsl]
魔法商業大樓全新開幕,新增許多好玩有趣的Game呦!並歡迎您光臨本島! 
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻