Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 790

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Мне нужно программно открыть файл, затем найти в нём нужную мне строку.
Заранее большое спасибо!

Некто Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Некто (статус: Заблокирован)
Вопрос отправлен: 16 мая 2009, 17:38
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

// Вот функция, извлекающая из текстового файла все строки, начинающиеся с "open="
// и помещающая эти строки в список Extracted.
// Возвращаемое значение - количество извлечённых строк.
function Extract(const FileName: string; Extracted: TStringList): Integer;
var
  Temp: TStringList;
  Index: Integer;
begin
  Extracted.Clear();
  Temp:= TStringList.Create();
 
  try
    try
      Temp.LoadFromFile(FileName);
    except
      Application.MessageBox(PChar('Ошибка при работе с файлом ' + FileName + '.'),
                             PChar('Ошибка'),
                             mb_Ok + mb_IconError);
    end;
 
    for Index:= 0 to Temp.Count - 1 do
      if Pos('open=', Temp[Index]) = 1
        then Extracted.Add(Temp[Index]);
  finally
    Temp.Free();
  end;
 
  Result:= Extracted.Count;
end;
 
// Использование функции
var
  List: TStringList;
  Count: Integer;
 
begin
  List:= TStringList.Create();
  try
    Count:= Extract('имя_файла.txt', List);
    List.SaveToFile('извлечённые.txt');
    ShowMessage('Извлечено строк: ' + IntToStr(Count) + '.');
  finally
    List.Free();
  end;
end;

Ахтунг! Не отлаживал, писал на коленке!

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 16 мая 2009, 18:27
Оценка за ответ: 5

Комментарий к оценке: Спасибо всё работает!

Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 16 мая 2009, 23:21; участников в обсуждении: 4.
min@y™

min@y™ (статус: Доктор наук), 16 мая 2009, 17:52 [#1]:

А нужна строка с определённым номером п/п или с нужным содержимым?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Некто

Некто (статус: Заблокирован), 16 мая 2009, 17:54 [#2]:

Например строка, которая начинается со слова open=
Некто

Некто (статус: Заблокирован), 16 мая 2009, 17:58 [#3]:

нужно узнать, что идёт после этого слова
Ученый

Ученый (статус: 8-ой класс), 16 мая 2009, 18:06 [#4]:

а строка , которая начинается со слова open= только одна в файле? или их может быть несколько?
Ученый

Ученый (статус: 8-ой класс), 16 мая 2009, 18:12 [#5]:

код простой, буквально в несколько строк....приду домой, если вопрос будет актуальным, напишу код....
Некто

Некто (статус: Заблокирован), 16 мая 2009, 19:33 [#6]:

Спасибо, min@y, всё работает
min@y™

min@y™ (статус: Доктор наук), 16 мая 2009, 20:11 [#7]:

Да вы все задолбали коверкать мой ник! Сговорились, что ли?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 16 мая 2009, 20:27 [#8]:

Будь проще, я же не обижаюсь, когда меня ласкательно-уменьшительными называешь. А стоило бы.
Может просто сложно написать? А скопировать не могут...
Хотя я реально не понимаю, что он означает и на основании чего там (tm) написано. Документов не видел на торговую марку. И гугл молчит на эту тему как партизан.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 16 мая 2009, 20:37 [#9]:

Не хочу быть проще.
Вадимка - это не ласкательно-уменьшительное, а читаемое. Ну мне ж ту не пишут "минай тээм".

Цитата:

Хотя я реально не понимаю, что он означает и на основании чего там (tm) написано.

А "ТМ" - это "твою мать", а не "trade mark". Это за мной закрепилось очень давно, менять не хочу, ибо куча народа в инете знает меня под этим ником. Даже парочка статей были под ним напечатаны.

1 хрен, пора учиться копировать, штоли...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 16 мая 2009, 21:16 [#10]:

ужас. нет слов.
Галочка "подтверждения прочтения" - вселенское зло.
Ученый

Ученый (статус: 8-ой класс), 16 мая 2009, 23:21 [#11]:

min@y™ ты крут :)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 10 апреля 2020, 03:53
Выполнено за 0.03 сек.
Рейтинг@Mail.ru