Struktura pliku DBF

Kategoria: Delphi i Pascal - kruczki, sztuczki, programowanie.

Wersja archiwalna tematu "Struktura pliku DBF" z grupy pl.comp.lang.delphi



Marian Ficek
11 Mar 1998, 03:00

Witam wszystkich.
Czy ktoś moze mi podeslac opis struktury pliku DBF z DBase 3.
Musze dokonac konwersji pliku DBF o wielkosci ok 2kB na inny format
Plik zawiera tylko pola Numeric,Character i Date
prosze nie proponowac uzycia BDE.
Dziekuje.

Marian Ficek
12 Mar 1998, 03:00

Czy naprawde nikt __tego__ nie ma ani nie wie
skad to mozna zassac....
Teraz potrzebuję tego tylko do potwierdzenie ze to co
juz wymysliłem jest OK.

Marian Ficek
12 Mar 1998, 03:00

Dzieki pomocy znalazlem tu :
http://loki.borland.com/winbin/bds.exe?getdoc+2821+Delphi

Czy naprawde nikt __tego__ nie ma ani nie wie
skad to mozna zassac....
Teraz potrzebuję tego tylko do potwierdzenie ze to co
juz wymysliłem jest OK.

--
Pozdrawiam wszystkich z wyjatkiem Willy Gates'a - marfi.
A dla Williego ciasteczko...z zakalcem


TadekB.
12 Mar 1998, 03:00

Jest pod adresem:
http://www.borland.com/devsupport/delphi/ti_list/TI2821.html

Tadeusz Barańczyk
tad@kki.net.pl

Marian Ficek napisał(a) w wiadomości: <6e862m$3h@rekin.onet.pl...

Czy naprawde nikt __tego__ nie ma ani nie wie
skad to mozna zassac....
Teraz potrzebuję tego tylko do potwierdzenie ze to co
juz wymysliłem jest OK.

--
Pozdrawiam wszystkich z wyjatkiem Willy Gates'a - marfi.
A dla Williego ciasteczko...z zakalcem


Mirek Skoczek
12 Mar 1998, 03:00

Marian Ficek napisał(a) w wiadomości: <6e5ldi$6g@rekin.onet.pl...

Witam wszystkich.
Czy ktoś moze mi podeslac opis struktury pliku DBF z DBase 3.


Witam w grupie!
Struktura pliku DBF byla kiedys opisana w PC Kurierze, ale nie
pamietam numeru. Znacznie wczesniej sam musialem ja rozgryzc.
Wyglada to tak:
Kazdy zbior ma 32-bajtowy rekord kontrolny o nastepujacej strukturze:
 TCtrlBlock=record
                 case Boolean of
                   True:(Stamp:Byte; {znacznik zbioru DBF; znak #3 (^C)}
                         Y,M,D:Byte; {data ostatniej modyfikacji zbioru}
                         RecNr:LongInt; {ilosc rekordow w zbiorze}
                         HeaderLgth:Word; {calkowita dlugosc naglowka}
                         RecordLgth:Word; {dlugosc rekordu + 1 - patrz
dalej}
                         Reserved:array[0..19] of Byte); {nieznaczace}
                   False:(All:array[0..CtrlBlockLgth-1] of Byte)
               end;
Bezposrednio po nim nastepuja opisy pol rekordu tworzace dalsza czesc
naglowka.
Kazdy opis ma nastepujaca strukture:
    TFieldDescriptor=record
                       FName:array[0..10] of Char; {nazwa pola}
                       FType:Char; {typ pola - N - liczba, C - znakowe, D -
data, M - memo}
                       Res1:LongInt; {nieznaczace}
                       FLength1:Byte; {calkowita dlugosc pola}
                       FLength2:Byte; {ilosc znakow po kropce dziesietnej}
                       Res2:Word; {nieznaczace}
                       Res3,Res4,Res5:LongInt; {nieznaczace}
                     end;
Naglowek konczy sie znakiem #13 (^M).
Po nim nastepuja rekordy zawierajace wlasciwe dane. UWAGA! Kazdy wlasciwy
rekord
jest poprzedzony albo znakiem #32 (spacja), albo '*' (gwiazdka). W tym
drugim przypadku rekord jest oznaczony jako skasowany (mark deleted).
Ten dodatkowy znak jest wliczany do calkowitej dlugosci rekordu.
Pozdrawiam wszystkich,
Mirek Skoczek
m_skoc@css-ds.legnica.pl
P.S. W razie potrzeby sluze gotowym unitem do obslugi DBF (pod BP, ale
chyba nie ma problemu z zaadaptowaniem w Delphi).

Adam Stolarczyk
12 Mar 1998, 03:00

<ma@bb.onet.plzeznal(a):

Czy naprawde nikt __tego__ nie ma ani nie wie
skad to mozna zassac....
Teraz potrzebuję tego tylko do potwierdzenie ze to co
juz wymysliłem jest OK.


Ma, wie.
Bylo to kiedy w jakims pismie (Enter, PCWord, PcKurier lub Bajtek).
Jak nigdzie nie znajdziesz to sporoboje to znalesc.

Pozdrawiam,

Marian Ficek
14 Mar 1998, 03:00

Wielkie dzieki wszystkim , wiem wszystko co niezbedne...
Program dziala i pisze w pipe..

Damian Prawda
14 Mar 1998, 03:00

"Mirek Skoczek" <m_skoc@css-ds.legnica.plwrote:
[...]
P.S. W razie potrzeby sluze gotowym unitem do obslugi DBF (pod BP, ale
chyba nie ma problemu z zaadaptowaniem w Delphi).


Mnie by to _bardzo_ interesowalo. A Twoj unit obsluguje PACK? Moze
jakies indeksy?

[ Damian Prawda ]
dapra@free.polbox.pl

Adam Lubszczyk
16 Mar 1998, 03:00

Marian Ficek wrote:

Czy naprawde nikt __tego__ nie ma ani nie wie
skad to mozna zassac....
Teraz potrzebuję tego tylko do potwierdzenie ze to co
juz wymysliłem jest OK.


Czesc
Sprobuj pod:
http://www.wotsit.demon.co.uk/index.htm

Pozdrowienia

Adam Lubszczyk
mailto:alubs@rsw.pl

Mirek Skoczek
17 Mar 1998, 03:00

Niestety, obsluguje tylko dopisanie i odczyt rekordu (wedlug numeru
rekordu). Poza tym tworzenie DBF wedlug zadanej struktury.

Mirek

Mirek Skoczek
17 Mar 1998, 03:00

Niestety, jest dosc prymitywny. Obsluguje tylko dopisanie i odczytanie
rekordu (wedlug numeru rekordu). Poza tym tworzenie DBF o zadanej
strukturze.

Mirek

Damian Prawda
20 Mar 1998, 03:00

"Mirek Skoczek" <m_skoc@css-ds.legnica.plwrote:
| [...]
| P.S. W razie potrzeby sluze gotowym unitem do obslugi DBF (pod BP, ale
| chyba nie ma problemu z zaadaptowaniem w Delphi).
| Mnie by to _bardzo_ interesowalo. A Twoj unit obsluguje PACK? Moze
| jakies indeksy?
Niestety, jest dosc prymitywny. Obsluguje tylko dopisanie i odczytanie
rekordu (wedlug numeru rekordu). Poza tym tworzenie DBF o zadanej
strukturze.


Taki juz mam :))

[ Damian Prawda ]
dapra@free.polbox.pl