Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: [C] Xem tap tin DBF

  1. #1
    No Avatar
    nqphuc Khách

    Mặc định [C] Xem tap tin DBF

    PHP Code:
    #include <stdio.h>
    typedef struct tagDBF_HEADER {
    unsigned char signature/* 03 = dbf, 83 dbf+dbt */
    unsigned char ymd[3];
    long num_records;
    int data_off;
    int rec_size;
    unsigned char pad[20];
    DBF_HEADER;

    typedef struct tagDBF_STRUCT {
    char name[11];
    char type;
    long fstart;
    unsigned char fsize;
    unsigned char decimal;
    char pad[14];
    DBF_STRUCT;

    DBF_HEADER dbheader;
    DBF_STRUCT dbstruct[255];
    int numfields;

    void main()
    {
    char filename[50];
    char *dumpchuoi[250] ;
    int ijoffsetk;
    FILE *fp;

    printf("\nCho biet ten tap tin DBF muon xem : ");
    gets(filename);
    if ((
    fp=fopen(filename"rb")) == NULL)
    printf("Khong the mo tap tin %s"filename);
    else
    {
    fread(&dbheadersizeof(DBF_HEADER), 1fp);
    if (
    dbheader.signature == || dbheader.signature == 0x83)
    {
    numfields = (dbheader.data_off 33) / 32;
    fread(&dbstructsizeof(DBF_STRUCT), numfieldsfp);
    fgetc(fp);
    dump = (char *)malloc(dbheader.rec_size);
    7;
    for (
    j=0j<numfieldsj++)
    {
    gotoxy(kwherey());
    textcolor(j+1);
    cprintf("%s"dbstruct[j].name);
    += dbstruct[j].fsize;
    }
    for (
    i=0i<dbheader.num_recordsi++)
    {
    fread(dumpdbheader.rec_size1fp);
    printf("\n%3d "i+1);
    if (
    dump[0] != 32)
    printf("* ");
    else
    printf(" ");
    offset1;
    for (
    j=0j<numfieldsj++)
    {
    switch(
    dbstruct[j].type)
    {
    case 
    'C' strncpy(chuoi, &dump[offset], dbstruct[j].fsize);
    chuoi[dbstruct[j].fsize] = 0;
    printf("%s "chuoi);
    break;
    case 
    'D' printf("%c%c/%c%c/%c%c%c%c ",dump[offset+6], dump[offset+7],
    dump[offset+4],dump[offset+5],dump[offset],dump[offset+1],
    dump[offset+2],dump[offset+3]);
    break;
    case 
    'N' : for (k=0k<dbstruct[j].fsizek++)
    printf("%c"dump[offset+k]);
    printf(" ");
    break;
    case 
    'L' printf("%c "dump[offset]);
    break;
    }
    offset += dbstruct[j].fsize;
    }
    }
    free(dump);
    }
    else
    printf("Khong phai tap tin DBF");
    fclose(fp);
    }
    getch();

    Đã được chỉnh sửa lần cuối bởi CViet : 27-07-2006 lúc 08:54 PM.

  2. #2
    No Avatar
    o0thangnd0o Khách

    hay quá
    cho mình hỏi bạn có sách nào nói về cấu trúc file PDF ko

  3. #3
    Ngày gia nhập
    08 2006
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi nqphuc Xem bài viết
    PHP Code:
    gotoxy(kwherey());
    textcolor(j+1); 
    Bạn ơi!Sao mình làm như bạn thì nó báo lỗi ở các dòng trên.Mình có cần include thêm thư viện nào không?
    Bao_Tu_Dau_Lam_Xung

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn