Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Приложение А (обязательное)




Листинг программы

Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Grids, Menus, MyFunction;= class(TForm): TMainMenu;: TMenuItem; //действие: TMenuItem; //добавить: TMenuItem; //таблицу: TMenuItem; //поле: TMenuItem; //ключ: TMenuItem; //просмотр: TMenuItem; //exit: TStringGrid;: TButton;: TEdit;: TLabel;: TComboBox;: TLabel;: TEdit;: TLabel;: TComboBox;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TRadioButton;: TRadioButton;: TRadioButton;: TMemo;: TRadioButton;: TCheckBox;: TEdit;N3Click(Sender: TObject);FormCreate(Sender: TObject);Button1Click(Sender: TObject);N4Click(Sender: TObject);ComboBox1DropDown(Sender: TObject);ComboBox1Change(Sender: TObject);ComboBox2Change(Sender: TObject);ComboBox1Select(Sender: TObject);N5Click(Sender: TObject);ComboBox2Select(Sender: TObject);N6Click(Sender: TObject);RadioButton1Click(Sender: TObject);RadioButton2Click(Sender: TObject);RadioButton3Click(Sender: TObject);CheckBox1Click(Sender: TObject);RadioButton4Click(Sender: TObject);N7Click(Sender: TObject);N9Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;: integer;: TextFile; //Файл таблиц: TextFile; //Файл полей: TextFile; //Файл ключей:TextFile;,SpisokField,SpisokKeys,Content,Temp,Temp1,Temp2, Temp3, Temp4:string;, Primary, Foreign, Column, ColumnType,SpisokPrint: string;:boolean;: integer;

{$R *.dfm}ClearAll;i,j:integer;.Label1.Visible:=false;.Label2.Visible:=false;.Label3.Visible:=false;.Label4.Visible:=false;.Label5.Visible:=false;.Label6.Visible:=false;.Button1.Visible:=false;.Edit1.Visible:=false;.Edit2.Visible:=false;.Edit3.Visible:=false;.Edit4.Visible:=false;.Edit5.Visible:=false;.Stringgrid1.Visible:=false;.ComboBox1.Visible:=false;.ComboBox2.Visible:=false;.RadioButton1.Visible:=false;.RadioButton2.Visible:=false;.RadioButton3.Visible:=false;.RadioButton4.Visible:=false;.Memo1.Visible:=false;.CheckBox1.Visible:=false;

;

TForm1.N3Click(Sender: TObject);;:=1;.Label1.Caption:='название таблицы';.Label1.Visible:=true;.Edit1.Text:='';.Edit1.Visible:=true;.Button1.Visible:=true;.Button1.Caption:='Добавить';TForm1.FormCreate(Sender: TObject);;;TForm1.Button1Click(Sender: TObject);i:integer;:boolean;,Temp1,Temp2:string;(MyAction=1) then

//Добавляем таблицуform1.Edit1.Text<>'' then(Form1.Edit1.Text);('Таблица добавлена');(MyAction=2) then

//Добавляем поле(ComboBox1.Text<>'Выбрать') and (Trim(Edit2.Text)<>'') and (ComboBox2.Text<>'Выбрать') then(ComboBox1.Text, Edit2.Text, ComboBox2.Text, Edit3.Text);('Поле добавлено');('Не все поля заполнены', mtError, [mbOk], 0);CheckBox1.Checked=true and (edit5.Text<>'')then(edit5.Text,ComboBox1.Text, Edit2.Text);('Индекс добавлен');;;if (MyAction=3) then

