int constj=0;
char xxx[10];
ifstream file1;
file1.open(filename);
while(!file1.getline(xxx,sizeof(xxx)).eof())
{
if(!stricmp(temp,xxx))
{
consti=1;/*MessageBox(NULL,"Повтор", не ноль "Help",MB_OK);*/
break;
}
constj++;
}
file1.close();
if(!consti)
{
ofstream file;
file.open(filename,ios::out|ios::app);
file<<temp<<endl;
file.close();
char buf[20];
if(!stricmp(b,"(30,"))
{
sprintf(buf,"%i %s",constj,temp);
Form1->ListBox4->Items->Add(buf);
sprintf(ident[id],"%s",temp);
id++;
}
else
{
sprintf(buf,"%i %s",constj,temp);
Form1->ListBox5->Items->Add(buf);
sprintf(con[co],"%s",temp);
co++;
}
}
char bufc[10];
sprintf(bufc,"%s%i)",b,constj);
Form1->ListBox1->Items->Add(bufc);
int bbb;
if(!stricmp(b,"(30,")) bbb=30;
else bbb=40;
que[ique].i=bbb;
que[ique].j=constj;
ique++;
}
void printznak(char s)//в очередь помещает разделители
{
for(int i=0;i<16;i++)
if(s==zna[i])
{
char buf[10];
sprintf(buf,"(20,%i)",i);
Form1->ListBox1->Items->Add(buf);
que[ique].i=20;
que[ique].j=i;
ique++;
//delete []buf;
}
}
int typ(char s)//символ - это буква, цифра, разделитель или пробел
{
int i;
for(i=0;i<52;i++) if(s==letter[i]) return bukva;
for(i=0;i<10;i++) if(s==number[i]) return cifra;
for(i=0;i<14;i++) if(s==zna[i]) return znak;
if (s==zna[14]) return pod;
if (s==zna[15]) return tck;
if(s==' ')return probel;
return 0;
}
void ident_cif_oper(char temp[])
{
int i,j;
for(i=0;i<33;i++)
if(!stricmp(temp,opername[i].name))//выделяем ключевые слова
{
char buf[10];
sprintf(buf,"(10,%i)",opername[i].nmb);
Form1->ListBox1->Items->Add(buf);
que[ique].i=10;
que[ique].j=opername[i].nmb;
ique++;
//break;
// delete []buf;
// MessageBox(NULL,"oper", "Help",MB_OK);
return;
}
j=strlen(temp);
for(i=0;i<j;i++)if(typ(temp[i])==bukva||typ(temp[i])==znak)break;
if(i==j)
{
char filename[13]="Const.txt";
fileprint(temp,filename,"(40,");
//MessageBox(NULL,"const", "Help",MB_OK);
return;
}
char filename2[13]="Ident.txt";
fileprint(temp,filename2,"(30,");
//MessageBox(NULL,"ident", "Help",MB_OK);
return;
}
int comment(char zxz[]) //удаление комментариев
{
int i;
for (i=0;i<strlen(zxz);i++)
if (zxz[i]==zna[1]&&zxz[i+1]==zna[1])
return 1;
return 0;
}
void prov(char zxz[])
{
int skip=0;
char n,*temp;
int j=0;
temp=new char[strlen(zxz)];
for(int i=0;i<strlen(zxz);i++)
{
if (skip>0)
{
skip--;
goto met1;
}
/////////////////////////////////////////////////////////////////
if (zxz[i]==zna[15]&&zxz[i+1]==zna[15]) // ..
{ //
if (exist)
{
*(temp+j)='\0'; //
j=0;
ident_cif_oper(temp); //
}
*(temp)=zxz[i]; //
*(temp+1)=zxz[i+1]; //
*(temp+2)='\0'; //
skip=1; //
que[ique].i=20;
que[ique].j=16;
ique++;
Form1->ListBox1->Items->Add("(20,16)"); //
goto met1; //
}
if (zxz[i]==zna[2]&&zxz[i+1]==zna[2]) // **
{
if (exist)
{
*(temp+j)='\0'; //
j=0;
ident_cif_oper(temp); //
}
*(temp)=zxz[i];
*(temp+1)=zxz[i+1];
*(temp+2)='\0';
skip=1;
que[ique].i=20;
que[ique].j=17;
ique++;
Form1->ListBox1->Items->Add("(20,17)");
goto met1;
}
if (zxz[i]==zna[13]&&zxz[i+1]==zna[9]) // /=
{
if (exist)
{
*(temp+j)='\0'; //
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.