|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - паскаль задача с меню и открытием файла нужна помощь |
|
Разное - паскаль задача с меню и открытием файла нужна помощь
|
Новый участник Сообщения: 23 |
Профиль | Отправить PM | Цитировать нужно сделать программу чтобы при выборе строчки открывался файл с текстовой информацией.
я начал делать вот что получилось uses crt; type mas = array [1..9] of string[20]; const stor: mas = ('1','2','3','4','5','6','7','8','9' ); var i,k: byte; kod: char; begin clrscr; writeln(' название программы'); Kod:=' '; while kod<>#27 do begin for i:=1 to 9 do begin if I=K then begin textbackground(1); textcolor(0); end else begin textbackground(0); textcolor(15) end; gotoxy(1,i+1); write(stor[i]); end; kod:=readkey; if kod=#0 then begin kod:=readkey; if kod=#72 then if k>1 then k:=k-1 else k:=9; if kod=#0 then end; end; end. c:=readkey; if c=#80 then begin gotoXY(10,whereY-1); write(s); end; if c=#72 then begin gotoXY(10,whereY+1); write(s); end; нужно связать это меню с текстовыми файлами,хотябы помогите чтобы прога реагировала на нажатие клавиши enter при выборе строчки |
|
Отправлено: 17:03, 11-11-2009 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать DiGer911. Я тут вашему коду некую читаемость придал.
Расставьте пожалуйста комментарии к программе. В частности - какой end; что закрывает. Какой скан код, к какой кнопке относится. Напишите логику ее работы. uses crt; type mas = array [1..9] of string[20]; const stor: mas = ('1','2','3','4','5','6','7','8','9' ); var i,k: byte; kod: char; begin clrscr; writeln(' название программы'); Kod:=' '; while kod<>#27 do begin for i:=1 to 9 do begin if I=K then begin textbackground(1); textcolor(0); end else begin textbackground(0); textcolor(15) end; gotoxy(1,i+1); write(stor[i]); end; kod:=readkey; if kod=#0 then begin kod:=readkey; if kod=#72 then if k>1 then k:=k-1 else k:=9; if kod=#0 then end; end; end. c:=readkey; if c=#80 then begin gotoXY(10,whereY-1); write(s); end; if c=#72 then begin gotoXY(10,whereY+1); write(s); end; |
------- Отправлено: 17:58, 11-11-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать type mas = array [1..9] of string[20]; const stor: mas = ('1','2','3','4','5','6','7','8','9' ); var i,k: byte; n,kod: char; begin clrscr; writeln(' название '); Kod:=' '; while kod<>#27 do begin for i:=1 to 9 do begin if I=K then begin textbackground(5); textcolor(0); end else begin textbackground(0); textcolor(15) end; gotoxy(1,i+1); write(stor[i]); end; kod:=readkey;{передвижение клавишей вверх} if kod=#0 then begin kod:=readkey; if kod=#72 then if k>1 then k:=k-1 else k:=9; if kod=#27 then end; kod:=readkey; if kod=#0 then begin kod:=readkey;{передвижение клавишей вниз} if kod=#80 then if k>1 then k:=k+1 else k:=k-1; if kod=#27 then end; end; end. я сам с трудом понимаю как работает,т.к взял половину изходника из другой задачи,но решить както это надо!нам это ничего непреподавали а сделать надо!вот и хожу по форумам помогите чем можете пожалуста |
Отправлено: 18:43, 11-11-2009 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать сейчас оттрассировать не успею. В воскресенье в лучшем случае.
|
Отправлено: 18:58, 11-11-2009 | #4 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать люди,переделал прогу!теперь проблема в том что неоткрывает файл!никаких ошибок невыдает!а содержимое непоказывает!
текстовый файл создал но хз в чем проблема!помогите блин завтра надо сдать Uses CRT; Const MaxMenuItem = 4; Var Ret : Byte; f: text; s: string; Function MainMenu(R_Select:Byte):Byte; Type TMenu = record X,Y : Byte; S : String[20]; End; Var Menu : Array [0..MaxMenuItem] Of TMenu; Run : Boolean; {ўлЎа** Їг*Єв ¬Ґ*о} Sel : Byte; TC, TB : Byte; {color} Procedure DrawMenu; Var I : Byte; Begin For I := 0 To MaxMenuItem Do Begin GotoXY(Menu[i].X, Menu[i].Y); Write(Menu[i].S); End; End; Procedure Select (I:Byte); Begin TextBackground(TC); TextColor(TB); GotoXY(Menu[i].X, Menu[i].Y); Write(Menu[i].S); TextBackground(TB); TextColor(TC); End; Procedure DeSelect (I:Byte); Begin GotoXY(Menu[i].X, Menu[i].Y); Write(Menu[i].S); End; Begin Menu[0].S := 'item 0'; Menu[0].X := 5; Menu[0].Y := 4; Menu[1].S := 'item 1'; Menu[1].X := 5; Menu[1].Y := 5; Menu[2].S := 'item 2'; Menu[2].X := 5; Menu[2].Y := 6; Menu[3].S := 'item 3'; Menu[3].X := 5; Menu[3].Y := 7; Menu[4].S := ' exit '; Menu[4].X := 5; Menu[4].Y := 8; ClrScr; TC := TextAttr mod 16; TB := TextAttr div 16; DrawMenu; Sel := R_Select; Select(Sel); Run := False; While Not Run Do Begin Case ReadKey Of #13 : Run := True; #27 : Begin Run := True; Sel := MaxMenuItem; End; #0 : Case ReadKey Of #72 : Begin DeSelect(Sel); If Sel = 0 Then Sel := MaxMenuItem Else Sel := Sel - 1; Select(Sel); End; #80 : Begin DeSelect(Sel); If Sel = MaxMenuItem Then Sel := 0 Else Sel := Sel + 1; Select(Sel); End; End; End; End; MainMenu := Sel; ClrScr; End; Begin ClrScr; Ret := 0; Repeat Ret := MainMenu(Ret); Case Ret Of 0: Begin WriteLn('‚лЎа** Їг*Єв: ', Ret); assign(f,'c:\A.txt'); reset(f); close(f); ReadLn; End; 1: Begin WriteLn('‚лЎа** Їг*Єв: ', Ret); ReadLn; End; 2: Begin WriteLn('‚лЎа** Їг*Єв: ', Ret); ReadLn; End; 3: Begin WriteLn('‚лЎа** Їг*Єв: ', Ret); ReadLn; End; Else Begin WriteLn('‚л室 Ё§ Їа®Ја*¬¬л'); ReadLn; End; End; {case Ret} Until Ret = MaxMenuItem; End. var f: text; s: string; begin assign(f,'filename'); reset(f); readln(f,s); close(f); end; |
|
Отправлено: 20:14, 11-11-2009 | #5 |
Забанен Сообщения: 463
|
Цитата DiGer911:
|
|
Отправлено: 20:49, 11-11-2009 | #6 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать Alan85,
да,я уже понял в чем ошибкаступил я |
Отправлено: 21:45, 11-11-2009 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] нужна помощь в решении проги Паскаль(по методу Функции) | eXPertVL | Программирование и базы данных | 2 | 29-11-2009 22:48 | |
Проблема с открытием файла JPG | icom756 | Цифровое изображение | 1 | 23-06-2009 17:24 | |
Нужна помощь по настройкам файла ответов и его срабатыванию при установке | Wu-Tang | Хочу все знать | 97 | 28-05-2008 18:53 | |
Нужна помощь Новое меню завершения работы | Derus | Наборы обновлений для Windows XP/2003/Windows 7 | 7 | 27-01-2008 01:55 | |
Нужна помощь!!! | enotkin | Непонятные проблемы с Железом | 15 | 06-12-2005 07:36 |
|