Напиcать программу, которая считывает текстовый файл, выравнивает содержащийся в нем текст по правой границе и выводит результат в другой текстовый файл.
Вот я написал чего-то , но ничего не работает помогите, исправьте ошибку, если нетрудно:
var
f1,f2:text;
s:string;
i:byte;
x,y:integer;
begin
assign(f1,'c:\gop.txt');
reset(f1);
assign(f2,'c:\gor.txt');
rewrite(f2);
i:=1;
while not seekEof(f1) do
begin
readln(f1,s);
i:=1;
while s=' ' do
begin delete(s,1,1);
inc(i);
writeln(f2,s);
end;
end;
end.
исправьте ошибку
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
эта программа, как я понял убирает лишние пробелы слева.
Тебе же надо...
1) Найти длинну самой длинной строки:
2) Добить каждую строку слева пробелами до длинны самой длинной строки и сохранить:
Тебе же надо...
1) Найти длинну самой длинной строки:
Код: Выделить всё
while not eof(f1) do
begin
Readln(f1, s);
if Len < Length(s) then Len := Length(s);
end;
Код: Выделить всё
while not eof(f1) do
begin
Readln(f1, s);
while Length(s) < Len do s := ' ' + s;
writeln(s);
end;
С уважением, Lost Angel...
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Если в условии была опечатка и выронянять нужно всё же по левой границе, т.е. убить все проблемы, то всё равно в программе ишибка. После удаления символа из строки все инкексы автоматически сдвигаются. Я к тому, что inc (i) делать не следует, достаточно в цикле постоянно проверять первый элемент строки.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.