//Добавляем ключ(Trim(ComboBox1.Text)<>'Выбрать') and (Trim(ComboBox2.Text)='Primary') then(Trim(ComboBox1.Text)<>'Выбрать') and (Trim(Edit3.Text)<>'') thennot InKey(Trim(ComboBox1.Text), 'Primary') thenInField(Trim(ComboBox1.Text), Trim(Edit3.Text)) then(Trim(ComboBox1.Text), Trim(Edit3.Text), '', '', 'Primary');('Ключ добавлен');('Указанного поля не найдено в таблице '+Trim(ComboBox1.Text), mtError, [mbOk], 0)('Такой первичный ключ уже есть в таблице '+Trim(ComboBox1.Text), mtError, [mbOk], 0)('Не все поля заполнены', mtError, [mbOk], 0);if (Trim(ComboBox2.Text)='Foreign') then(Trim(ComboBox1.Text)<>'Выбрать') and (Trim(Edit3.Text)<>'') and (Trim(Edit4.Text)<>'') thenInField(Trim(ComboBox1.Text), Trim(Edit3.Text)) then:=1;:=Trim(Edit4.Text);i<=Length(Str) do if Str[i]<>'.' then inc(i) else break;i<Length(Str) then:=Copy(Str,1,i-1);:=Copy(Str,i+1,Length(Str));InField(Temp1, Temp2) then(Trim(ComboBox1.Text), '', Trim(Edit3.Text), Trim(Edit4.Text), 'Foreign');('Ключ добавлен');('Указанного поля в References '+Temp2+' не найдено в таблице '+Temp1, mtError, [mbOk], 0)('Неправльный формат поля References', mtError, [mbOk], 0)('Указанного поля в Foreign не найдено в таблице '+Trim(ComboBox1.Text), mtError, [mbOk], 0)('Не все поля заполнены', mtError, [mbOk], 0);;;if (MyAction=5) then

//изменяем имя таблицы(Trim(ComboBox1.Text),edit2.Text);;radiobutton2.Checked=true then:=FPrintStr();(Content,combobox1.Text, StringGrid1);;;

//добавляем полеTForm1.N4Click(Sender: TObject);;:=2;.ComboBox1.Visible:=true;.Label1.Visible:=true;.Label1.Caption:='Таблица';.Label2.Visible:=true;.Label2.Caption:='Имя поля';.Label3.Visible:=true;.Label3.Caption:='Тип';.Label4.Visible:=true;.Label4.Caption:='Длина';.Edit2.Visible:=true;.Edit3.Visible:=true;.Button1.Visible:=true;.Button1.Caption:='Добавить';.ComboBox2.Visible:=true;.CheckBox1.Visible:=true;.Items.Clear;.Items.Add('int');.Items.Add('char');.Items.Add('varchar');.Items.Add('double');.Text:='Выбрать';;TForm1.CheckBox1Click(Sender: TObject);.Edit5.Visible:=true;;TForm1.ComboBox1Change(Sender: TObject);.Text:='Выбрать';;TForm1.ComboBox2Change(Sender: TObject);.Text:='Выбрать';;TForm1.ComboBox1Select(Sender: TObject);, j, k, n, m: integer;(MyAction=2) then

//Читаем список полей:=FSpisokField;

// ComboBox2.Items.Clear;:=1;:=0;:='';:='';i<=Length(SpisokField) do(SpisokField[i]<>'&') then Content:=Content+SpisokField[i]:=0;k<=Length(Content) doContent[k]='|' then inc(j);(Content[k]='|') and (j=2) then:=Copy(Content,1,k);:=1;:='';j<=Length(Temp) doTemp[j]<>'|' then Temp1:=Temp1+Temp[j]if Temp1=ComboBox1.Text then:=Temp1+'|';:=Copy(Temp,j+1,Length(Temp)-j-1);.Items.Add(Temp);:='';:='';:=Length(Temp);;(j);;:='';:='';:=0;:=Length(Content);;(k);;:='';;(i);;;;TForm1.N6Click(Sender: TObject);;:=4;.Caption:='Просмотр данных';.Visible:=true;.RadioButton1.Visible:=true;.RadioButton2.Visible:=true;.RadioButton3.Visible:=true;.RadioButton4.Visible:=true;;TForm1.N7Click(Sender: TObject);.Close;;TForm1.N9Click(Sender: TObject);;:=5;.ComboBox1.Visible:=true;.Label1.Visible:=true;.Label1.Caption:='Таблица';.Label2.Visible:=true;.Label2.Caption:='Новое Имя';.Edit2.Visible:=true;.Button1.Visible:=true;;TForm1.RadioButton1Click(Sender: TObject);i,j:integer;.Memo1.Visible:=false;i:=0 to Form1.StringGrid1.RowCount doj:=0 to Form1.StringGrid1.ColCount do.StringGrid1.Cells[i,j]:='';.Visible:=true;.StringGrid1.ColCount:=2;.StringGrid1.Cells[0,0]:='Таблица';.StringGrid1.Cells[1,0]:='Кол-во полей';(stringGrid1);;TForm1.RadioButton2Click(Sender: TObject);i,j:integer;.Memo1.Visible:=false;.Visible:=true;.Visible:=true;.Button1.Visible:=true;.Button1.Caption:='Показать';i:=0 to Form1.StringGrid1.RowCount doj:=0 to Form1.StringGrid1.ColCount do.StringGrid1.Cells[i,j]:='';.Visible:=true;.StringGrid1.ColCount:=5;.StringGrid1.Cells[0,0]:='Таблица';.StringGrid1.Cells[1,0]:='Поле';.StringGrid1.Cells[2,0]:='Тип';.StringGrid1.Cells[3,0]:='Primary';.StringGrid1.Cells[4,0]:='Foreign';;TForm1.RadioButton3Click(Sender: TObject);.Memo1.Visible:=true;(Memo1);;

