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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 18:21   #1
rauhm6
Новичок
Джуниор
 
Регистрация: 06.12.2011
Сообщений: 1
По умолчанию Программа печати текстового файла с размещением текста по 64 символов в строку без переноса слов

ЗАДАЧА:Разработать программу печати текст.файла с размещением текста по 64 символов в строку без переноса слов(заполняя недостоющие символы пробелами).Предусмотреть проверку существ.исходного файла и форматиров.страниц с нумерацией в первой строке страницы. Длина страницы 60 строк.

Помошь нужно в том что не пойму где ошибка , почему то слова переносит. Как сделать чтобы не было переноса слов?

Программный код

Код:
program Job;
uses
  CRT;
const
  DefaultFileName = 'input.txt';
  PrinterDeviceName = 'output.txt';
  MaxLinesPerPage = 60;
  MaxCharsPerLine = 64;
  WordChars = ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'я'];

var
  Pr: Text;
  InpF: Text;
  InputFileName: String;
  SourceLine, LineToPrint: String;
  PageNumber: Integer;
  PageLinesCount: Integer;

function RTrim(const S: String): String;
var
  L: Integer;
begin
  L := Length(S);
  if L > 0 then begin
    while S[L] <= ' ' do Dec(L);
    RTrim := Copy(S, 1, L);
  end;
end;

begin
  Write('Please enter input file name (by default ', DefaultFileName, ' : ');
  ReadLn(InputFileName);
  if InputFileName = '' then
    InputFileName := DefaultFileName;
  Assign(InpF, InputFileName);
  {$I-}
  Reset(InpF);
  if IOResult <> 0 then begin
    WriteLn('Ошибка! Файл "', InputFileName,'" не существует');
    ReadKey;
    Exit;
  end;

  Assign(Pr, PrinterDeviceName);
  Rewrite(pr);
  if IOResult <> 0 then begin
    WriteLn('Ошибка! Результирующий файл"', PrinterDeviceName,'не создан" ');
    ReadKey;
    Exit;
  end;

  PageLinesCount := 0;
  PageNumber := 0;

  while not Eof(InpF) do begin
    ReadLn(InpF, SourceLine);
    repeat
      LineToPrint := Copy(SourceLine, 1, MaxCharsPerLine);
      SourceLine := Copy(SourceLine, MaxCharsPerLine + 1, Length(SourceLine));
      if Length(LineToPrint) = MaxCharsPerLine then
        if LineToPrint[MaxCharsPerLine] in WordChars then
          if Length(SourceLine) > 0 then
            if SourceLine[1] in WordChars then begin
              SourceLine := LineToPrint[MaxCharsPerLine] + SourceLine;
              LineToPrint[MaxCharsPerLine] := '-';
            end;
      if (PageLinesCount = 0) or (PageLinesCount = MaxLinesPerPage) then begin
        Inc(PageNumber);
        WriteLn(Pr, '========================== PAGE ', PageNumber, ' ==========================');
        PageLinesCount := 1;
      end;
      WriteLn(Pr, LineToPrint);
      Inc(PageLinesCount);
    until SourceLine = '';

  end;
  Close(Inpf);
  Close(Pr);
end.




___________
1) Название темы должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В дальнейшем темы с подобным названием будут закрываться/удаляться.


2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.12.2011 в 10:09.
rauhm6 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт (программа) переноса текста из HTML файла на сайт под joomla sergiksergik Фриланс 0 20.03.2011 17:36
Разработать программу печати выбранного текстового файла (язык дельфи или ассемблер) KrisPipis Помощь студентам 0 17.01.2011 21:22
Удалить из текстового файла первую строку. annosinceva Общие вопросы C/C++ 1 31.05.2010 14:19
Программа Вводит символьную строку и число N и выводит строку, состоящую из первых N символов (С++) Yulai Помощь студентам 1 11.05.2009 11:39
Программа печати текстового файла Maximauzer Паскаль, Turbo Pascal, PascalABC.NET 4 23.11.2008 02:00