Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача замены времени в тексте
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ONE
Вообщем дали мне простенькую задачу. Есть программа передач и там нужно поставить вместо московского времени местное.(+2 часа)... Каким образом допустим из 04.00, 06.00 можно получить 06.00, 08.00 ???
Заранее спасибо.. smile.gif
Altair
Цитата
Заранее спасибо..

За что? smile.gif
Условие не однозначное.
Как выглядит программа?
Где она записанна?
Если в файле, то в каком и какого он типа.
Я вообще телевизор не смотрю, и что такое программа не знаю, так что подробнее напишите условие!
APAL
Имеется в виду - уточни структуру данных в файле программы.
Т.е. то, с чем придется работать...
ONE
Так... отвечаем по порядку...
Файл - текстовый....
Обычная программа передач.. вот кусок:
1-й КАНАЛ
06.00, 10.00, 12.00 Новости.
06.10 Сериал «Все путешествия команды Кусто». «Последний оплот».
06.30 Х/ф «Петроградские гавроши».
08.20 «Служу Отчизне!»
08.50 «Дисней-клуб»: «Мики, Дональд и Гуффи-спортсмен».
09.10 «В мире животных».
10.10 «Непутевые заметки».
И нужно время перевести на 2 часа...то есть чтобы вот так вот получилось:
1-й КАНАЛ
08.00, 12.00, 14.00 Новости.
08.10 Сериал «Все путешествия команды Кусто». «Последний оплот».
08.30 Х/ф «Петроградские гавроши».
10.20 «Служу Отчизне!»
10.50 «Дисней-клуб»: «Мики, Дональд и Гуффи-спортсмен».
11.10 «В мире животных».
12.10 «Непутевые заметки».
APAL
Задача сводится к написании функции, которая будет преобразовывать строку. Только это осложняется (немного) неравномерной структурой:
Цитата
06.00, 10.00, 12.00 Новости.
06.10 Сериал «Все путешествия команды Кусто». «Последний оплот».

Попробую написать.
ONE
Да уж.. я вот думал, думал и подумал - а можно ли в MS Word написать макрос, который бы выполнял ту же самую функцию преобразования строки? rolleyes.gif
APAL
Я тоже подписан на рассылку ТВ-программы...
Но у меня возникла вообще другая идея - сделать програмку, которая по текущему времени выдает что на каком канале идет, сколько еще будет по времени идти, и что будет после.
Ваш "перевод часов", я думаю, там был бы уместен.

Вот только руки еще не дошли все это сделать.... :D
APAL
Вот что смог сделать:

Код
Var St :string;

Function TimeZone(S : String; k : Integer) : String;
Var
 i : Byte;
 cod1,cod2,l :Integer;
 s0,s1 : String;
Begin
 s0:='';
 For i:=1 to Length(s) do
   If (s[i]='.') and ((i>2) and (i<Length(s)-1)) then
   Begin
     Val(Copy(S,i+1,2),l,cod2);
     Val(Copy(S,i-2,2),l,cod1);
     If (cod1=0) and (cod2=0) then
     Begin
       Delete(s0,Length(s0)-1,2);
       Str(l+k,s1);
       s0:=s0_в(s,i,3);
       i:=i+2;
     End
       else s0:=s0+s[i];
   End
     else s0:=s0+s[i];
 TimeZone:=s0;
End;

Begin
 Writeln(TimeZone('06.00, 10.00, 12.00 Новости.',2));
 Writeln(TimeZone('06.10 Сериал <Все путешествия команды Кусто>. <Последний оплот>.',2));
End.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.