TForm1.RadioButton4Click(Sender: TObject);i,j:integer;.Memo1.Visible:=false;.Visible:=true;.StringGrid1.ColCount:=3;i:=0 to Form1.StringGrid1.RowCount doj:=0 to Form1.StringGrid1.ColCount do.StringGrid1.Cells[i,j]:='';.StringGrid1.Cells[0,0]:='Индекс';.StringGrid1.Cells[1,0]:='Таблица';.StringGrid1.Cells[2,0]:='Поле';(StringGrid1);;

TForm1.N5Click(Sender: TObject);;:=3;.ComboBox1.Visible:=true;.Label1.Visible:=true;.Label1.Caption:='Таблица';.Label3.Visible:=true;.Label3.Caption:='Тип';.Button1.Visible:=true;.Button1.Caption:='Добавить';.ComboBox2.Visible:=true;.Items.Clear;.Items.Add('Foreign');.Items.Add('Primary');

ComboBox2.Text:='Выбрать';;

//выбираем имя таблицы для заполнения поля

procedure TForm1.ComboBox1DropDown(Sender: TObject);, j, k, n, m: integer;(MyAction=2)or (MyAction=3) or (MyAction=4) then:=FSpisokTables;.Items.Clear;:=1;:='';i<=Length(SpisokTables) doSpisokTables[i]<>'&' then Temp:=Temp+SpisokTables[i].Items.Add(Temp);:='';;{else}(i);; {while}; {if}; {pocedure}TForm1.ComboBox2Select(Sender: TObject);(MyAction=3) then(ComboBox2.Text='Primary') then.Visible:=true;.Caption:='Primary';.Visible:=true;.Visible:=false;.Visible:=false;{if}if (ComboBox2.Text='Foreign').Visible:=true;.Caption:='Foreign';.Visible:=true;.Visible:=true;.Caption:='References';

// label4.Caption:='Foreign';.Visible:=true;;{then};{if};

.

MyFunction;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Grids;AddTable(NameTable: string);AddField(NameTable: string; NameField: string; NameType: string; LengthType: string);AddKey(NameTable: string; Primary: string; Foreign: string; References: string; Why: string);AddIndex(NameInd,NameTable,NameField:string);InTable(NameTable: string):boolean;InField(NameTable: string; NameField: string):boolean;InKey(NameTable: string; Why: string):boolean;FPrintStr():string;PrintData(PrintStr,name:string; StringGrid1:TStringGrid);printTables(StringGrid1:TStringGrid);PrintRelations(Memo1:Tmemo);PrintIndex(StringGrid1:TStringGrid);FSpisokTables:string;FSpisokField:string;FSpisokKeys:string;AlterTable(OldName: string; NewName: string):boolean;: string='syscatalog\tables.txt';: string='syscatalog\field.txt';: string='syscatalog\keys.txt';: string='syscatalog\index.txt';: TextFile; //Файл таблиц: TextFile; //Файл полей: TextFile; //Файл ключей:TextFile;,SpisokField,SpisokKeys,Content,Temp,Temp1,Temp2, Temp3, Temp4:string;, Primary, Foreign, Column, ColumnType,SpisokPrint: string;:boolean;: integer;AddTable(NameTable: string);(Tables,PathToTables);(Tables);(Tables,NameTable);(Tables);;AddField(NameTable: string; NameField: string; NameType: string; LengthType: string);(field, PathToField);(field);:=Trim(NameTable)+'|'+Trim(NameField)+'|'+Trim(NameType)

