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

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

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

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


Пионер
**

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

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


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

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


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

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

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


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


Профи
****

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

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


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


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


Пионер
**

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

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


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


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 15.03.2007 22:59
Сообщение #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 - 15.03.2007 22:59


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 15.03.2007 22:59
Сообщение #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 - 15.03.2007 23:49


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 16.03.2007 9:33
Сообщение #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 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 28.03.2024 11:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"