вот задали ещё одну задачу которую решить пока даже не знаю и как:(
Задача: Имеется текстовый файл добавить в него строку из двенадцати дефисов,разместив ее: а.) После пятой строки б.) после последней из строк, в которых нет пробела (если таких строк нет, то новая строка должна быть добавлена после всех стро имеющего файла) В обоих случаях результат записать в другой файл
Если честно то у меня нет ни догадок не предположений как решить эту задачку
Помогите пожалуйста?
наведите на верный путь истины:)
Tan
16.03.2007 1:52
1) вводишь счётчик, читаешь построчно, когда счётчик = 5, лепишь дефисы. 2) читаешь подряд все строки если в какой-то из них напарываешься на пробел, сохраняешь номер строки (всё тот же принцип счётчика). В результате в счётчике будет номер последней строки где есть пробел.
Димас
16.03.2007 1:59
а поподробней если углубится в код?
Артемий
16.03.2007 2:59
const
res = '------------';
var
f,t: text;
i,o,k: Integer;
s: string;
begin
i:=0;
assign(f,'kj.dat');
reset(f);
assign(t,'km.dat');
rewrite(t);
whilenot eof(f) dobegin
Inc(i);
readln(f,s);
writeln(t,s);
if (i=5) thenbegin
writeln(t,res);
end;
end;
close(f);
close(t);
readln
end.
Если по первой так?
Tan
16.03.2007 2:59
Ну довольно чёрненький и страшненький вариант на быструю руку, но возможно поможет тебе разобраться, если надо будет сделаю покрасивее и загоню в процедуры. В проге я просто на эран вывожу результат 1 и 2 пункта задания, как вывести всё в файл я думаю ты разберёшься. Ещё раз извиняюсь за страшный код
uses crt;
Const MyFileName = 'MyData.txt';
Defis = '------------';
var sum,i,number : integer;
f : TEXT;
Stroka : string;
Probel : boolean;
begin
number:=0;
Clrscr;
{$I-}
assign (f,MyFileName);
{$I+}{$I-}
reset (f);
{$I+}if IOResult = 0thenbeginbeginwhilenot EOF(F) dobegin
sum:=sum + 1;
readln (F,Stroka);
writeln (Stroka);
if sum = 5then writeln (Defis);
end;
end;
writeln;
{$I-}
Close (f);
{$I+}
sum:=0;
{$I-}
reset (f);
{$I+}If IOResult = 0thenwhilenot EOF(F) dobegin
probel:=False;
readln (F,Stroka);
for i:=1to Length(Stroka) dobegin
sum:=sum+1;
if stroka[i] = ' 'then probel:=True;
end;
if probel = False then number:=sum;
end;
end;
{$I-}
Close (f);
{$I+}
sum:=0;
{$I-}
reset (f);
{$I+}If IOResult = 0thenbeginwhilenot EOF(F) dobegin
sum:=sum + 1;
readln (F,Stroka);
writeln (Stroka);
if sum=number then writeln (Defis);
end;
if number = 0then writeln (Defis);
end;
{$I-}
Close (f);
{$I+}
readkey;
end.
klem4
16.03.2007 13:33
var
f, g: Text;
last, count: Integer;
temp: String;
begin
assign(f, 'in.txt'); reset(f);
assign(g, 'out.txt'); rewrite(g);
last := 0;
count := 0;
whilenot(eof(f)) dobegin
inc(count);
readln(f, temp);
if pos(' ', temp) = 0then last := count;
end;
reset(f); count := 0;
whilenot(eof(f)) dobegin
inc(count);
readln(f, temp);
writeln(g, temp);
if (count = last) or (count = 5) then writeln(g, '------------');
end;
if last = 0then writeln(g, '------------');
close(f); close(g);
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.