Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 29.10.2018, 00:09   #1
Alisher_
 
Регистрация: 29.10.2018
Сообщений: 3
Репутация: 10
По умолчанию Нужно решить задачу, пожалуйста,остался час.

Скопируйте содержимое текстового файла a.txt в файл b.txt. Входной файл состоит из ряда предложений. Каждое предложение заканчивается точкой, и в файле нет других точек. В выходном файле каждое предложение должно появляться в отдельной строке. Сохраняйте пробелы в каждом предложении без каких-либо изменений. Входной файл не содержит пустых строк и не имеет пробелов в начале или конце любой строки; то же самое должно быть верно для выходного файла. Если предложение во входном файле разделено между несколькими строками, замените каждую новую строку на один пробельный символ (чтобы последовательные слова в предложении не сливались вместе).

Пример входного файла a.txt:

Это первое предложение. Это второе предложение. А это
третье предложение.

Соответствующий выходной файл b.txt:

Это первое предложение.
Это второе предложение.
И это третье предложение.

Мои наработки

Код:

var
  
  p: integer;
  s: string;
begin
Assign(input,'a.txt'); Assign(output,'b.txt');
  Reset(input); Rewrite(output);
  while not EoF do begin
    ReadLn(s);
    while s<>'' do begin
      p:=Pos('.',s);
      if p=0 then begin
        WriteLn(s,' ');
        s:='';
      end else begin
        WriteLn(Copy(s,1,p));
        Inc(p); while (p<=Length(s)) and (s[p]=' ') do Inc(p);
        Delete(s,1,p-1);
    end;
  end;
  Close(input); Close(output);
 
end;


_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 29.10.2018 в 00:17.
Alisher_ вне форума   Ответить с цитированием
Старый 29.10.2018, 00:51   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,614
Репутация: 5352
По умолчанию

если я правильно понял задание, то можно попробовать такой код:
Код:

var
  p: integer;
  ch: char;
  skip_lines:boolean;
begin
  Assign(input,'a.txt'); Assign(output,'b.txt');
  Reset(input); Rewrite(output);
  skip_lines := false;
  while not EoF do begin

    Read(ch);
    if ch=#10 then Continue;
    if (ch=' ') and Not skip_lines then Continue;

    if ch='.' then begin WriteLn(ch); skip_lines := false end
    else 
       if (ch=#13) then begin
          if skip_lines then Write(' ')
       end
       else begin write(ch); skip_lines := true end

  end;
  Close(input); Close(output);

end.

Это реализован конечный автомат

проверил на FPC. Как-то работает.
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу пожалуйста, очень нужно на завтра, судьба решается. В VBA Dante_Sparda Microsoft Office Excel 4 20.12.2013 21:08
помогите пожалуйста решить задачу по паскалю. очень нужно! Лиля-16 Помощь студентам 4 14.05.2009 23:01
нужно решить задачу в DELPHI,пожалуйста помогите SERESHKA Помощь студентам 10 01.05.2009 10:54
Помогите пожалуйста решить задачу!Очень нужно у самой не получается! Lilu Monechi Помощь студентам 2 19.05.2008 19:38


08:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru