IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> строки
Caries
сообщение 27.03.2005 15:52
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 44
Пол: Мужской

Репутация: -  0  +


Стоит следующая задача: дан внешний текстовый файл, нужно взять из него текст и записать в новый файл, причем разбив его типа как в ворде, 25 строк на странице и 80 символов строке.
1.Проблема - как реализовать , чтобы считывалось из текстовго файла по 80 символов и записывалось в массив и далее следующие 80 символов.
2. Нужно ставить символ | чтобы в итоге получилась рамка. Как реализовать чтобы в конце каждой строки скажем после 80 символа ставился такой символ.
спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Caries
сообщение 18.04.2005 21:33
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 44
Пол: Мужской

Репутация: -  0  +


Полностью код проги того что уже сделано(хоть и коряво ;))
Код
program name;
const n= 100;
var t:text;s:string[50];
m : array[1..n] of string; i:integer; min:string;z,d,l:integer;f,c:integer; mi:string;ch:char;
begin
i:=1;l:=1;
m[i]:='';
writeln('Enter filename');
readln(s);
assign(t,s);
{$I-}
reset(t);
{$I+}
if ioresult<>0 then
begin writeln('ERROR!!!! File not found!');readln;
end
else
while(not eof(t))and (i<=n) do
begin
read(t,ch); if (ch=#13) or (ch=#10) or (length(m[i]) >80) then
begin
if (length( m[i])<80) or (ch=#10) then begin
d:=81-length(m[i]);
for f:=1 to d do
m[i]:=m[i] + ' ';
end;

inc(i);m[i]:='';read(t,ch) end else m[i]:=m[i] + ch;
end;
m[i]:='';
rewrite(t);
writeln(t,'------------------------------------------------------------------------------------');
for z:=1 to i do begin
writeln(t,'|',m[z],' |');inc(c);
if (( z mod 25) = 0) or ( i= z) then
begin
writeln(t,'------------------------------------------------------------------------------------');
writeln(t,'| Strok in List ',c,'| List ',l);l:=l+1;
writeln(t,'------------------------------------------------------------------------------------');
writeln;

Все нормально, рамка ровно. но жрет теперь символы ну т.е если строка если больше 80 то он следубщий символ теряет...
Кстати а нужно учесть , символ конца файла будет выводиться , его тоже нужно учесть?
Цитата
Ну я же тебе уже говорил, что произойдет:
Я бы разбивал не по 80, а по 78

т.е мне перебить длину на 78?

Сообщение отредактировано: Caries - 18.04.2005 21:36
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Caries   строки   27.03.2005 15:52
APAL   А что уже сделано?   27.03.2005 16:06
Caries   program name; const n= 100; var t:text;s:s...   28.03.2005 17:20
volvo   Для начала, почему не пользуемся поиском... По-мое...   28.03.2005 17:26
Caries   извиняюсь за невнимательность. по поводу 1 вопроса...   29.03.2005 9:24
volvo   Значит, так ... Если поставить такой символ после...   29.03.2005 9:37
volvo   Ну я же тебе уже говорил, что произойдет: Ничего ...   18.04.2005 20:20
Caries   СТавит, но сразу после строки,а допустим если в ст...   29.03.2005 18:30
volvo   Тогда проверять длину строки, и дополнять ее пробе...   29.03.2005 19:41
Caries   в принципе можно так. Я думал можно как нить через...   29.03.2005 21:26
Caries   Похожая но не та... Мне нужно желательно читть и...   12.04.2005 8:25
volvo   :blink: Ну и зачем такие сложности? Все проще гор...   12.04.2005 8:48
Caries   Небольшой трабл выводит строки и после каждой ста...   15.04.2005 21:23
volvo   Замени основной цикл:  while not eof(f) do begin ...   15.04.2005 21:56
Caries   я немного подругому писал while(not eof...   17.04.2005 19:10
Caries   Полностью код проги того что уже сделано(хоть и ко...   18.04.2005 21:33
Caries   Блин мне через неделю уже сдавать ( Вот окончатель...   4.05.2005 15:35
volvo   Проверяй в пошаговом режиме (F7), и исправляй......   4.05.2005 15:38
Caries   Я так чувствую в процедуре Formats. Найти не могу....   4.05.2005 15:40
volvo   Я бы переписал Formats вот так: procedure formats;...   5.05.2005 14:33
Caries   Все работает. Спасибо большое за помощь. Volvo пе...   5.05.2005 18:11


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:35
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"