+'|'+Trim(LengthType);(field, Temp);(field);;

AddKey(NameTable: string; Primary: string; Foreign: string; References: string; Why: string);: integer;:=false;(Keys, PathToKeys);(Keys);:='';not eof(Keys) do(Keys, Content);:=1;:='';i<=Length(Content) do(Content[i]<>'|') then Temp:=Temp+Content[i];(Content[i]='|') thenNameTable<>Temp then SpisokKeys:=SpisokKeys+Content+'&'if (Why='Primary') and (NameTable=Temp) then begin SpisokKeys:=SpisokKeys+NameTable+'|'+Primary+'|'+Copy(Content,i+1,Length(Content)-i)+'&'; Logic:=true; endif (Why='Foreign') and (NameTable=Temp) then begin SpisokKeys:=SpisokKeys+Content+'|'+Foreign+'|'+References+'&'; Logic:=true; end;:='';:=Length(Content);;(i);;;not Logic thenWhy='Primary' then:=SpisokKeys+NameTable+'|'+Primary+'&'if Why='Foreign' then:=SpisokKeys+NameTable+'|'+Foreign+'|'+References+'&';;(Keys);:=1;:='';i<=Length(SpisokKeys) doSpisokKeys[i]<>'&' then Temp:=Temp+SpisokKeys[i](Keys, Temp);:='';;(i);;(Keys);;AddIndex(NameInd,NameTable,NameField:string);:='';(Index, PathToInd);(index);:=NameInd+'|'+NameTable+'|'+NameField;(Index, Temp);(Index);;

//Существование таблицыInTable(NameTable: string):boolean;:=false;(Tables, PathToTables);(Tables);:='';not eof(Tables) do(Tables, Temp);(NameTable=Temp) then Logic:=true;(Tables);:=Logic;;

//Существование поля в таблицеInField(NameTable: string; NameField: string):boolean;, j, k, n, m: integer;(Field, PathToField);:=0;:=0;:=1;:='';n<=Length(NameField) doNameField[n]<>',' then Temp:=Temp+NameField[n];(NameField[n]=',') or (n=Length(NameField)) then(m);:=NameTable+'|'+Trim(Temp);(Field);not eof(Field) do(Field, Content);:=1;:=0;:='';i<=Length(Content) do(Content[i]<>'|') and (j<>2) then Temp1:=Temp1+Content[i]if Content[i]='|' then begin Temp1:=Temp1+Content[i]; inc(j); end;(Content[i]='|') and (j=2) thenTemp1[Length(Temp1)]='|' then Temp1:=Copy(Temp1,1,Length(Temp1)-

);Temp=Temp1 then inc(k);:='';:=Length(Content);;(i);;;:='';(Field);;(n);;m=k then Logic:=trueLogic:=false;:=Logic;;

//Существование ключа в таблицеInKey(NameTable: string; Why: string):boolean;, j, n:integer;:=false;(Keys, PathToKeys);(Keys);:='';(not eof(Keys)) and (not Logic) do(Keys, Content);:=1;:=0;:='';i<=Length(Content) doContent[i]<>'|' then Temp:=Temp+Content[i]if Content[i]='|' then(Temp=NameTable) and (not Logic) then Logic:=true;Logic then inc(j);;(i);;;(Logic) thenWhy='Primary' then:=j mod 2;n=1 then Logic:=trueLogic:=false;if Why='Foreign' thenj>1 then Logic:=trueLogic:=false;;(Keys);:=Logic;;

//Список таблицFSpisokTables:string;(Tables, PathToTables);(Tables);:='';not eof(Tables) do(Tables, Temp);:=SpisokTables+Temp+'&';;(Tables);:=SpisokTables;;

//Список полейFSpisokField:string;(Field, PathToField);(Field);:='';not eof(Field) do(Field, Temp);:=SpisokField+Temp+'&';;(Field);:=SpisokField;;

