Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.80 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8. Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  9. Menus;
  10.  
  11. type
  12.  
  13. { TForm1 }
  14.  
  15. TForm1 = class(TForm)
  16. MainMenu1: TMainMenu;
  17. Memo1: TMemo;
  18. MenuItem1: TMenuItem;
  19. MenuItem10: TMenuItem;
  20. MenuItem2: TMenuItem;
  21. MenuItem3: TMenuItem;
  22. MenuItem4: TMenuItem;
  23. MenuItem5: TMenuItem;
  24. MenuItem6: TMenuItem;
  25. MenuItem7: TMenuItem;
  26. MenuItem8: TMenuItem;
  27. MenuItem9: TMenuItem;
  28. OpenDialog1: TOpenDialog;
  29. SaveDialog1: TSaveDialog;
  30. procedure FormCreate(Sender: TObject);
  31. procedure MenuItem10Click(Sender: TObject);
  32. procedure MenuItem1Click(Sender: TObject);
  33. procedure MenuItem2Click(Sender: TObject);
  34. procedure MenuItem3Click(Sender: TObject);
  35. procedure MenuItem4Click(Sender: TObject);
  36. procedure MenuItem5Click(Sender: TObject);
  37. procedure MenuItem6Click(Sender: TObject);
  38. procedure MenuItem7Click(Sender: TObject);
  39. procedure MenuItem8Click(Sender: TObject);
  40. procedure MenuItem9Click(Sender: TObject);
  41. private
  42.  
  43. public
  44.  
  45. end;
  46.  
  47. var
  48. Form1: TForm1;
  49. S:string;
  50. implementation
  51.  
  52. {$R *.lfm}
  53.  
  54. { TForm1 }
  55.  
  56. procedure TForm1.MenuItem1Click(Sender: TObject);
  57. begin
  58.  
  59. end;
  60.  
  61. procedure TForm1.FormCreate(Sender: TObject);
  62. begin
  63. //Обработчик события создания формы
  64. //Удалить текст из Memo1
  65.  
  66. Memo1.Clear;
  67.  
  68. //Развернуть Memo1 на всю клиенскую область
  69. Memo1.Align:=alClient;
  70.  
  71. //Установить шрифт Courier
  72. Memo1.Font.Name:='Courier';
  73. //Пока S редактируемый текст не сохранен в файле
  74. S:='';
  75. //В дальнейшем S предоставляет имя файла
  76. //Считать,что текст не модифицирован
  77. Memo1.Modified:=false;
  78. end;
  79.  
  80.  
  81.  
  82. procedure TForm1.MenuItem2Click(Sender: TObject);
  83. begin
  84. //создать
  85. If Memo1.Modified then
  86. begin
  87. if s='' then
  88. begin
  89. //если текст в Мемо был изменен
  90. case MessageDlg('Текст был изменен. Сохранить данные'+
  91. 'в файле по выбору?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  92. mrYes:begin
  93. MenuItem6Click(Self);
  94. //перейти к открыть
  95. end;
  96. mrCancel:exit; //не сохранять и перейти к открыть
  97. mrNo:; //не сохранять
  98. end;
  99. end else
  100. //если текст в Мемо был изменен
  101. case MessageDlg('Текст был изменен. Сохранить данные'+
  102. 'в файле по выбору?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  103. mrYes:begin
  104. MenuItem5Click(Self);
  105. //перейти к открыть
  106. end;
  107. mrCancel:exit; //не сохранять и перейти к открыть
  108. mrNo:; //не сохранять
  109. end;
  110. end;
  111. Memo1.Clear;
  112. S:='';
  113. Form1.Caption:='Form1';
  114. Memo1.Modified:=false;
  115. end;
  116.  
  117. procedure TForm1.MenuItem3Click(Sender: TObject);
  118. begin
  119. //Открыть
  120. If Memo1.Modified then
  121. begin
  122. if s='' then
  123. begin
  124. //если текст в Мемо был изменен
  125. case MessageDlg('Текст был изменен. Сохранить данные'+
  126. 'в файле по выбору?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  127. mrYes:begin
  128. MenuItem6Click(Self);
  129. //перейти к открыть
  130. end;
  131. mrCancel:exit; //не сохранять и перейти к открыть
  132. mrNo:; //не сохранять
  133. end;
  134. end else
  135. //если текст в Мемо был изменен
  136. case MessageDlg('Текст был изменен. Сохранить данные'+
  137. 'в файле по выбору?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  138. mrYes:begin
  139. MenuItem5Click(Self);
  140. //перейти к открыть
  141. end;
  142. mrCancel:exit; //не сохранять и перейти к открыть
  143. mrNo:; //не сохранять
  144. end;
  145. end;
  146. //открыть файл и поместить в Мемо
  147. if Form1.OpenDialog1.Execute then
  148. begin
  149. //если выбран файл
  150. S:=OpenDialog1.FileName; //S=Имя файла
  151. Memo1.Lines.LoadFromFile(S);//загрузить файл
  152. Memo1.Modified:=false;
  153. Form1.Caption:='Form1'+''+S;
  154. end;
  155.  
  156.  
  157. end;
  158.  
  159. procedure TForm1.MenuItem4Click(Sender: TObject);
  160. begin
  161. //закрыть
  162. If Memo1.Modified then
  163. begin
  164. if s='' then
  165. begin
  166. //если текст в Мемо был изменен
  167. case MessageDlg('Текст был изменен. Сохранить данные'+
  168. '?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  169. mrYes:begin
  170. MenuItem6Click(Self);
  171. //перейти к открыть
  172. end;
  173. mrCancel:exit; //не сохранять и перейти к открыть
  174. mrNo:; //не сохранять
  175. end;
  176. end else
  177. //если текст в Мемо был изменен
  178. case MessageDlg('Текст был изменен. Сохранить данные'+
  179. 'в файле по выбору?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  180. mrYes:begin
  181. MenuItem5Click(Self);
  182. //перейти к открыть
  183. end;
  184. mrCancel:exit; //не сохранять и перейти к открыть
  185. mrNo:; //не сохранять
  186. end;
  187. end;
  188. //открыть файл и поместить в Мемо
  189. Memo1.Clear;
  190. S:='';
  191. Form1.Caption:='Form1';
  192. Memo1.Modified:=false;
  193. end;
  194.  
  195. procedure TForm1.MenuItem5Click(Sender: TObject);
  196. begin
  197. //сохранить
  198. if s='' then
  199. MenuItem6Click(Self)
  200. else
  201. Memo1.Lines.SaveToFile(S);
  202. Memo1.Modified:=false;
  203. end;
  204.  
  205. procedure TForm1.MenuItem6Click(Sender: TObject);
  206. begin
  207. //Сохранить как
  208. //Открытие окна диалога для выбора папки
  209. //и задания имени и типа файла, в который сохранить Memo1
  210. if Form1.SaveDialog1.Execute then
  211. begin
  212. //Если файл выбран
  213. //то присвоить имя файла
  214. S:=SaveDialog1.FileName;
  215. //сохранить текст в файле
  216. Memo1.Lines.SaveToFile(S);
  217. // Считать, что текст не модищицирован
  218. Memo1.Modified:=false;
  219. //в заголовок формы добавиь имя файла
  220. Form1.Caption:='Form1'+''+S;
  221. end;
  222.  
  223. end;
  224.  
  225. procedure TForm1.MenuItem7Click(Sender: TObject);
  226. begin
  227. //Выход
  228. If Memo1.Modified then
  229. begin
  230. if s='' then
  231. begin
  232. //если текст в Мемо был изменен
  233. case MessageDlg('Текст был изменен. Сохранить данные'+
  234. 'в файле по выбору?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  235. mrYes:begin
  236. MenuItem6Click(Self);
  237. //перейти к открыть
  238. end;
  239. mrCancel:exit; //не сохранять и перейти к открыть
  240. mrNo:; //не сохранять
  241. end;
  242. end else
  243. //если текст в Мемо был изменен
  244. case MessageDlg('Текст был изменен. Сохранить данные'+
  245. 'в файле по выбору?', mtConfirmation,[mbYes,mbNo,mbCancel],0) of
  246. mrYes:begin
  247. MenuItem5Click(Self);
  248. //перейти к открыть
  249. end;
  250. mrCancel:exit; //не сохранять и перейти к открыть
  251. mrNo:; //не сохранять
  252. end;
  253. end;
  254. Close;
  255. end;
  256.  
  257. procedure TForm1.MenuItem8Click(Sender: TObject);
  258. begin
  259.  
  260. end;
  261.  
  262. procedure TForm1.MenuItem9Click(Sender: TObject); //группы
  263. label L;
  264. Const
  265. Km=75;
  266. var
  267. j,i:integer;
  268. D:string;
  269. B:array [1..Km] of String[6];
  270.  
  271. Fz,F:TextFile;
  272. N,k,buf:integer;
  273. gr:string[6];
  274. Fam:string[6];
  275. O1,O2,O3:2..5;
  276. p2:string[2];
  277. p1:string[1];
  278. group:string;
  279.  
  280. begin
  281. j:=0;
  282. n:=1;
  283. Memo1.Clear;
  284. if Form1.OpenDialog1.Execute then
  285.  
  286. //если выбран файл
  287. S:=OpenDialog1.FileName; //S=Имя файла
  288. AssignFile(F,S);
  289. reset(F);
  290.  
  291. B[1]:='group';
  292. k:=1;
  293. While not eof(f) do
  294. begin
  295. if n>9 then
  296. readln(F,P2,N,P2,gr,P2,Fam,P2,P2,O1,P2,O2,P2,O3)
  297. else
  298. readln(F,p1,P2,N,P2,gr,P2,Fam,P2,P2,O1,P2,O2,P2,O3);
  299.  
  300.  
  301.  
  302. for i:=1 to k do
  303. if Gr<>B[i] then
  304. else
  305. goto L;
  306. B[k]:=Gr;
  307. k:=k+1;
  308.  
  309. //end;
  310. L:Memo1.Clear;
  311. // for i:=1 to k do
  312. // Memo1.Lines.Add(B[i]);
  313. // Memo1.Lines.Add('KKKKKKK'+IntToStr(k));
  314. end;
  315. k:=k-1;
  316. // Memo1.Lines.Add('KKKKKKK'+IntToStr(k));
  317.  
  318.  
  319. for i:=1 to k do
  320. begin
  321. AssignFile(F,S);
  322. reset(F);
  323. While not eof(f) do
  324. begin
  325. if n>9 then
  326. readln(F,P2,N,P2,gr,P2,Fam,P2,P2,O1,P2,O2,P2,O3)
  327. else
  328. readln(F,p1,P2,N,P2,gr,P2,Fam,P2,P2,O1,P2,O2,P2,O3);
  329. // Memo1.Lines.Add('ggggggggg'+Gr);
  330. //UpperCase(gr);
  331. n:=n+1;
  332.  
  333. if B[i]=Gr then
  334. begin
  335. //if n<9 then
  336. // begin
  337.  
  338. j:=j+1;
  339. Memo1.Lines.Add(p1+p2+IntToStr(j)+P2+gr+P2+Fam+P2+P2+IntToStr(O1)+P2+IntToStr(O2)+P2+IntToStr(O3))
  340. // end
  341. // else
  342. // begin
  343. // j:=j+1;
  344. // Memo1.Lines.Add(p2+IntToStr(j)+P2+gr+P2+Fam+P2+P2+IntToStr(O1)+P2+IntToStr(O2)+P2+IntToStr(O3))
  345. // end;
  346. // n:=n+1;}
  347. end ;
  348. end;
  349. j:=0;
  350.  
  351. if Form1.SaveDialog1.Execute then
  352. begin
  353. D:=SaveDialog1.FileName;
  354. Memo1.Lines.SaveToFile(D);
  355. // group:=gr;
  356. Memo1.Clear;
  357.  
  358. end;
  359.  
  360. end;
  361. Memo1.Modified:=false;
  362.  
  363.  
  364. end;
  365. // end;
  366. //end;
  367. procedure TForm1.MenuItem10Click(Sender: TObject); //фамилии
  368. var
  369. i:integer;
  370. F:TextFile;
  371. N:integer;
  372. gr:string[6];
  373. Fam:string[10];
  374. O1,O2,O3:2..5;
  375. p2:string[2];
  376. p1:string[1];
  377. Famil:string;
  378. begin
  379. i:=0;
  380. n:=1;
  381. Memo1.Clear;
  382. if Form1.OpenDialog1.Execute then
  383.  
  384. //если выбран файл
  385. S:=OpenDialog1.FileName; //S=Имя файла
  386. AssignFile(F,S);
  387. reset(F);
  388. Famil:='Petrov ';
  389. InputQuery('Фамилии', 'Введите необходимую Фамилию', Famil);
  390. While not eof(f) do
  391. begin
  392.  
  393. if n>9 then
  394. readln(F,P2,N,P2,gr,P2,Fam,P2,P2,O1,P2,O2,P2,O3)
  395. else
  396. readln(F,p1,P2,N,P2,gr,P2,Fam,P2,P2,O1,P2,O2,P2,O3);
  397. UpperCase(Fam);
  398. UpperCase(Famil);
  399. // if n<9 then
  400. // begin
  401. if Fam=Famil then
  402. begin
  403. i:=i+1;
  404. Memo1.Lines.Add(p1+p2+IntToStr(i)+P2+gr+P2+Fam+P2+P2+IntToStr(O1)+P2+IntToStr(O2)+P2+IntToStr(O3))
  405. end;
  406. // end
  407. // else
  408. // begin
  409. // if Fam=Famil then
  410. // begin
  411. // i:=i+1;
  412. // Memo1.Lines.Add(p2+IntToStr(i)+P2+gr+P2+Fam+P2+P2+IntToStr(O1)+P2+IntToStr(O2)+P2+IntToStr(O3))
  413. end;
  414. end;
  415. // n:=n+1;
  416. //end;
  417.  
  418.  
  419. //end;
  420.  
  421.  
  422. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement