I want to read DBF file and import DBF record from DOS to PICK
( D3/NT Release Version 7.1.3.NT 295 patch).
I remarked that DBF file consists of head, fields definition and body of
records.
And head has information of data structure, for example, number of
records,
length of record, date of last modification this file and e.t.c. And so
important,
head has in finish symbol "0D".
I wrote simple program reading dbf file as pick file, like
................
OPEN "F:/ " TO DosFile ELSE STOP
READ Val FROM DosFile,"inv.dbf"
..................
I don't believed it,
- in the first, I see that length DBF file and length variable - Val is
not equal.
- In the second, I give after testing conversion full trash.
After this,
- I create DOS file, which it has binary symbols of range 1 to 255
- I wrote follow PICK/BASIC program
****************************************
* Example of reading
* DOS file from PICK/BASIC program
****************************************
* direction + space
***** open Dos file, as file
OPEN "F:/ " TO DosFile ELSE
CRT "Dos file not opened !"
END
*
*******************************************
* (Read as TEXT file)
* *****************************************
PROMPT ""
PRINT "Dos file > ":; INPUT NameFile
ValPick=""
READ Val FROM DosFile,NameFile THEN
*
Num.Chr=LEN(Val)
PRINT "Lenght ":Num.Chr
FOR I=1 TO LEN(Val)
ValPick=ValPick:(DTX(SEQ(Val[I,1]))"r%2")"R#3"
* next string for better readable of HEX table
IF REM(I,16) = 0 THEN ValPICK=ValPick:CHAR(13)
NEXT I
*
END
*
WRITE Val ON DosFile,NameFile:"BIN"
WRITE ValPick ON DosFile,NameFile:"HEX"
*
END
- When I execute it, I give two DOS file
In HEX:
01 02 03 04 05 06 07 08 20 20 20 20 FE 0B 0C 0E
0F 10 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D
1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D
2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D
3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D
4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D
5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D
6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D
7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D
8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D
9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD
AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD
BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD
CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD
DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED
EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD
10 5E 10 5F
!!! Attention !!!
Symbol
- 09 was changed for 20 20 20 20
- 0A FE
- 0D was loss ????
- FE 10 5E
- FF 10 5F
In BIN:
...
Unfortunately, I can show this file, but I notice, that
Symbol
- 09 was change for 20 20 20 20
- 0A 0D 0A
- 0D was loss ???
- FE FE
- FF FF
And in the end of file was added "0D 0A"
I try another way and I replace access to DOS file
OPEN "NT_BIN:F:/ " TO DosFile ELSE
------------------
CRT "Dos file not opened !"
END
And I given incredible results - LENGTH OF CREATED BINARY
FILE IS 12 byte.
IN HEX:
32 37 33 41 FE 30 30 30 31 and so on!
>>>>>>>>>>>>>>>>>> I hope that anybody help me <<<<<<<<<<<<<<
My best regard,
Dmitry Popkov
P.S. May be I don't know TOP SECRET option for working with DOS files