| 
| 
 | Вопрос # 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™ (статус: Доктор наук), 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™ (статус: Доктор наук), 16 мая 2009, 20:11 [#7]:Да вы все задолбали коверкать мой ник! Сговорились, что ли? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 16 мая 2009, 20:27 [#8]:Будь проще, я же не обижаюсь, когда меня ласкательно-уменьшительными называешь. А стоило бы. Может просто сложно написать? А скопировать не могут...
 Хотя я реально не понимаю, что он означает и на основании чего там (tm) написано. Документов не видел на торговую марку. И гугл молчит на эту тему как партизан.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | 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™ ты крут   |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |