![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Caries |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
Стоит следующая задача: дан внешний текстовый файл, нужно взять из него текст и записать в новый файл, причем разбив его типа как в ворде, 25 строк на странице и 80 символов строке.
1.Проблема - как реализовать , чтобы считывалось из текстовго файла по 80 символов и записывалось в массив и далее следующие 80 символов. 2. Нужно ставить символ | чтобы в итоге получилась рамка. Как реализовать чтобы в конце каждой строки скажем после 80 символа ставился такой символ. спасибо. |
![]() ![]() |
Caries |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 44 Пол: Мужской Репутация: ![]() ![]() ![]() |
Полностью код проги того что уже сделано(хоть и коряво ;))
Код 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 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 10:35 |