mike@yetti.UUCP (Mike Clarkson ) (12/24/86)
Does anyone have a set of C (or Pascal or ...) routines that will let me read records from a Dbase III file ? Nothing fancy, just the n'th record, or the record with a given string as its first field. I want to read some things from a Dbase file into another program. Mail to me and I'll summarise to the net. Thanks in advance. Mike Clarkson (yetti!mike.UUCP) -- Mike Clarkson, ...!allegra \ BITNET: mike@YUYETTI or CRESS, York University, ...!decvax \ SYMALG@YUSOL 4700 Keele Street, ...!ihnp4 > !utzoo!yetti!mike North York, Ontario, ...!linus / CANADA M3J 1P3. ...!watmath / Phone: +1 (416) 736-2100 x 7767 "...the most inevitable business communications system on the planet." - ROLM magazine advertisement which planet?
michael@orcisi.UUCP (12/30/86)
> Does anyone have a set of C (or Pascal or ...) routines that will let me > read records from a Dbase III file ? Nothing fancy, just the n'th record, dBC from Lattice is one such product. I haven't used it but their literature claims it does the job.
brian@prism.UUCP (12/31/86)
I have used C-tools from Ashton Tate with Dbase III plus, and the Lattice C compiler. I found the package unsatisfactory for a couple of reasons: Your compiled routines must be pre-loaded BEFORE DBIII starts, and consequently they remain resident after DBIII terminates. It is very easy to hang DBIII if you pass an incorrect parameter (or inappropriate number of parameters) to the C-routines. I don't think that their memory allocation stuff works as well as they'd like; following their examples, I had problems with some trashing of memory when I attempted to do math operations on array elements. ( I was attempting to multiply the members of one array by elements of another array, then summing the results). So, consequently, I rev-engineered the format of .mem files, and passed a mem-filename to a compiled TURBO program (which I ran from dbaseIII - you can include parameters in the command, like "run turbo1 data1.mem") which wrote it's results to a .mem file which I passed back into my DBaseIII program when the turbo pascal program finished. Seems kludgy, but it is rock solid, and easily changeable without re-linking everything and rebooting. Also, if you want structures of the DbIII records, there was something posted in net.sources a while back (or was it net.micro.pc?) which gave either pascal or c source for data structures for DBiii. Something funny? well, I rev-engineered the formats for dbiii+ enough to do db access from turbo pascal, and had emulated alot of the functions of dbiii. My routines ran only slightly faster than dbaseiii+ (for operations that were i/o intensive), which makes me wonder if the data structures that Ashton Tate used impede hi-speed performance. Of course, the people doing the commercial DBIII+ compilers probably do "clever" things, or at least have some "clues" that we mortals don't. (Come to think of it, I think I had all checking turned on in the turbo compiler - that easily makes programs slower by a factor almost equal to 2). Oh well, I didn't mean this to be so long... brian moran ---- Brian K. Moran brian@mirror.TMC.COM {mit-eddie, ihnp4!inmet, wjh12, cca, datacube}!mirror!brian Mirror Systems 2067 Massachusetts Avenue Cambridge, MA, 02140 Telephone: 617-661-0777 extension 141 "Won't somebody tell me, just who and what I did... Why's this ring on my finger, and who's that screaming kid? " From "Lost Weekend" by the Beat Farmers ---
jeffm@mmintl.UUCP (Jeffrey Miller) (01/10/87)
* Regarding the query about accessing dBase III records from C, Ashton-Tate's publishing group sells a couple of products called dBase Tools for C. These do exactly what you want. They aren't too expensive either. Jeff ************************************************* * Jeff Miller * * Multimate International Corp. * * 52 Oakland Avenue * * East Hartford, CT 06108-9911 * * (203) 522-2116 x257 * * UUCP: * * ...!seismo!utah-cs!utah-gr!pwa-b!mmintl!jeffm * * * ************************************************* *