Другие языки программирования и технологии
Изучив (прочитав, проанализировав) весь код исходников программы будешь знать её так же хорошо, как и её разработчик?
Необязательно, хотя возможно
Если написано по-человечески и память хорошая - возможно.
еще если и мыслить будете так же
Написан на среде Дельфи, разбирай.
TUser=packed record
Fam:string[20];
Nam:string[10];
Oth:string[15];
Pser:string[4];
Pnum:string[6];
Droz:string[10];
City:string[15];
Ulic:string[15];
Dom:string[4];
Kv:string[4];
NSot:string[11];
NDom:string[20];
Email:string[25];
end;
var
Form1: TForm1;
n:integer;{переменная для определения номера поьзователя }
pn:textfile;{текст. файл для хранения номера пользователя}
Ubd:file of TUser;
User:TUser;
d:boolean;{перем. для ориентировки, нажата кнопка подвердить в Unit2}
k:string; {для вывода сообщения что под таким номером записан пользователь}
s:string[17];{для определения какой CheckBox нажата, подробнее ниже смотрите в процедуре TForm1.CheckBox2Click}
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with User do
begin
Fam:=edit1.Text;
Nam:=edit2.Text;
Oth:=edit3.Text;
Pser:=edit4.Text;
Pnum:=edit5.Text;
Droz:=datetostr(DateTimePicker1.Date);
City:=ComboBox1.Items[ComboBox1.ItemIndex];
Ulic:=Edit6.Text;
Dom:=Edit7.Text;
Kv:=edit8.Text;
if CheckBox1.Checked then Nsot:=Edit9.Text; {если сотовый есть, то записать его в Nsot}
if CheckBox2.Checked then NDom:=Edit10.Text; {анологично}
if CheckBox3.Checked then Email:=Edit11.Text; {анологично}
str(n,k); {аналог inttostr}
with Form2 do begin
Label1.Caption:=Fam+' '+Nam+' '+Oth; Label2.Caption:=Pser+' '+Pnum;{вывод данных в Form 2 для потверждения }
Label3.Caption:=Droz; Label4.Caption:=City+' '+Ulic+' '+Dom+' '+Kv;
Label5.Caption:='Сотовый: '+Nsot+' '+ ' , '+' Домашний: '+' '+NDom;
Label6.Caption:=Email; Label7.Caption:='Номер пользователя'+'('+k+')';
Form2.ShowModal;{ОТКРЫВАЕМ FORM 2}
end;
end;
if d=true then {если кнопка подвердить нажата то записываем данные в файл}
begin
write(Ubd,User); {запись}
ShowMessage('пользователь записань под номером '+k);
closefile(Ubd);{закрываем файл базы данных}
Edit1.Text:='';Edit2.Text:='';Edit3.Text:='';Edit4.Text:=''; {ПОСЛЕ ПОТВЕРЖДЕНИЯ УСТАНОВЛИВАЕМ ПОЛЯ ПО УМОЛЧАНИЮ В FORM 1}
Edit5.Text:='';Edit6.Text:='';Edit7.Text:='';Edit8.Text:='';
Edit9.Text:='';Edit10.Text:='';Edit11.Text:='';
ComboBox1.Text:='Выберите город'; CheckBox1.Checked:=false;
CheckBox2.Checked:=false; CheckBox3.Checked:=false;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
k:=(sender as TCheckBox).Caption; {Берем св. Caption в k:string }
case Length(k) of {ПРОВЕРЯЕМ КОЛИЧЕСТВО БУКВ в K }
7:Edit9.Enabled:=CheckBox1.Checked; {ЕСЛИ БУКВ 7 ТО ЭТО 'СОТОВЫЙ', И СДЕЛАЕМ ЧТОБЫ МОЖНО БЫЛО НАПИСАТЬ СОТОВЫЙ НОМЕР }
8:Edit10.Enabled:=CheckBox2.Checked; {АНОЛОГИЧНО}
17:Edit11.Enabled:=CheckBox3.Checked; {АНОЛОГИЧНО}
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin {ПЕРЕД ЗАКРЫТИЕМ ПРОВЕРЯЕТСЯ ЗАПИСАН ПОЛЬЗОВАТЕЛЬ В БД}
if d=true then inc(n); {ЕСЛИ ДА УВЕЛИЧИВАЕМ ЕГО N ДЛЯ ПОСЛЕДУЮЩЕЙ ЗАПИСИ И СОХРАНЯЕМ В ТЕКСТ. ФАЙЛ}
assignfile(pn,'numberuser.txt');
rewrite(pn);
write(pn,n);
closefile(pn);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin {ЭТО ПРОЦЕДУРА ВЫПОЛНЯЕТСЯ ПРИ ОТКРЫТИЕ ПРОГРАММЫ}
assignfile(pn,'numberuser.txt'); {ОТКРЫВАЕМ ЕГО ДЛЯ ОПРЕДЕЛЕНИЯ НОМЕРА ПОЛЬЗОВАТЕЛЯ}
reset(pn); {ЗАРАНЕЕ ТАМ ХРАНИТЬСЯ ЧИСЛО 1 }
read(pn,n);
closefile(pn);
assignfile(Ubd,'bduser.db'); {ОТКРЫВАЕТСЯ САМА БАЗА ДАННЫХ, ДЛЯ ЗАПИСИ ПОЛЬЗОВАТЕЛЯ}
reset(Ubd);
Seek(Ubd,filesize(Ubd));
end;
end.
TUser=packed record
Fam:string[20];
Nam:string[10];
Oth:string[15];
Pser:string[4];
Pnum:string[6];
Droz:string[10];
City:string[15];
Ulic:string[15];
Dom:string[4];
Kv:string[4];
NSot:string[11];
NDom:string[20];
Email:string[25];
end;
var
Form1: TForm1;
n:integer;{переменная для определения номера поьзователя }
pn:textfile;{текст. файл для хранения номера пользователя}
Ubd:file of TUser;
User:TUser;
d:boolean;{перем. для ориентировки, нажата кнопка подвердить в Unit2}
k:string; {для вывода сообщения что под таким номером записан пользователь}
s:string[17];{для определения какой CheckBox нажата, подробнее ниже смотрите в процедуре TForm1.CheckBox2Click}
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with User do
begin
Fam:=edit1.Text;
Nam:=edit2.Text;
Oth:=edit3.Text;
Pser:=edit4.Text;
Pnum:=edit5.Text;
Droz:=datetostr(DateTimePicker1.Date);
City:=ComboBox1.Items[ComboBox1.ItemIndex];
Ulic:=Edit6.Text;
Dom:=Edit7.Text;
Kv:=edit8.Text;
if CheckBox1.Checked then Nsot:=Edit9.Text; {если сотовый есть, то записать его в Nsot}
if CheckBox2.Checked then NDom:=Edit10.Text; {анологично}
if CheckBox3.Checked then Email:=Edit11.Text; {анологично}
str(n,k); {аналог inttostr}
with Form2 do begin
Label1.Caption:=Fam+' '+Nam+' '+Oth; Label2.Caption:=Pser+' '+Pnum;{вывод данных в Form 2 для потверждения }
Label3.Caption:=Droz; Label4.Caption:=City+' '+Ulic+' '+Dom+' '+Kv;
Label5.Caption:='Сотовый: '+Nsot+' '+ ' , '+' Домашний: '+' '+NDom;
Label6.Caption:=Email; Label7.Caption:='Номер пользователя'+'('+k+')';
Form2.ShowModal;{ОТКРЫВАЕМ FORM 2}
end;
end;
if d=true then {если кнопка подвердить нажата то записываем данные в файл}
begin
write(Ubd,User); {запись}
ShowMessage('пользователь записань под номером '+k);
closefile(Ubd);{закрываем файл базы данных}
Edit1.Text:='';Edit2.Text:='';Edit3.Text:='';Edit4.Text:=''; {ПОСЛЕ ПОТВЕРЖДЕНИЯ УСТАНОВЛИВАЕМ ПОЛЯ ПО УМОЛЧАНИЮ В FORM 1}
Edit5.Text:='';Edit6.Text:='';Edit7.Text:='';Edit8.Text:='';
Edit9.Text:='';Edit10.Text:='';Edit11.Text:='';
ComboBox1.Text:='Выберите город'; CheckBox1.Checked:=false;
CheckBox2.Checked:=false; CheckBox3.Checked:=false;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
k:=(sender as TCheckBox).Caption; {Берем св. Caption в k:string }
case Length(k) of {ПРОВЕРЯЕМ КОЛИЧЕСТВО БУКВ в K }
7:Edit9.Enabled:=CheckBox1.Checked; {ЕСЛИ БУКВ 7 ТО ЭТО 'СОТОВЫЙ', И СДЕЛАЕМ ЧТОБЫ МОЖНО БЫЛО НАПИСАТЬ СОТОВЫЙ НОМЕР }
8:Edit10.Enabled:=CheckBox2.Checked; {АНОЛОГИЧНО}
17:Edit11.Enabled:=CheckBox3.Checked; {АНОЛОГИЧНО}
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin {ПЕРЕД ЗАКРЫТИЕМ ПРОВЕРЯЕТСЯ ЗАПИСАН ПОЛЬЗОВАТЕЛЬ В БД}
if d=true then inc(n); {ЕСЛИ ДА УВЕЛИЧИВАЕМ ЕГО N ДЛЯ ПОСЛЕДУЮЩЕЙ ЗАПИСИ И СОХРАНЯЕМ В ТЕКСТ. ФАЙЛ}
assignfile(pn,'numberuser.txt');
rewrite(pn);
write(pn,n);
closefile(pn);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin {ЭТО ПРОЦЕДУРА ВЫПОЛНЯЕТСЯ ПРИ ОТКРЫТИЕ ПРОГРАММЫ}
assignfile(pn,'numberuser.txt'); {ОТКРЫВАЕМ ЕГО ДЛЯ ОПРЕДЕЛЕНИЯ НОМЕРА ПОЛЬЗОВАТЕЛЯ}
reset(pn); {ЗАРАНЕЕ ТАМ ХРАНИТЬСЯ ЧИСЛО 1 }
read(pn,n);
closefile(pn);
assignfile(Ubd,'bduser.db'); {ОТКРЫВАЕТСЯ САМА БАЗА ДАННЫХ, ДЛЯ ЗАПИСИ ПОЛЬЗОВАТЕЛЯ}
reset(Ubd);
Seek(Ubd,filesize(Ubd));
end;
end.
Александр Даровских
Я программировал в Delphi 7; разобрать не трудно. Просто переменные и имена запомнить, а остальное легко понять.
Похожие вопросы
- Код для программы в Делфи
- Как понять машинный код ?(Компилятор переводит исходный код компьютерной программы в машиный код).
- Что такое исходник программы??? Возможно ли его изменить?Пожалуйста поподробней
- Программа-эта и есть программный код тоесть программный код является программой
- как посмотреть исходник программы?
- Помогите написать код для программы...
- Напишите пожалуйста код простейшей программы вычисления значения 2 в степени N.
- дфйте пожалусто,регистрационный код к программе соло на клавиатуре 8.1
- Как правильно думать начинающему программисту? а то без логики своих действий в написании кода, толковую программу не на
- полезно ли читать исходный код других программ??