高分请教ADO连接ACCESS数据库问题!
我这里有一个小程序是从WEB页里提取标题、内容、时间、来源等的,但是我要把这些内容提取到一个ACCESS数据库里的指定位置,该怎么做呢, 能否给出具体步骤或源代码呢?我知道用到ADO的相关内容,但是我不知道具体该怎没办,各位老大帮帮忙了谢谢!
程序:
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
#define T_NULL 0
#define T_TITLE 1
#define T_CONTEXT 2
#define T_SOURCE 3
#define T_DATE 4
struct Node{
char text;
struct Node *next;
};
struct Node *create(int i)
{
struct Node *head,*p,*q;
int j;
for(j=0;j<i;j++)
{
q=(struct Node *)malloc(sizeof(struct Node));
if(!j)
head=p=q;
else
{
p->next=q;
p=q;
}
}
p->next=head;
return(head);
}
void main()
{
FILE *fp,*fp1;
struct Node *sp,*head,*p,*q;
char *ofname,*sfname,*types,ch;
char titles[8]={'<','T','I','T','L','E','>','\0'},titles1[8];
char Srcs[11]={'h','r','e','f','=','h','t','t','p',':','\0'};
char Return='\n';
char type[15];
int i,k,flag,flag1=0,flag2=0,flag3=0,T_FLAG=T_NULL;
ofname=(char *)calloc(20,1);
sfname=(char *)calloc(20,1);
types=(char *)calloc(10,1);
printf("Enter the type of the web:");
scanf("%s",type);
printf("Enter the name of opened file:");
scanf("%s",ofname);
printf("Enter the name of saved file:");
scanf("%s",sfname);
if((fp=fopen(ofname,"r"))==NULL)
{
printf("\ncann't open the file.\n");
return;
}
if((fp1=fopen(sfname,"w+"))==NULL)
{
printf("\ncann't open the file.\n");
return;
}
types="类型:\0";
for(i=0;types[i]!='\0';i++)
fwrite(&types[i],1,1,fp1);
for(i=0;type[i]!='\0';i++)
fwrite(&type[i],1,1,fp1);
fwrite(&Return,1,1,fp1);
k=2;
for(i=0;i<7;i++)
titles1[i]=(char)tolower((int)titles[i]);
head=sp=create(20);
do
{
switch(T_FLAG)
{
case T_NULL:
fread(&sp->text,1,1,fp);
//find the time
if(sp->text=='t')
{
p=head;
while(p!=sp)
{
if(p->text==' '&&p->next->text=='a'&&p->next->next->text=='t'&&p->next->next==sp)
{
T_FLAG=T_DATE;
head=sp->next;
break;
}
p=p->next;
}
}
//find the source
if(sp->text==':')
{
p=head;
while(p!=sp)
{
if(p->text==Srcs[0]&&p->next->text==Srcs[1])
{
flag=1;
q=p->next->next;
for(k=2;k<10;k++,q=q->next)
if(q->text!=Srcs[k])
{
flag=0;
break;
}
if(flag)
{
T_FLAG=T_SOURCE;
head=sp;
break;
}
}
p=p->next;
}
}
if(sp->text=='>')
{
while(head!=sp)
if(head->text!='<')
head=head->next;
else
{
//find the title
//capital
p=head->next;
if(p->text==titles[1])
{
flag=1;
p=p->next;
for(k=2;k<7;k++,p=p->next)
if(p->text!=titles[k])
{
flag=0;
break;
}
if(flag)
{
T_FLAG=T_TITLE;
head=p->next;
break;
}
}
//lower
p=head->next;
if(p->text==titles1[1])
{
flag=1;
p=p->next;
for(k=2;k<7;k++,p=p->next)
if(p->text!=titles1[k])
{
flag=0;
break;
}
if(flag)
{
T_FLAG=T_TITLE;
head=p->next;
break;
}
}
//find the context
p=head->next;
if(p->text=='p'&&p->next->text=='>')
{
T_FLAG=T_CONTEXT;
head=p->next->next;
break;
}
p=head->next;
if(p->text=='P'&&p->next->text=='>')
{
T_FLAG=T_CONTEXT;
head=p->next->next;
break;
}
head=head->next;
}
}
sp=sp->next;
break;
default:
switch(T_FLAG)
{
case T_TITLE:
if(!flag3)
{
types="标题:\0";
i=0;
while(types[i]!='\0')
{
fwrite(&types[i],1,1,fp1);
i++;
}
while(1)
{
fread(&ch,1,1,fp);
if(ch=='<')
break;
fwrite(&ch,1,1,fp1);
}
fwrite(&Return,1,1,fp1);
flag3=1;
}
T_FLAG=T_NULL;
break;
case T_CONTEXT:
if(flag1==0)
types="正文:\0";
else
types=" \0";
i=0;
while(types[i]!='\0')
{
fwrite(&types[i],1,1,fp1);
i++;
}
while(1)
{
fread(&ch,1,1,fp);
if(ch=='<')
{
sp->text=ch;
break;
}
fwrite(&ch,1,1,fp1);
}
fwrite(&Return,1,1,fp1);
T_FLAG=T_NULL;
flag1=1;
break;
case T_SOURCE:
if(flag2==0)
types="来源:http\0";
else
types=" http\0";
i=0;
while(types[i]!='\0')
{
fwrite(&types[i],1,1,fp1);
i++;
}
while(1)
{
fread(&ch,1,1,fp);
if(ch=='<')
{
sp->text=ch;
break;
}
fwrite(&ch,1,1,fp1);
}
fwrite(&Return,1,1,fp1);
T_FLAG=T_NULL;
flag2=1;
break;
case T_DATE:
types="时间:\0";
i=0;
while(types[i]!='\0')
{
fwrite(&types[i],1,1,fp1);
i++;
}
while(1)
{
fread(&ch,1,1,fp);
if(ch=='F')
{
sp->text=ch;
break;
}
fwrite(&ch,1,1,fp1);
}
fwrite(&Return,1,1,fp1);
T_FLAG=T_NULL;
break;
}
}
}while(!feof(fp));
for(i=0;i<19;i++)
{
p=head->next;
free(head);
head=p;
}
}