//Список ключейFSpisokKeys:string;(Keys, PathToKeys);(Keys);:='';not eof(Keys) do(Keys, Temp);:=SpisokKeys+Temp+'&';;(Keys);:=SpisokKeys;;FPrintStr():string;, j, k:integer;:=FSpisokTables;:=1;:='';:='';i<=Length(SpisokTables) doSpisokTables[i]<>'&' then Content:=Content+SpisokTables[i]:=SpisokPrint+Content;:=false;:=FSpisokKeys;:=1;:='';j<=Length(SpisokKeys) do(SpisokKeys[j]<>'&') then Temp:=Temp+SpisokKeys[j]:=0;k<=Length(Temp) doTemp[k]='|' thenContent=Copy(Temp,1,k-1) then:=true;:=SpisokPrint+'|'+Copy(Temp,k+1,Length(Temp)-k)+'|';:=Length(Temp);;(k);;:='';;(j);;not Logic then:=SpisokPrint+'';:=SpisokPrint+'$';:=false;:=FSpisokField;:=1;:='';j<=Length(SpisokField) do(SpisokField[j]<>'&') then Temp:=Temp+SpisokField[j]:=0;k<=Length(Temp) doTemp[k]='|' thenContent=Copy(Temp,1,k-1) then:=true;:=SpisokPrint+Copy(Temp,k+1,Length(Temp)-k)+'|$';;:=Length(Temp);;(k);;:='';;(j);;not Logic then:=SpisokPrint+'';:=SpisokPrint+'&';:='';;(i);;:=SpisokPrint;;

//Выводим данные каталога в StringGrid

procedure PrintData(PrintStr,name:string; StringGrid1:TStringGrid);, j, k, n:integer;

//Смотрим:=1;:=PrintStr;:=1;:='';i<=Length(SpisokPrint) doSpisokPrint[i]<>'&' then Content:=Content+SpisokPrint[i]:='';:='';:='';:=1;j<=Length(Content) do if Content[j]<>'$' then inc(j) else break;:=Copy(Content,1,j-1);:=Copy(Content,j+1,Length(Content));:=1;j<=Length(Temp3) do if Temp3[j]<>'|' then inc(j) else break;:=Copy(Temp3,1,j-1);NameTable=Name then:=Copy(Temp3,j+1,Length(Temp3));InKey(Trim(NameTable), 'Primary') then:=1;j<=Length(Temp3) do if Temp3[j]<>'|' then inc(j) else break;:='primary key ('+Copy(Temp3,1,j-1)+')';:=Copy(Temp3,j+1,Length(Temp3));;:=0;:=1;:='';:='';(k<=Length(Temp3)) do(Temp3[k]<>'|') and (j mod 2 = 0) then Temp1:=Temp1+Temp3[k];(Temp3[k]<>'|') and (j mod 2 <> 0) then Temp2:=Temp2+Temp3[k];(Temp3[k]='|') or (k=Length(Temp3)) then begin Logic:=true; inc(j); end;

(Logic) and (j mod 2 = 0) then(Temp1<>'') and (Temp2<>'') then:=Foreign+'foreign key ('+Temp1+') references '+Temp2+' ';:=false;;(Temp3[k]='|') and (j mod 2 = 0) then begin Temp1:=''; Temp2:=''; end;(k);;:=Temp4;.Cells[0,row]:=NameTable;.Cells[3,row]:=Primary;.Cells[4,row]:=Foreign;.RowCount:=row+1;

//Собираем поля:=false;:='';:=1;n<=Length(Content) doContent[n]<>'$' then Temp:=Temp+Content[n]:=true;:=0;:=1;:='';:='';k<=Length(Temp) doTemp[k]='|' then(j);j=1 then Column:=Copy(Temp,1,k-1);(j=2) and (Copy(Temp,1,k-1)<>'') then ColumnType:=Copy(Temp,1,k-1);(j=3) and (Copy(Temp,1,k-1)<>'') then ColumnType:=ColumnType+' ('+Copy(Temp,1,k-1)+')';:=Copy(Temp,k+1,Length(Temp)-k);:=0;;j=3 then k:=Length(Temp);(k);;:='';.Cells[1,row]:=Column;.Cells[2,row]:=ColumnType;.RowCount:=row+1;(row);;

(n);;;not Logic then inc(row);

