Обработка текстового файла

  • Автор темы sanchoo1
  • Дата начала
S

sanchoo1

#1
Подскажите каким образом можно с одного текстового файла вида:


25.10.2007 10:09:34.437 - 34.484 Опрашивается канал под номером 1 (Вход №1) :22.2
25.10.2007 10:09:34.953 - 34.984 Опрашивается канал под номером 2 (Вход №2) :Датчик отключен.
25.10.2007 10:09:35.468 - 35.515 Опрашивается канал под номером 3 (Вход №3) :Датчик отключен.
25.10.2007 10:09:35.984 - 36.015 Опрашивается канал под номером 4 (Вход №4) :Датчик отключен.
25.10.2007 10:09:54.500 - 54.546 Опрашивается канал под номером 1 (Вход №1) :22.2
25.10.2007 10:09:54.843 - 54.875 Опрашивается канал под номером 2 (Вход №2) :Датчик отключен.
25.10.2007 10:09:55.531 - 55.562 Опрашивается канал под номером 3 (Вход №3) :Датчик отключен.
25.10.2007 10:09:56.046 - 56.078 Опрашивается канал под номером 4 (Вход №4) :Датчик отключен.
25.10.2007 10:10:14.500 - 14.734 Опрашивается канал под номером 1 (Вход №1) :22.3
25.10.2007 10:10:15.062 - 15.187 Опрашивается канал под номером 2 (Вход №2) :Датчик отключен.
25.10.2007 10:10:15.718 - 15.843 Опрашивается канал под номером 3 (Вход №3) :Датчик отключен.
25.10.2007 10:10:16.015 - 16.140 Опрашивается канал под номером 4 (Вход №4) :Датчик отключен.

Получить текстовый файл вида:

23.3
Датч
Датч
Датч

Чтобы записывались только последние данные.Видно ,что исходный файл постоянно дописавается.Надо снимать последние значения.

Вот то что написал я.

Код:
program fff;

var
f: text;
{}n: integer;
{}i:integer;
in_file,out_file:text;
k:word;
ss:string [100];ss1:STRING[5];
begin
assign(in_file, 'october.log'); {otrivaet fail}
reset(in_file);
assign(out_file,'nambers.txt');
rewrite(out_file);
while not eof(in_file) do
begin
readln(in_file,ss);
ss1:=COPY(ss,82,4);
writeln(out_fILE,SS1);
end;
close(OUT_FILE);
end.
И что получается
22.5
Датч
Датч
Датч
22.5
Датч
Датч
Датч
Датч
22.5
Датч
Датч
Датч
Датч
22.5
Датч
Датч
Датч
Датч

Помогите !!!!!!!!!Плиз

/*
модератор: давай темам осмысленные названия
*/
 
S

sanchoo1

#2
program fff;
const
amount = 4; { Сколько последних строк надо копировать }

var
i:integer;
in_file,out_file: text;
ss: array[1 .. amount] of string[100];

begin
assign(in_file, 'october.log'); reset(in_file);
assign(out_file,'numbers.txt'); rewrite(out_file);

while not eof(in_file) do begin

i := 1;
while not eof(in_file) and (i <= amount) do begin
readln(in_file,ss); inc(i);
end;

end;
for i := 1 to amount do
writeln(out_file, copy(ss, 78, 4)); { <--- 78 - это позиция последнего двоеточия в строке }

close(OUT_FILE);
close(in_file);
end.

Вот что мне надо использовать!!!
 
S

sanchoo1

#4
Нет там всего 8 каналов.Только вот вопрос почему

а бы вот не был так уверен что там меньше 10 десяти каналов =)

Сообщение отредактировал Kmet - Сегодня, 14:43