วิธีตรวจสอบไฟล์ DBF ว่าเป็นสายพันธ์ไหน
ให้ท่านเปิดไฟล์แบบ Low-level อ่านไบท์แรก เทียบกับตารางต่อไปนี้
ตาราง รวมญาติมิตรสหายของฟอกส์โปร
Dec | Hex | DBF Format |
2 | 0x02 | FoxBASE |
3 | 0x03 | FoxBASE+/Dbase III plus, no memo |
48 | 0x30 | Visual FoxPro |
49 | 0x31 | Visual FoxPro, autoincrement enabled |
50 | 0x32 | Visual FoxPro, Varchar, Varbinary, or Blob-enabled |
67 | 0x43 | dBASE IV SQL table files, no memo |
99 | 0x63 | dBASE IV SQL system files, no memo |
131 | 0x83 | FoxBASE+/dBASE III PLUS, with memo |
139 | 0x8B | dBASE IV with memo |
203 | 0xCB | dBASE IV SQL table files, with memo |
245 | 0xF5 | FoxPro 2.x (or earlier) with memo |
251 | 0xFB | FoxBASE |
ตัวอย่าง เขียนโปรแกรมในวิชวลฟอกส์โปร เพื่อตรวจสอบตระกูลไฟล์ DBF ที่ต้องสงสัย
cFile = "C:/Data/MyFile.DBF"
nFile = FOPEN(cFile)
IF nFile < 0 THEN
RETURN .F.
ENDIF
n = ASC(FREAD(nFile, 1))
=FCLOSE(nFile)
? DBFINFO(n)
FUNCTION DBFINFO(n)
DO CASE
CASE n = 2
RETURN "FoxBASE"
CASE n = 3
RETURN "FoxBASE+/Dbase III plus, no memo"
CASE n = 48
RETURN "Visual FoxPro"
CASE n = 49
RETURN "Visual FoxPro, autoincrement enabled"
CASE n = 50
RETURN "Visual FoxPro, Varchar, Varbinary, or Blob-enabled"
CASE n = 67
RETURN "dBASE IV SQL table files, no memo"
CASE n = 99
RETURN "dBASE IV SQL system files, no memo"
CASE n = 131
RETURN "FoxBASE+/dBASE III PLUS, with memo"
CASE n = 139
RETURN "dBASE IV with memo"
CASE n = 203
RETURN "dBASE IV SQL table files, with memo"
CASE n = 245
RETURN "FoxPro 2.x (or earlier) with memo"
CASE n = 251
RETURN "FoxBASE"
OTHERWISE
RETURN "Unknown"
ENDCASE
ENDFUNC
ไม่มีความคิดเห็น:
แสดงความคิดเห็น