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
сообщение 4.05.2005 15:35
Сообщение #2


Новичок
*

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

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


Блин мне через неделю уже сдавать (
Вот окончательный вариант. НО жерт последний символ. Помогите....
program kursach;
uses crt,dos;
const n= 100;
var
t_in,t_out:text;{Исходный и форматированный файлы}
f_in,f_out:string;{Имена}
m : array[1..n] of string; i:integer;

{Анализируем вводимые данные.
Если нажат ESC выходим из программы}
function inp_name:string;
var
bh:char;
n:byte;
ins:string;
begin
ins:='';
n:=0;
bh:=readkey;
repeat
if ord(bh)=27
then halt;
if (ord(bh)=8)and(n>0)
then begin
gotoxy(wherex-1,wherey);
write(' ');
dec(n);
ins:=copy(ins,1,length(ins)-1);
gotoxy(wherex-1,wherey)
end;
if ord(bh)in[32..126]
then begin
inc(n);
ins:=ins+bh;
write(bh)
end;
bh:=readkey
until ord(bh)=13;
writeln;
inp_name:=ins
end;


{Инициализируем файл.
Проверяем существование.
Спрашиваем путь}
procedure init;
var
exist:boolean;rec_ord:byte;

begin
writeln('Укажите путь к исходному файлу:');
write('=>');
f_in:=inp_name;

repeat
assign(t_in,f_in);
{$I-}
reset(t_in); {проверка существования}
exist:=IOResult=0;
{$I+}
if not exist
then begin
writeln('Ошибка!Неправильно Указан' +
' путь к иcходному файлу или его просто не существует');
writeln('Попpобуйте еще раз(Esc - выход)');
write('=>');
f_in:=inp_name;

end;
until exist;
exist:=false;
repeat
writeln('В какой файл записать отформатированный текст?');
write('=>');
readln(f_out);
if f_in = f_out
then begin
writeln('Вы действительно хотите перезаписать файл?');
writeln('0-Yes 1-No');
readln(rec_ord);
if rec_ord= 0 then exist:=true else exist:=false;end else exist:=true;

until exist;
end;

procedure formats;{Форматируем текст}
var ch:char;

begin
while(not eof(t_in))and (i<=n) do
begin
read(t_in,ch); {Считываем посимвольно данные из файла}
if (ch=#13) or (ch=#10) then
{Если встречается перенос строки или длина
строки становится больше значения, записываем
в сл. элемент массива}
begin
while length(m[i])<81 do
begin
m[i]:=m[i] + ' ';
end;
read(t_in,ch);
end;
if (length(m[i]) >80) then
begin
inc(i);
m[i]:='';
end
else m[i]:=m[i]+ch;
end;
while length(m[i])<81 do
begin
m[i]:=m[i] + ' ';
end;
writeln;
writeln('Файл успешно отформатирован и записан: ', f_out);
readln;
end;


procedure ends;{Записываем отфoрматированный текст в файл}
var c,z,l:integer;

begin
c:=0;
l:=1;
assign(t_out,f_out);
rewrite(t_out);
writeln(t_out,
'------------------------------------------------------------------------------------');
for z:=1 to i do begin
writeln(t_out,'|',m[z],' |');inc( c );
if (( z mod 25) = 0) or ( i= z) then
begin
writeln(t_out,
'------------------------------------------------------------------------------------');
writeln(t_out,'| Strok in List ',c,'| List ',l);l:=l+1;
writeln(t_out,
'------------------------------------------------------------------------------------');
writeln;
writeln;writeln;
writeln(t_out,
'------------------------------------------------------------------------------------');
c:=0;
end;
end;
close(t_in);
close(t_out);
end;
begin
clrscr;
writeln('===============================');
writeln('Программа Форматирование текста');
writeln('===============================');
writeln;
i:=1;
init;
formats;
ends; {BCE}
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.05.2005 15:38
Сообщение #3


Гость






Цитата(Caries @ 4.05.05 15:35)
Вот окончательный вариант. НО жерт последний символ. Помогите....


Проверяй в пошаговом режиме (F7), и исправляй... Откуда можно узнать, где именно это происходит без отладки программы?
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"