xBase2 / DotTalk 1995 — TEST.C

Read-only archive view · 1995-08-16 · 3,231 bytes · SHA-256 7D2E071107C93F0555684518A672D2A3CF970795A8DE9E482925F7F02B873384

Back to source browser · Open byte-preserved text

#include <stdio.h>

#include <stdlib.h>

#include <string.h> 

#include <time.h>

#include "xbindex.h"

#include "xbase.h"

#include "xbcmds.h" 

#include "dottalk.h"

           

#define max_records 10;



extern select_rec *s[max_area];

extern short area; 

extern long int memory;







void make_testdbf(char *filename);

void addrecords(char fdata[]);

int  num_of_fields;





                   

void main()                   

{   

    char i,j; /* areas and orders are limited to type char */

    char command_line[max_params*param_size];           

    int max_indexs;      



    char filename[] = "test00      "; /* 13 chars */ 

    char fdata[] = "field_data99";

        

    /*printf("beginning memory = %d\n",memory);*/

    initcmds();   

	initbase();  

	

    num_of_fields = 5;

    max_indexs = max_index;

    

	for (i=1;i<4;i++)  

	{                      

	    if (i > 9) 

	       filename[4] = '1';

	    if (i > 19)

	       filename[4] = '2';

	    if ((i == 10) || (i==20))

	       filename[5] = '0';

	    else   

	       filename[5]++; 	    

	    select(i);   	

	    make_testdbf(dbname(filename));

	    use(dbname(filename)," ",0);    

        addrecords(fdata);   

        for (j=1;j<3;j++)

        {  

           order(i,j); 

	       filename[6] = j+64;           

	       build_index(dxname(filename),j,SA->hr->num_of_recs);

	       open_index(dxname(filename),1); 

	    }                     

	    filename[6] = ' ';

	    printf("current memory used = %d\n",memory);

	}

	printf("ending memory = %d\n",memory);    





}	



void make_testdbf(char *filename)

{

    int i;                             

    field_array fields;

    char fname[] = "field1     ";

        

	for (i=1;i<=num_of_fields;i++)

	{

		memmove(fields[i].field_name,fname,fld_nam_len);

		fname[5]++;

		fields[i].field_length = 20;

		fields[i].field_type = 'C';

 	}

 	create_dbf(filename,fields,num_of_fields);

} 			



void addrecords(char *ndata)   

{

    int j,k; 

    int no_recs;           

    char fdata[12];

    long random;

    

    memmove(&fdata,ndata,sizeof(fdata));

    no_recs = max_records;

    for (j=1;j<no_recs;j++)

    {

        add_rec(area);  /* add a blank record */   

        srand((unsigned)time(NULL));        

        /* change the fields in the blank record */

        for (k=1;k<=num_of_fields;k++)

        {

        	memmove(SA->fd[k],fdata,sizeof(fdata));

        	SA->fd[k][11]--;

        	SA->fd[k][12] = k+64;  

        	random = rand();

            random = random % (random-10);

        	SA->fd[k][13] = 64+(char)random;

        }

        write_rec(area); /* write the changes */  

        fdata[10]--;

    } 

}    



/*	                              

	use("child.dbf"," ",0);   

	build_index("clname.idx",2);

	open_index("clname.idx",1);  

	

	display();

	

	select(2);

	use("parent.dbf"," ",0);

	build_index("plname.idx",2);

	open_index("plname.idx",1); 

    order(2,2);

	build_index("pphone.idx",4);

	open_index("pphone.idx",1);

	order(2,1);

	

	display();

	

	select(3);                      

	use("work.dbf"," ",0);

	build_index("wphone.idx",1);	

    open_index("wphone.idx",1);

	

	display();

*/