Другие языки программирования и технологии
Нужна помощь с 1 прогой в Pascal. с использованием файлов???
я уже задавал этот вопрос, но так и не получил ответа:( Имеется текстовый файл <>. Написать программу, которая игнорирует исходное деление этого файла на строки, переформирует его, разбивая на строки так, чтобы каждая строка оканчивалась точкой или содержала ровно 40 литер, если среди них точки нет. код следующий. Program lab11z2; USES crt; VAR f:text; i,j,k:byte; s,s1:array [1..100] of string; BEGIN CLRSCR; i:=0; Assign(f,'Book.txt'); reset(f); while not EOF(f) do begin inc(i); read(f,s); j:=i; end; close(f); k:=1; for i:=1 to j do if (s<>'.') or (length(s)<>40) then s1[k]:=s else if (s='.') or (length(s)=40) then inc(K); Assign(f,'book1.txt'); rewrite(f); for i:=1 to j do writeln(f,s1); Close(f); REadln; END. ... Я использую следующий алгоритм: Записываю исходное значение файла в массив. записывая в другой идет у мну проверка на наличие точки или 40 литер уже достигнуто. Если достигнуто то перевожу на другую стоку. затем запись в файл. только вот, у меня зацикливание блин происходит. по шагово еще не проверял, но думаю в 1 цикле, хотя там просто запись в массив с файла. Помогите плз с этой прогой:) посоветуйте верный алгоритм. желательно поподробнее. Балами не обижу)
f1 входной файл
f2 выходной
код с выравниванием тут (пробелы из ссылки убери) :
paste . org . ru/?ef22ge
var
f1, f2 : text;
s, s2 : string;
i, x : integer;
begin
assign( f1, 'book.txt' );
reset( f1 );
assign( f2, 'book_2.txt' );
rewrite( f2 );
s2 := '';
x := 0;
while not eof(f1) do
begin
readLn(f1, s);
for i := 1 to length(s) do
begin
s2 := s2 + s[ i ];
x := x + 1;
if (x>=40) or (s[ i ]='.') then
begin
writeLn(f2, s2);
s2 := '';
x := 0;
end;
end;
end;
close(f1);
close(f2);
writeLn('End.');
readLn;
end.
f2 выходной
код с выравниванием тут (пробелы из ссылки убери) :
paste . org . ru/?ef22ge
var
f1, f2 : text;
s, s2 : string;
i, x : integer;
begin
assign( f1, 'book.txt' );
reset( f1 );
assign( f2, 'book_2.txt' );
rewrite( f2 );
s2 := '';
x := 0;
while not eof(f1) do
begin
readLn(f1, s);
for i := 1 to length(s) do
begin
s2 := s2 + s[ i ];
x := x + 1;
if (x>=40) or (s[ i ]='.') then
begin
writeLn(f2, s2);
s2 := '';
x := 0;
end;
end;
end;
close(f1);
close(f2);
writeLn('End.');
readLn;
end.
Попробуй read(f,s); поменять на readln(f,s);
Удачи!
Удачи!
f1 входной файл
f2 выходной
код с выравниванием тут (пробелы из ссылки убери) :
paste . org . ru/?ef22ge
var
f1, f2 : text;
s, s2 : string;
i, x : integer;
begin
assign( f1, 'book.txt' );
reset( f1 );
assign( f2, 'book_2.txt' );
rewrite( f2 );
s2 := '';
x := 0;
while not eof(f1) do
begin
readLn(f1, s);
for i := 1 to length(s) do
begin
s2 := s2 + s[ i ];
x := x + 1;
if (x>=40) or (s[ i ]='.') then
begin
writeLn(f2, s2);
s2 := '';
x := 0;
end;
end;
end;
close(f1);
close(f2);
writeLn('End.');
readLn;
end,
и все чики пуки
f2 выходной
код с выравниванием тут (пробелы из ссылки убери) :
paste . org . ru/?ef22ge
var
f1, f2 : text;
s, s2 : string;
i, x : integer;
begin
assign( f1, 'book.txt' );
reset( f1 );
assign( f2, 'book_2.txt' );
rewrite( f2 );
s2 := '';
x := 0;
while not eof(f1) do
begin
readLn(f1, s);
for i := 1 to length(s) do
begin
s2 := s2 + s[ i ];
x := x + 1;
if (x>=40) or (s[ i ]='.') then
begin
writeLn(f2, s2);
s2 := '';
x := 0;
end;
end;
end;
close(f1);
close(f2);
writeLn('End.');
readLn;
end,
и все чики пуки
Похожие вопросы
- народ помогите пожалуйста) надо сделать прогу на pascal)
- Пожалуйста, очень нужна помощь с Pascal
- Профессионалы pascal, нужна помощь
- Файл hosts!!! Нужна помощь!!
- нужна помощь с прогой на паскале. сортировка матрицы. в данной проге необходимо в начале вывести исходную матрицу в "кра
- Нужна помощь в создании pdf файлов для печати в типографии через photoshop или его аналоги!
- Pascal, чтение из файла
- Вопрос по поводу Pascal...Нужна помощь!
- Turbo Pascal ( Очень нужна помощь....)
- Котята, нужна помощь по Pascal с буковками