home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / TEXT / PIPMAG2.ARC / DBASEFIL.CFH < prev    next >
Text File  |  1988-10-16  |  14KB  |  322 lines

  1.      *********************************************************************
  2.      THIS ARTICLE IS BEING PRESENTED THROUGH THE PIP ONLINE CP/M MAGAZINE
  3.      OF THE  NATIONAL CP/M ROUNDTABLE  ON GENIE.   copyright (c) 1988  BY
  4.      BILL JULIANI.   ALL RIGHTS RESERVED.   PERMISSION IS  HEREBY GRANTED
  5.      TO NON-PROFIT ORGANIZATIONS  ONLY TO REPRINT THIS ARTICLE OR PASS IT
  6.      ALONG  ELECTRONICALLY AS LONG  AS PROPER CREDIT IS GIVEN TO BOTH THE
  7.      AUTHOR AND GENIE.
  8.      *********************************************************************
  9.  
  10.      ***********************************
  11.      *                                 *
  12.      *  dBase-Creating & Importing     *
  13.      *                   SDF Files     *
  14.      *                                 *
  15.      *      by: Carl F. Howard         *
  16.      *                                 *
  17.      ***********************************
  18.  
  19.  
  20.  ============================================================================
  21.                       dBase - CREATING & IMPORTING SDF FILES               
  22.                                  
  23.                                By: Carl F. Howard     
  24.                                      09/10/88           
  25.                                  
  26.                                   GEnie Address:                  
  27.                                       CARL.H                         
  28.                             Commodore !FlagShip* RT SySop   
  29.  ============================================================================ 
  30.  
  31.  
  32. Hi All! 
  33.  
  34. This is the first of my dBase Articles for "PIP" the GEnie Online C-128 CP/M 
  35. Magazine. The dBase column is intended to help C-128 dBase II users with the
  36. fundementals of dBase II.   If  you have a  dBase question or an idea for an
  37. article you would like  to  see written drop  me  a line and I'll be glad to
  38. help!
  39.  
  40. This first article is on the topic of SDF files (SOURCE DATA FILES).
  41. Hopefully when we are done you will have a better idea of what they are and
  42. how to use them.
  43.  
  44. Essentialy, SDF files are  Flat ASCII TEXT FILES.  They can be  created with
  45. any ASCCI text editor (WordStar N mode  or VDE ASCII mode.) and must contain 
  46. the .SDF extension. The Data in a source data file must be in columnar form. 
  47. A record is contained on each line, and delimited with a caraige return.
  48.  
  49. Using the SDF format gives  you  the ability to Import Data from ASCII files
  50. directly into a dBase DBF. 
  51.  
  52. For example, say  you  just sent a letter to the Regional Manager  reporting
  53. last  months  Sales Activities and  you  wanted to import the information in
  54. your letter to a dBase DBF  containing all your Sales Data for the year. All
  55. you would need to do is  WRITE  the report data in to a seperate  ASCII file
  56. and then Append it to your DBF, eliminating the need to mannualy enter  this
  57. information one record at a time into the DBF.
  58.  
  59. Here's how you Do IT!
  60.  
  61. In this article  I am going to CREATE a DBF called DIRFILE.DBF which will be
  62. a  DBF  of all my C-128  CP/M Disk.  I'm going to get the DATA for  this DBF
  63. using a couple of CP/M commands. The DIR command and the PUT command.
  64.  
  65. Since I want to create an  ASCII File of my Disk Directories, I will need to
  66. use the  PUT  Command  to  redirect  Console  output  to  a  diskfile called
  67. DIRFILE.SDF. To do this you need to TYPE PUT at the DOS prompt.
  68.  
  69. (MAKE SURE DIR.COM and PUT.COM are on the Default Drive! They are on the 
  70. CP/M System Disk that came with your 128.)
  71.  
  72. Note: The author assumes you are using date/time stamped Directories.
  73.       See the CPM PRIMER Articles or your D.R.I. manual.
  74.  
  75. Eg.  
  76.  
  77. A:> PUT
  78.  
  79. You will then be prompted for the name of the file you want to write
  80. to, so enter DIRFILE.SDF
  81.   
  82. All data being sent to the screen will now also be sent to DIRFILE.SDF.
  83.  
  84. You can disable the redirection when your finished by typing PUT CONSOLE.
  85.  
  86. Eg.
  87.  
  88. A:> PUT CONSOLE
  89.  
  90.  
  91.  
  92. OK!  Lets start with the First Disk.
  93.  
  94. Put the Disk in Drive A: and turn on the redirection to DIRFILE.SDF as
  95. indicated above.
  96.  
  97. Now Type DIR [full]  at the DOS prompt.
  98.  
  99. a:> DIR [FULL] 
  100.  
  101. When the directory listing has finished being displayed Turn OFF the
  102. redirection.
  103.  
  104. a:> PUT CONSOLE 
  105.  
  106. Now, Use your ASCII Editor and load the DIRFILE.SDF.
  107.  
  108. You should see somethiing like the following:
  109.  
  110.  
  111. ------------------------------------------------------------------
  112. Scanning Directory...
  113.  
  114. Sorting  Directory...
  115.  
  116. Directory For Drive A:  User  0
  117.  
  118.     Name     Bytes   Recs   Attributes   Prot      Update          Access    
  119. ------------ ------ ------ ------------ ------ --------------  --------------
  120.  
  121. 1571     COM     2k     10 Dir RW       None                   09/10/88 13:33
  122. ARK      COM    20k    156 Dir RW       None                   09/10/88 13:33
  123. B        COM    16k    118 Dir RW       None                   09/10/88 13:39
  124. C        COM     4k     26 Dir RW       None                   09/10/88 13:33
  125. D        COM     2k     11 Dir RW       None                   09/10/88 13:51
  126. DATE     COM     4k     25 Dir RW       None                   09/10/88 13:34
  127. DFILE            0k      0 Dir RW       None                   09/10/88 13:52
  128. DIR      COM    16k    114 Dir RW       None                   09/10/88 13:52
  129. EFILE            4k     23 Dir RW       None                   09/10/88 13:45
  130. ERASE    COM     4k     29 Dir RW       None                   09/10/88 13:42
  131. FILTX    COM     2k     11 Dir RW       None                   09/10/88 13:34
  132. FINDBAD  COM     6k     38 Dir RW       None                   09/10/88 13:34
  133. INITDIR  COM    32k    250 Dir RW       None                   09/10/88 13:34
  134. LIST     COM     2k     16 Dir RW       None                   09/10/88 13:35
  135. MEX      COM    26k    202 Dir RW       None                   09/10/88 13:35
  136. NFORMAT  COM     4k     18 Dir RW       None                   09/10/88 13:35
  137. PIP      COM    10k     68 Dir RW       None                   09/10/88 13:47
  138. Press RETURN to Continue 
  139.  
  140. Directory For Drive A:  User  0
  141.  
  142.     Name     Bytes   Recs   Attributes   Prot      Update          Access    
  143. ------------ ------ ------ ------------ ------ --------------  --------------
  144.  
  145. PROFILE  SUB     2k      2 Dir RW       None                   09/10/88 13:37
  146. PUT      COM     8k     55 Dir RW       None                   09/10/88 13:52
  147. READCBM  COM    14k    106 Dir RW       None                   09/10/88 13:35
  148. READMSDS COM    24k    179 Dir RW       None                   09/10/88 13:36
  149. RENAME   COM     4k     23 Dir RW       None                   09/10/88 13:36
  150. SET      COM    12k     81 Dir RW       None                   09/10/88 13:36
  151. SUBMIT   COM     6k     42 Dir RW       None                   09/10/88 13:36
  152. TYPE     COM     4k     24 Dir RW       None                   09/10/88 13:52
  153. UNARC    COM     4k     32 Dir RW       None                   09/10/88 13:36
  154. UNCR     COM     6k     41 Dir RW       None                   09/10/88 13:36
  155. UNERASE  COM     2k     11 Dir RW       None                   09/10/88 13:36
  156. V        COM    16k    120 Dir RW       None                   09/10/88 13:44
  157.  
  158. Total Bytes     =    256k  Total Records =    1831  Files Found =   29
  159. Total 1k Blocks =    243   Used/Max Dir Entries For Drive A:   47/ 128
  160.  
  161. --------------------------------------------------------------------------
  162.  
  163. Edit the File down so that it contains just the Columnar Information which
  164. should look like this:
  165.  
  166. --------------------------------------------------------------------------
  167. 1571    .COM     2k     10 Dir RW       None                   09/10/88 13:33
  168. ARK     .COM    20k    156 Dir RW       None                   09/10/88 13:33
  169. B       .COM    16k    118 Dir RW       None                   09/10/88 13:39
  170. C       .COM     4k     26 Dir RW       None                   09/10/88 13:33
  171. D       .COM     2k     11 Dir RW       None                   09/10/88 13:51
  172. DATE    .COM     4k     25 Dir RW       None                   09/10/88 13:34
  173. DFILE            0k      0 Dir RW       None                   09/10/88 13:52
  174. DIR     .COM    16k    114 Dir RW       None                   09/10/88 13:52
  175. EFILE            4k     23 Dir RW       None                   09/10/88 13:45
  176. ERASE   .COM     4k     29 Dir RW       None                   09/10/88 13:42
  177. FILTX   .COM     2k     11 Dir RW       None                   09/10/88 13:34
  178. FINDBAD .COM     6k     38 Dir RW       None                   09/10/88 13:34
  179. INITDIR .COM    32k    250 Dir RW       None                   09/10/88 13:34
  180. LIST    .COM     2k     16 Dir RW       None                   09/10/88 13:35
  181. MEX     .COM    26k    202 Dir RW       None                   09/10/88 13:35
  182. NFORMAT .COM     4k     18 Dir RW       None                   09/10/88 13:35
  183. PIP     .COM    10k     68 Dir RW       None                   09/10/88 13:47
  184. PROFILE  SUB     2k      2 Dir RW       None                   09/10/88 13:37
  185. PUT     .COM     8k     55 Dir RW       None                   09/10/88 13:52
  186. READCBM .COM    14k    106 Dir RW       None                   09/10/88 13:35
  187. READMSDS.COM    24k    179 Dir RW       None                   09/10/88 13:36
  188. RENAME  .COM     4k     23 Dir RW       None                   09/10/88 13:36
  189. SET     .COM    12k     81 Dir RW       None                   09/10/88 13:36
  190. SUBMIT  .COM     6k     42 Dir RW       None                   09/10/88 13:36
  191. TYPE    .COM     4k     24 Dir RW       None                   09/10/88 13:52
  192. UNARC   .COM     4k     32 Dir RW       None                   09/10/88 13:36
  193. UNCR    .COM     6k     41 Dir RW       None                   09/10/88 13:36
  194. UNERASE .COM     2k     11 Dir RW       None                   09/10/88 13:36
  195. V       .COM    16k    120 Dir RW       None                   09/10/88 13:44
  196.  
  197.  
  198. Note: I added the (.) in between the file name and the extension name using
  199. the find and replace function of my editor.
  200.  
  201. ^QA 
  202. FIND: COM   Replace: .COM  
  203. -----------------------------------------------------------------------------
  204.  
  205.  
  206.  
  207. Now Count the number of spaces in each field including Blanks! (Except for
  208. the last feild.) You MUST include the Blanks or dBase will not import
  209. the Data properly. We will get rid of the extra spaces latter.
  210.  
  211.  
  212.     Name     Bytes   Recs   Attributes   Prot      Update          Access    
  213. ------------ ------ ------ ------------ ------ --------------  --------------
  214. 13           7      7      13           7      16              14               
  215.  
  216.  
  217. Create a dBase file matching the above structure.
  218.  
  219. Load dBase and type the Following at the dBase Dot PROMPT.
  220.  
  221.  
  222.  
  223. Enter record structure as follows:        
  224. Field   Name, Type, Width, Decimal places 
  225.  
  226.  001     name,c,13,                       
  227.  002     bytes,c,7                        
  228.  003     recs,c,7                         
  229.  004     attr,c,13                        
  230.  005     prot,c,7                         
  231.  006     update,c,16                      
  232.  
  233. Next Append the DATA using the following commands at the dBase DOT PROMPT.
  234.  
  235.  
  236.  
  237. Note:The File must have an SDF extension and SDF must be typed after the
  238. File Name to let dBase know the it is an SDF type format.
  239.  
  240. When the records have been added the Data in this file will contain an extra
  241. space at the end of each field it will look like this:
  242.  
  243. RECORD # 00001              
  244. NAME      [1571    .COM ]   
  245. BYTES     [    2k ]         
  246. RECS      [    10 ]         
  247. ATTR      [Dir RW       ]   
  248. PROT      [None   ]         
  249. UPDATE    [                ]
  250. ACCESS    [09/10/88 13:33]  
  251.  
  252. We will eliminate the extra space and add a field by creating a new DBF called
  253. DFILE2.DBF
  254.  
  255. We  eliminate the extra space by shortening the width of each field in the new
  256. DBF structure by 1 and we add a field for the Disk Number called DISKNUM.
  257.  
  258. Your new DBF Structure should match the one bellow.
  259.  
  260. Structure for file: C:DFILE2  .DBF
  261. Number of records: 00030          
  262. Date of last update: 00/00/00     
  263. Primary use database 
  264.  
  265. Fld   Name   Type   Width   Dec   
  266. 001     NAME         C    012     
  267. 002     BYTES        C    006     
  268. 003     RECS         C    006     
  269. 004     ATTR         C    012     
  270. 005     PROT         C    006     
  271. 006     UPDATE       C    015     
  272. 007     ACCESS       C    014     (Don't Change this Field)
  273. 008     DISKNUM      C    004     (Add This field)                             
  274. *  Total *              00076     
  275.  
  276.  
  277. Now we are going to import the DATA from DIRFILE.DBF to the new DBF DIR2.DBF
  278.  
  279. Type the following at the dBase Dot Propmpt.
  280.  
  281.  
  282. Note: No Extension name is required as dBase assumes you are appending data
  283.       from another DBF file.
  284.  
  285.  
  286. Data in the NEW DBF will look like this: 
  287.  
  288.  RECORD # 00001             
  289. NAME      [1571    .COM]   
  290. BYTES     [    2k]         
  291. RECS      [    10]         
  292. ATTR      [Dir RW      ]   
  293. PROT      [None  ]         
  294. UPDATE    [               ]
  295. ACCESS    [09/10/88 13:33] 
  296. DISKNUM   [    ]           
  297.  
  298. To Add Disk Numbers for all the newly appended records you can use
  299. the dBase REPLACE  Command.
  300.  
  301. Type the Following at the dBase Dot Propmt.
  302.  
  303.  
  304. Note: You change the number each time you add records from a new disk.
  305.  
  306.  
  307. Well Thats the Basic Idea!
  308.  
  309. You  should be able to create a DBF of all your CP/M Disk using the above.
  310. Next time I'm  going  to discuss ways to SEARCH for files using the LOCATE
  311. COMMAND and to SEARCH for Partial STRING matches as well. 
  312.  
  313. Future Articles will be on  SORTING and INDEXING files and creating REPORT
  314. files for printing list of records in your DBF. After we have mastered the
  315. fudementals I'll show you how to write simple dBase programs  (.CMD FILES)
  316. and create Menus. 
  317.  
  318.  
  319. Regards,
  320. Carl.H
  321.  
  322.