Другие языки программирования и технологии

Изучив (прочитав, проанализировав) весь код исходников программы будешь знать её так же хорошо, как и её разработчик?

Необязательно, хотя возможно
Виталий Яхно
Виталий Яхно
2 404
Лучший ответ
Если написано по-человечески и память хорошая - возможно.
еще если и мыслить будете так же
Андрей Неверов
Андрей Неверов
19 386
Написан на среде Дельфи, разбирай.
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; разобрать не трудно. Просто переменные и имена запомнить, а остальное легко понять.