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

Тема в разделе "Delphi - FAQ", создана пользователем sanchoo1, 1 ноя 2007.

  1. sanchoo1

    sanchoo1 Гость

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


    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
    Датч
    Датч
    Датч

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

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

    Код (Text):
    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
    Датч
    Датч
    Датч
    Датч

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

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

    sanchoo1 Гость

    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.

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1


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

    sanchoo1 Гость

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

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

    Сообщение отредактировал Kmet - Сегодня, 14:43
     
Загрузка...
Похожие Темы - Обработка текстового файла
  1. kolka
    Ответов:
    6
    Просмотров:
    252
  2. anna
    Ответов:
    9
    Просмотров:
    882
  3. FaRReLL
    Ответов:
    0
    Просмотров:
    868
  4. crow1986
    Ответов:
    8
    Просмотров:
    1.872
  5. Dazzel
    Ответов:
    1
    Просмотров:
    948

Поделиться этой страницей