Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2008, 11:39   #1
JiLiYa
Пользователь
 
Регистрация: 23.09.2008
Сообщений: 16
Смущение Дан файл с различными датами.в дате число,месяц и год.Найти весеннюю дату.

Вот примерный код...

Код:
program VESENNIE DATI;

  Uses Crt;

  Var
        F: Text;
        s: String;
       

begin
clrscr;
Writeln('Vvedite puti k faylu');
readln(F);
reset(F);
i:=1;

procedure SpringDates(st: String);
  var b, month, day, year: String;
      i: Byte;
 begin
  Assign(F, st);
  Reset(F);

  while not EOF(F) do
   begin
    month:= '';
    day:= '';
    year:= '';

    Readln(F, b);

    for i:= Length(b) downto Length(b) - 3 do
     year:= b[i] + year;

    for i:= Length(b) - 5 downto Length(b) - 6 do
     month:= b[i] + month;

    for i:= Length(b) - 8 downto Length(b) - 9 do
     day:= b[i] + day;

    if (month = '03') or (month = '04') or (month = '05') then
     Writeln(day, '.', month, '.', year);

end;
 end;
readln;
end.
Если можно,подскажите,что тут нужно подправить....
JiLiYa вне форума Ответить с цитированием
Старый 26.12.2008, 15:20   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Исправленный вариант:
Код:
program VESENNIE_DATI;

  Uses Crt;

  Var
        F: Text;
        s: String;


procedure SpringDates(st: String);
  var b, month, day, year: String;
      i: Byte;
 begin
  i:=1;
  Assign(F, st);
  Reset(F);

  while not EOF(F) do
   begin
    month:= '';
    day:= '';
    year:= '';

    Readln(F, b);

    for i:= Length(b) downto Length(b) - 3 do
     year:= b[i] + year;

    for i:= Length(b) - 5 downto Length(b) - 6 do
     month:= b[i] + month;

    for i:= Length(b) - 8 downto Length(b) - 9 do
     day:= b[i] + day;

    if (month = '03') or (month = '04') or (month = '05') then
     Writeln(day, '.', month, '.', year);

  end;
 end;

begin
clrscr;
Writeln('Vvedite puti k faylu');
readln(s);
SpringDates(s);

readln;
end.
Проверял на файле с такими данными:
Код:
12.03.2007
14.01.2005
01.05.1999
12.12.1998
29.07.2004
30.04.2001
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 12:05
Как из TDBDateTimeEditEh получить отдельно день, месяц и год? HIC БД в Delphi 2 31.10.2008 17:24
Разделить дату на год,месяц, день Avalonix Общие вопросы Delphi 11 28.05.2008 09:56
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Паскаль. 1.Даны массивы.2 Дан X найти... Stelix Помощь студентам 7 20.11.2007 21:08