텍스트파일 검색하는 부분이요~
꽃겨울
Serch함수를
char*pBuf;
char*pFind;
1. fstat -- file size.
2. pBuf= malloc( filesize + 1)
3. memset( pBuf, 0, sizeof(filesize+1) );
fread( fp, pBuf, filesize );
strstr(pBuf, index[j] );
이거 사용해서 바꿔야 하는데 도와 주세요~~ ㅜㅠ#include stdio.h
#include winsock2.h
#include stdlib.h
#include string.h
#define BUFSIZE 256
#pragma comment(lib,ws2_32.lib)
void Serch();
void Filedown();
void Connectsvr();
int Menuprint();
SOCKET h_socket;
int main()
{
int option;
system(cls);
while((option=Menuprint())!=9)
{
switch(option)
{
case 1: Connectsvr(); break;
case 2: Filedown(); break;
case 3: Serch(); break;
case 9: break;
default:
{
printf(옵션을 잘못 선택 하셨습니다!\n);
printf(아무키나 누르세요...\n);
getchar();
system(cls);
}
}
}
}
int Menuprint()
{
int option=0;
printf(소켓 연결 프로그램 \n\n);
printf( 1. CONNECT\n 2. FILE DOWN\n 3. SERCH\n 9. 종료\n);
printf($);
scanf(%d,&option);
fflush(stdin);
return option;
}
void Connectsvr()
{
WSADATA wsa;
SOCKADDR_IN SV_addr;
char serv_addr[BUFSIZE];
char serv_port[BUFSIZE];
system(cls);
printf(====== 1. connect Mode ======\n);
printf(연결할 서버 주소를 입력하세요 :);
fgets(serv_addr, BUFSIZE, stdin);
printf(연결할 포트 번호를 입력하세요 :);
fgets(servets(serv_port, BUFSIZE, stdin);
if(WSAStartup(MAKEWORD(2,2), &wsa) !=0)
{
printf(WSAStartup error!\n);
exit(1);
}
h_socket = socket(AF_INET, SOCK_STREAM,0);
if(h_socket==INVALID_SOCKET)
{
printf(socket error!\n);
exit(1);
}
memset(&SV_addr,0,sizeof(SV_addr));
SV_addr.sin_family = AF_INET;
SV_addr.sin_addr.s_addr=inet_addr(serv_addr);
SV_addr.sin_port = htons((unsigned short)atoi(serv_port));
if(connect(h_socket, (SOCKADDR*)&SV_addr, sizeof(SV_addr)) ==SOCKET_ERROR)
{
printf(connect error!\n);
exit(1);
}
system(cls);
}
void Filedown()
{
FILE *fp;
int ms_len;
char message[BUFSIZE];
system(cls);
printf(====== 2. file down Mode ======\n);
fp=fopen(receive.txt,w+);
while((ms_len=recv(h_socket,message, BUFSIZE,0))!=0)
{
fwrite(message, sizeof(char), ms_len,fp);
}
system(cls);
printf(file down OK!\n);
fclose(fp);
closesocket(h_socket);
WSACleanup();
}
void Serch()
{
char ex[BUFSIZE],index[BUFSIZE][BUFSIZE];
int i,j;
int cnt[BUFSIZE] = {0,};
int ms_len;
system(cls);
printf(====== 4. serch Mode ======\n);
printf(몇개의 단어를 찾으시겠습니까?);
scanf(%d,&i);
for(j=0;ji;j++)
{
FILE *fp;
fp=fopen(receive.txt,r);
printf(찾을 %d 번째 단어 입력:,j+1);
scanf(%s,index[j]);
ms_len = strlen(index[j]);
while(1)
{
fscanf(fp,%s,ex); // fread
printf(%s\n,ex);
if(!strncmp(index[j],ex,ms_len))
{
cnt[j]++;
}
if(!feof(fp)==NULL)
{
break;
}
}
fclose(fp);
}
printf(============검색결과============\n);
for(j=0;ji;j++)
{
printf(%s-%d번\n,index[j],cnt[j]);
}
system(pause);
system(cls);
}