ВОт я зделал прогу, а она выбитвает ошибку, помогите пожалуйста...а то я не знаю что делать((((
Входной текст хранится в файле и состоит из слов, разделенных пробелами. Ввести с клавиатуры шаблон метасимволы (метасимвол задается в конкретном варианте). Во входном тексте найти слова (цепочки) по заданной маской. Сформировать исходный файл, превратив исходный текст определенным в конкретном варианте способом. Метасимволы в шаблоне могут повторяться, но они все для конкретного варианта одинтипичные.
Метасимвол - (цифра). Содержание метасимволы - цепочка одинаковых символов заданной длины должен присутствовать в слове в нужной позиции. Длина цепочки должна быть не менее заданной (цифра). Сформировать новый текст, заменив в найденных словах цепочки искомых символов на один соответствующий символ.
Код | //--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include <string.h> #include <stdio.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { TOpenDialog *od = new TOpenDialog(this); od->Filter = "Текстовые файлы|*.txt"; if (od->Execute()) { Memo1->Lines->LoadFromFile(od->FileName); } delete od; od = NULL; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { exit(0); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) {char S[80],S1[80]; int zn,l,k,kin,dow,flag,p,n,r,b,a,i,m,j; strncpy(S, Memo1->Lines->Strings[0].c_str(), 80); zn=0; k=0; if(i!=Edit1->Text.Length()-1){ if( (Edit1->Text[i]=='{') && (Edit1->Text[i+2]=='}') ) { if( (Edit1->Text[i+1]>='0') && (Edit1->Text[i+1]<='9') ) k++; zn=zn+Edit1->Text[i+1]-48; } } l=strlen(S)-3*k+zn; i=0; m=0; while(i<Edit1->Text.Length()) if(S[i]!=' ') kin=i; else m++; if(S[i]==' ') { dow=m; p=kin-m; if(dow==l){for(n=1;n<Edit1->Text.Length();n++) {if (S[j+p]==Edit1->Text[n]) a++; else if( (Edit1->Text[i]=='{') && (Edit1->Text[i+2]=='}') ) { if( (Edit1->Text[i+1]>='0') && (Edit1->Text[i+1]<='9') ) r=Edit1->Text[i+1]-48; for(b=0;b<r;b++) { if (S[j+p]==S[j+p+b]) flag++; if (flag==r) a=a+r; if (a==m) strcpy(S[j+p],S[j+p+b]); } } }
|
|