1 回答

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
您沒有提供任何證據(jù)證明您的文件格式是正確的。在編寫程序之前,您應(yīng)該確認(rèn)文件格式正確。
文件的前 256 個(gè)字節(jié)是多少?例如,
hex.go:
package main
import (
"encoding/hex"
"fmt"
"io/ioutil"
"os"
"strconv"
)
func main() {
if len(os.Args) <= 1 {
fmt.Fprintln(os.Stderr, "usage: hex filename [bytes]")
return
}
data, err := ioutil.ReadFile(os.Args[1])
if err != nil {
fmt.Fprintln(os.Stderr, "filename:", err)
return
}
n := len(data)
if len(os.Args) > 2 {
i, err := strconv.Atoi(os.Args[2])
if err != nil {
fmt.Fprintln(os.Stderr, "bytes:", err)
return
}
if n > i {
n = i
}
}
fmt.Print(hex.Dump(data[:n]))
}
輸出:
$ go run hex.go example.dbf 256
00000000 03 01 04 18 01 00 00 00 41 07 d0 05 00 00 00 00 |........A.......|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 |................|
00000020 54 52 41 43 4b 5f 49 44 00 00 00 43 01 00 00 00 |TRACK_ID...C....|
00000030 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000040 4c 4d 55 4c 54 00 00 00 00 00 00 4c 0c 00 00 00 |LMULT......L....|
00000050 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000060 4e 54 41 58 59 45 41 52 00 00 00 4e 0d 00 00 00 |NTAXYEAR...N....|
00000070 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000080 4e 43 4f 55 4e 54 59 43 4f 44 00 4e 11 00 00 00 |NCOUNTYCOD.N....|
00000090 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000000a0 43 50 52 4f 50 41 44 44 00 00 00 43 13 00 00 00 |CPROPADD...C....|
000000b0 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |<...............|
000000c0 4c 43 4f 4d 4d 49 4e 44 00 00 00 4c 4f 00 00 00 |LCOMMIND...LO...|
000000d0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000000e0 4c 56 41 43 4c 41 4e 44 00 00 00 4c 50 00 00 00 |LVACLAND...LP...|
000000f0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
$
表級(jí)
但是一張桌子的水平是多少?級(jí)別表示其版本。dBASE 表格式是一種隨著時(shí)間的推移而發(fā)展的標(biāo)準(zhǔn)。當(dāng) dBASE 的新版本對(duì)該格式進(jìn)行一些改進(jìn)時(shí),會(huì)給出一個(gè)新的格式級(jí)別編號(hào),與新的 dBASE 版本相同。例如,我們有級(jí)別 3、4、5 和 7,分別對(duì)應(yīng)于 dBASE III、dBASE IV、dBASE 5 和 Visual dBASE 7。沒有級(jí)別 6,因?yàn)闆]有 Visual dBASE 6。
7 級(jí)帶來了許多改進(jìn)。字段名稱最多可包含 31 個(gè)字符(之前最多為 10 個(gè))。出現(xiàn)了一些新的字段類型(例如,AutoIncrement 字段幾乎不可能為同一個(gè)表中的兩個(gè)記錄提供相同的數(shù)字)。如果您的表必須被其他軟件使用,您可能必須為了兼容性而犧牲這些優(yōu)勢(shì),因?yàn)楹苌儆袘?yīng)用程序可以使用 7 級(jí)表。
.dbf 文件格式:
文件頭字節(jié) 0,位 0-2 表示版本號(hào):dBASE Level 5 為 3,dBASE Level 7 為 4。
- 1 回答
- 0 關(guān)注
- 266 瀏覽
添加回答
舉報(bào)