Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите сделать правильно. Бьюсь над задачей..... 
:(
    Опции темы
Yanis
Дата 22.11.2004, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Попросили сделать задачку (со второго курса). Я взялся посмотреть. Вот сижу и никак немогу сделать перенос грамотное форматирование по абзацам. И я не знаю как сделать лучше (читай - правильно). Надеюсь здесь мне помогут. Вобщем мне хотелось бы посмотреть на ваш вариант программы. Все свои идеи и наработки, ОГРОМНАЯ просьба кидать сюда. Если кому интересно, то я сейчас могу закинуть свой вариант решения, только он корявый.

Задача: Написать программу печати текстового файла с размещением текста по 64 символа в строке с переносом слова на следующую строку, если оно не уместилось. Перед каждым абзацем предусмотреть вставку пустой строки перед каждым абзацем. Абзац - пять пробелов в начале строки. (pascal/delphi console).


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Snowy
Дата 22.11.2004, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

program Project1;
{$APPTYPE CONSOLE}

uses
 SysUtils, Classes;

const dx:integer=64;

var
 txt:   TStringList;
 s,p:   string;
 x,r,y: integer;

begin
 txt:=TStringList.Create;
 txt.LoadFromFile('1.txt');
 for y:=0 to txt.Count-1 do
 begin
   x:=1; s:=txt[y];
   while x<Length(s) do
   begin
     p:=copy(s,x,dx); r:=Length(p);
     if r=dx then
       while (p[r]<>' ') and (r>0) do dec(r);
     if r=0 then r:=dx;
     WriteLn(copy(p,1,r));
     inc(x,r);
   end;
   WriteLn;
 end;
end.


Если вывод нужно не на экран, а в файл, то соответсвенно делаем не просто WriteLn, а в файл. При желании можно обойтись и без TStringList, а читать построчно из файла. Но мне лично так удобнее...

Это сообщение отредактировал(а) Snowy - 22.11.2004, 18:13
PM MAIL   Вверх
Yanis
Дата 22.11.2004, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Это я сделал. Но немного не так. За алгоритм спасибо. А как сделать что бы по абзацам выводилось?
(см условие задачи)


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0691 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.