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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2013, 10:15   #1
Zemfira
 
Регистрация: 22.05.2013
Сообщений: 5
По умолчанию Программа выравнивающая слова в тексте на границу кратную 8.

работает только для одной строчки. Как сделать рабочую для всего текста?
Код:
program laba5;
var f1, f2: text;
s, s1: string;
k, i, z, p: integer;
begin
assign(f1,'text1.txt');
assign (f2,'result.txt');
reset (f1);
read(f1,s);
rewrite(f2);
s1:='';
p:=0;
for i:=1 to length(s) do
if s[i]=' ' then begin
z:=i-p;
p:=i;
if z<8 then
begin
for k:=1 to (9-(z mod 8)) do
s1:=s1+' ';
end
else s1:=s1+' ';
end
else s1:=s1+s[i];
writeln (f2,s1);
close (f2);
close (f1)
end.

Последний раз редактировалось Stilet; 22.05.2013 в 20:45.
Zemfira вне форума Ответить с цитированием
Старый 22.05.2013, 12:24   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
program laba5;

var f1, f2: text;
    s, s1: string;
    k, i, z, p: integer;

begin
  assign(f1,'text1.txt');
  assign (f2,'result.txt');
  reset (f1);
  rewrite(f2);
  while not Eof(F1) do begin
    readln(f1,s);
    s1:='';
    p:=0;
    for i:=1 to length(s) do
      if s[i]=' ' then begin
        z:=i-p;
        p:=i;
        if z<8 then begin
          for k:=1 to (9-(z mod 8)) do s1:=s1+' ';
        end
        else s1:=s1+' ';
      end
      else s1:=s1+s[i];
    writeln (f2,s1);
  end;
  close (f2);
  close (f1)
end.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 22.05.2013, 12:38   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Я не вникал в суть Вашего кода. Но возможно тема (тыц) поможет Вам.
Poma][a вне форума Ответить с цитированием
Старый 22.05.2013, 19:16   #4
Zemfira
 
Регистрация: 22.05.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Код:
  while not Eof(F1) do begin
а другим способом можно?

так вообще не работает

Последний раз редактировалось Stilet; 22.05.2013 в 20:47.
Zemfira вне форума Ответить с цитированием
Старый 22.05.2013, 20:01   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
так вообще не работает
то есть в файле F2 ничего нет, не то записывается или вообще выдает ошибку? Как именно не работает?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 22.05.2013, 20:29   #6
Zemfira
 
Регистрация: 22.05.2013
Сообщений: 5
По умолчанию

записывается все в одну строчку, если символов больше 255 то пишет ошибку

Цитата:
Сообщение от Sciv Посмотреть сообщение
то есть в файле F2 ничего нет, не то записывается или вообще выдает ошибку? Как именно не работает?
в F2 все строчки записываются в одну

Последний раз редактировалось Stilet; 22.05.2013 в 22:14.
Zemfira вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст. Слова в тексте отделены одним пробелом, в конце текста точка. Распечатать все слова текста, которые содержат..... Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 1 06.02.2012 23:36
Поиск определённого слова в тексте lypyotr Помощь студентам 4 24.01.2012 13:45
найти слова в тексте boshki Помощь студентам 0 12.06.2011 12:15
Поиск наименьшего слова в тексте Dizel!!! Общие вопросы C/C++ 3 14.04.2011 22:32
поиск слова в тексте shked1000 PHP 4 12.01.2011 13:42