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

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

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

 
 Ответить  Открыть новую тему 
> нужно решить задачку:], действия с текстовым файлом
сообщение
Сообщение #1


Пионер
**

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

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


вот задали ещё одну задачу которую решить пока даже не знаю и как:(

Задача: Имеется текстовый файл добавить в него строку из двенадцати дефисов,разместив ее:
а.) После пятой строки
б.) после последней из строк, в которых нет пробела (если таких строк нет, то новая строка должна быть добавлена после всех стро имеющего файла)
В обоих случаях результат записать в другой файл


Если честно то у меня нет ни догадок не предположений как решить эту задачку blink.gif

Помогите пожалуйста? wacko.gif

наведите на верный путь истины:)


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

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

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


1) вводишь счётчик, читаешь построчно, когда счётчик = 5, лепишь дефисы.
2) читаешь подряд все строки если в какой-то из них напарываешься на пробел, сохраняешь номер строки (всё тот же принцип счётчика). В результате в счётчике будет номер последней строки где есть пробел.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


а поподробней если углубится в код? smile.gif


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Помощник капитана
****

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

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


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);
while not eof(f) do begin
Inc(i);
readln(f,s);
writeln(t,s);
if (i=5) then begin
writeln(t,res);
end;
end;
close(f);
close(t);
readln
end.

Если по первой так?

Сообщение отредактировано: Артемий2 -


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

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

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


Ну довольно чёрненький и страшненький вариант на быструю руку, но возможно поможет тебе разобраться, если надо будет сделаю покрасивее и загоню в процедуры. В проге я просто на эран вывожу результат 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 = 0 then
begin
begin
while not EOF(F) do
begin
sum:=sum + 1;
readln (F,Stroka);
writeln (Stroka);
if sum = 5 then writeln (Defis);
end;
end;
writeln;
{$I-}
Close (f);
{$I+}
sum:=0;
{$I-}
reset (f);
{$I+}
If IOResult = 0 then
while not EOF(F) do
begin
probel:=False;
readln (F,Stroka);
for i:=1 to Length(Stroka) do
begin
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 = 0 then
begin
while not EOF(F) do
begin
sum:=sum + 1;
readln (F,Stroka);
writeln (Stroka);
if sum=number then writeln (Defis);
end;
if number = 0 then writeln (Defis);
end;
{$I-}
Close (f);
{$I+}

readkey;
end.


Сообщение отредактировано: Tan -


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


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;

while not(eof(f)) do begin
inc(count);
readln(f, temp);
if pos(' ', temp) = 0 then last := count;
end;

reset(f); count := 0;

while not(eof(f)) do begin
inc(count);
readln(f, temp);
writeln(g, temp);
if (count = last) or (count = 5) then writeln(g, '------------');
end;

if last = 0 then writeln(g, '------------');

close(f); close(g);
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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