www.pudn.com > GETFONT.rar > GETFONT.CPP


#include "conio.h" 
#include "stdlib.h" 
#include "stdio.h" 
#include "string.h" 
#include "ctype.h" 
#define   CHARTOTALONELINE	19 
#define   LINE_END_SIGN		0X5E 
 
typedef union 
{ 
	long 	LPart; 
	unsigned char CPart[4]; 
}LongInt; 
unsigned int SceneTotal,StartUnit,EndUnit,StartLesson,EndLesson,PartTotal,LessonTotal,ParaTotal,SentenceTotal; 
unsigned char FileName1[13],BinFName[13],TabFName[13],FileName2[13],FileName3[13]; 
unsigned char LineBuffer[4000],TitleString[4000]; 
unsigned char CurrWordFirstLetter; 
unsigned char PrevWord[500]; 
unsigned long Offset1; 
unsigned int Offset,ThisWordTotal; 
unsigned char TempChar; 
unsigned long Low,Mid,High; 
//unsigned char SentenceBuffer[100][400]; 
FILE* TxtFp,*V_IndexFp,*BinFp,*TabFp,*G_IndexFp,*ListFp; 
LongInt  WriteLessonAddr,BackAddr,WriteSentenceTotalAddr; 
unsigned int GetThisWordOffset(unsigned char chartype); 
void GetWordAddr(void); 
void SearchThisWord(void); 
void ReadAString(unsigned char SignChar,unsigned char * DestStr); 
unsigned int ChangeOt(void) 
{ 
   unsigned int i,j; 
   TitleString[0]='~'; 
   TitleString[1]=LineBuffer[0]; 
   TitleString[2]=LineBuffer[1]; 
   TitleString[3]=0; 
   strcat(TitleString,"~,~"); 
   j=strlen(TitleString); 
   for(i=2;;i++) 
   { 
     if ( LineBuffer[i]>='a' && LineBuffer[i]<='z') break; 
     if ( LineBuffer[i]!=' ' ) return 0; 
   } 
 
   for(;;i++,j++) 
    if ( LineBuffer[i]==' ' || LineBuffer[i]=='\n' ) break; 
    else 
       TitleString[j]=LineBuffer[i]; 
 
   TitleString[j++]='~'; 
   TitleString[j]=0; 
   fputs(TitleString,BinFp); 
   fputc('\n',BinFp); 
 
} 
void main(int arg, char* arv[]) 
{ 
	unsigned char i; 
	unsigned char endflag=0; 
   if ( arg != 2 ) 
   { 
      printf("Usage: getfont  *.txt"); 
      exit(0); 
   } 
   strcpy(FileName2,arv[1]); 
   for(i=0;;i++) 
    if ( FileName2[i]=='.' ) break; 
    FileName2[i]=0; 
   strcpy(FileName2,"hnwb1.txt"); 
   TxtFp = fopen(arv[1],"rt"); 
   BinFp = fopen(FileName2,"wt"); 
   ThisWordTotal=0; 
   CurrWordFirstLetter='a'; 
   PrevWord[0]=0; 
 
   while(!feof(TxtFp)) 
   { 
    fgets(LineBuffer,1600,TxtFp); 
      LineBuffer[1200]=0; 
    if ( LineBuffer[0] >= 0xa1 ) 
    { 
      if  (LineBuffer[2]<0xa1) 
      { 
	if (strcmp(LineBuffer,PrevWord)==0 ) break; 
	strcpy(PrevWord,LineBuffer); 
	ChangeOt(); 
      } 
    }else 
    {   fputs(LineBuffer,BinFp); 
	fputc('\n',BinFp); 
    } 
 
   } 
   fcloseall(); 
 
}