test_2012-11-7

1、建立索引

BuildIndex.c
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>



#define random(x) (rand()%100)



#define NULL 0

#define Att_Order 3    //属性个数

#define Att_Length 10   //属性长度

#define Path_Length 20    //路径长度

struct Index

{

    char attribute[Att_Order][Att_Length];

    char path[Path_Length];

};

void ReadIndex(int start,int end)

{

    FILE *idxfp;

    if ((idxfp = fopen("whl.txt","r")) == NULL)

    {

        printf("Cannot open file");

        exit(0);

    }



    struct Index *context;

    context = (struct Index *)malloc(sizeof(struct Index));



    int j;

    for (j=start; j<=end; j++)

    {

        fseek(idxfp,j*sizeof(struct Index),SEEK_SET);

        fread(context,sizeof(struct Index),1,idxfp);

        int i;

        for (i=0; i<Att_Order; i++)

        {

            printf("%s ",context->attribute[i]);

        }

        printf("%s\n",context->path);

    }

    free(context);

    fclose(idxfp);

}

void WriteIndex(int count)

{

    FILE *idxfp;

    if ((idxfp = fopen("whl.txt","w")) == NULL)

    {

        printf("Cannot open file");

        exit(0);

    }



    struct Index *context;

    context = (struct Index *)malloc(sizeof(struct Index));



    char temp[10];

    int j;

    for (j=0; j<count;j++)

    {

        int k;

        int i;

        for (i=0; i<Att_Order; i++)

        {

            k=random(1000);

            sprintf(temp,"%d",k);

            strcpy(context->attribute[i],temp);

            printf("%s ",context->attribute[i]);

        }

        strcpy(context->path,"c:\\whl");

        printf("%s\n",context->path);



        //fseek(idxfp,0l,SEEK_END);

        fwrite(context,sizeof(struct Index),1,idxfp);

    }

    fclose(idxfp);

}

int main()

{

    int i;

    WriteIndex(100);

    for(i=0; i<100; i++)

    {

        printf("第%d条记录读出:",i+1);

        ReadIndex(i,i);

    }



    system("pause");

    return 0;

}

 

你可能感兴趣的:(test)