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

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

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

> строки
сообщение
Сообщение #1


Новичок
*

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

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


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

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


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

 





- Текстовая версия 2.09.2025 19:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name