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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2010, 13:30   #1
ТаняН
Новичок
Джуниор
 
Регистрация: 04.06.2010
Сообщений: 2
По умолчанию вставка символа "конец строки" (Pascal)

Здравствуйте, уважаемые форумчане!

нужно вставить chr(10) (конец строки) через каждые 150 символов в нетипизированный файл.
если встречается chr(13) (enter), то далее отсчет символов начинать заново.
причем слова в тексте не должны разрываться, т.е. вставку делать перед следующим пробелом
text.txt

Последний раз редактировалось ТаняН; 04.06.2010 в 14:36.
ТаняН вне форума Ответить с цитированием
Старый 04.06.2010, 15:20   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Код:
readln(fread,s); //читаем строчку (до #13)

n:=0;
while n+150<length(s) do //надо ли нам добавлять (до конца строки <150)
begin
  // ищем последний (первый с конца)  пробел в заданном диапазоне (n+1..n+!50) 
  for j:=n+150 to n+1 do 
  begin
    if s[j]=' ' then 
    begin
      in:=j; // устанавливаем позицию замены (она же начало нового поиска) (n) и заканчиваем поиск
      break;
    end;
  end;
  insert(#10,s,n); // в вычисленную позицию добавляем #10 
// следующий поиск начнется сразу после добавленного
end;

writeln(fwrite,s); // теперь строка готова осталось ее записать
P.S. а вот если среди 150 знаков не окажется пробела то получим
#10.#10#10........ #10............
и бесконечный цикл (пока хватит памяти и размеров строки)
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 04.06.2010 в 15:27.
evg_m вне форума Ответить с цитированием
Старый 05.06.2010, 15:08   #3
ТаняН
Новичок
Джуниор
 
Регистрация: 04.06.2010
Сообщений: 2
По умолчанию

а что такое in и как его обозначить в var?
полностью вот так должно получиться?
Код:
var
f: file;
f2:file;
j,n:integer;

s:string
begin
assign(f, text.txt);
reset(f);
assign(f2, file1.txt);
rewrite(f2);

n:=0;
while n+150<length(s) do 
begin
  for j:=n+150 to n+1 do 
  begin
    if s[j]=' ' then 
    begin
      in:=j;
      break;
    end;
  end;
  insert(#10,s,n);
end;

writeln(f2,s);
close(f);
close(f2);
end.
и я так понимаю это код для одной строки?
а если для всех строк то добавить
Код:
while not EOF(f) do
ТаняН вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Признак "конец текста" RichEdit Pang Помощь студентам 2 13.05.2010 17:09
значения "на конец месяца" перенести на "начало месяца" 0mega Microsoft Office Excel 2 10.05.2010 07:23
Как запретить ввод второго символа "-" в StringGrid ? Ветас Помощь студентам 2 11.11.2009 22:17
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04