:='';;(i);;;printTables(StringGrid1:TStringGrid);i,j,n,count,rows:integer;:string;:=1; j:=1; n:=1; count:=0; rows:=0;:=FSpisokTables;i<=length(SpisokTables) doSpisokTables[i]<>'&' do i:=i+1;.Cells[0,j]:=copy(SpisokTables,n,i-n);:=rows+1;:=i+1;:=i;:=j+1;;:=1;:=1;i:=1 to rows do(Field, PathToField);(Field);not eof (Field) do:=1;(field,Content);(content[j]<>'|') and (i<=length(content)) do j:=j+1;StringGrid1.Cells[0,i]=copy(content,1,j-1) then:=count+1;;;.cells[1,i]:=inttostr(count);:=0;(Field);;;

PrintRelations(Memo1:Tmemo);i,n:integer;,NameTable2,primary1,primary2,s:string;:boolean;(Keys, PathToKeys);(Keys);not eof (keys) do:=false;(keys,content);i:=1 to length(content) docontent[i]='.' then f:=true;f=true then:=1;n:=i;:=''; NameTable2:='';primary1:='';primary2:='';:='';(content[i]<>'|') and (i<=length(content)) do i:=i+1;:=copy(content,n,i-n);:=i+1; n:=i;(content[i]<>'|') and (i<=length(content)) do i:=i+1;:=copy(content,n,i-n);:=i+1; n:=i;(content[i]<>'|') and (i<=length(content)) do i:=i+1;:=copy(content,n,i-n);:=i+1; n:=i;(content[i]<>'.') and (i<=length(content)) do i:=i+1;:=copy(content,n,i-n);:=i+1; n:=i;i<=length(content) do i:=i+1;:=copy(content,n,i-n);:=i+1; n:=i;:='Таблица '+NameTable1+' ('+primary1+' - primary key'+')'

+' связана внешним ключом '+ foreign+ ' с таблицей '+NameTable2+' ('

+ primary2+' - primary key)';.Lines.Add(s);.Lines.Add('');:='';;;(keys);;PrintIndex(StringGrid1:TStringGrid);i,n,rows:integer;:string;(Index, PathToInd);(Index);:=1;not eof(index) do:=1; n:=i;(Index,Content);content[i]<>'|' do i:=i+1;.Cells[0,rows]:= copy(content,n,i-n);:=i+1; n:=i;content[i]<>'|' do i:=i+1;.Cells[1,rows]:= copy(content,n,i-n);:=i+1; n:=i;i<=length(content) do i:=i+1;.Cells[2,rows]:= copy(content,n,i-n);:=i+1; n:=i;:=rows+1;;;

//Изменение таблицыAlterTable(OldName: string; NewName: string):boolean;:integer;:=false;(Tables, PathToTables);(Tables);:='';not eof(Tables) do(Tables, Temp);(OldName<>Temp) then Content:=Content+Temp+'|'begin Content:=Content+NewName+'|'; Logic:=true; end;;(Tables);(Tables);:=1;:='';i<=Length(Content) doContent[i]<>'|' then Temp:=Temp+Content[i](Tables, Temp);:='';;(i);;

CloseFile(Tables);

//Изменяем в списке полей

AssignFile(Field, PathToField);(Field);:='';not eof(Field) do(Field, Content);:=1;:='';i<=Length(Content) doContent[i]<>'|' then Temp:=Temp+Content[i]OldName<>Temp then SpisokField:=SpisokField+Content+'&'SpisokField:=SpisokField+NewName+Copy(Content, i, Length(Content)-i+1)+'&';:='';:=Length(Content);;(i);;;(Field);(Field);:=1;:='';i<=Length(SpisokField) doSpisokField[i]<>'&' then Temp:=Temp+SpisokField[i](Field, Temp);:='';;(i);;

CloseFile(Field);

//Изменяем в списке ключей

AssignFile(Keys, PathToKeys);(Keys);:='';not eof(Keys) do(Keys, Content);:=1;:='';i<=Length(Content) do

Content[i]<>'|' then Temp:=Temp+Content[i]OldName<>Temp then SpisokKeys:=SpisokKeys+Content+'&'SpisokKeys:=SpisokKeys+NewName+Copy(Content, i, Length(Content)-i+1)+'&';:='';:=Length(Content);;(i);;;(Keys);(Keys);:=1;:='';i<=Length(SpisokKeys) doSpisokKeys[i]<>'&' then Temp:=Temp+SpisokKeys[i](Keys, Temp);:='';;(i);;(Keys);

:=Logic;;

end.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...