Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с алгоритмом поиска... [XP]


deras ©   (2007-05-31 23:17:00) 

Есть текстовый файл. Мне надо найти строку, которая содержит подстроку '[]' и в то же время "запомнить" предыдущую строку и следующую.


default   (2007-05-31 23:51:00) [1]

загрузка делается через TStringList.LoadFromFile


default   (2007-05-31 23:49:00) [2]

deras ©   (31.05.07 23:44) [6]
алгоритм упростится
в данной случае думаю стоит обойтись без TStringList(хотя опять же зависит от того что за задача у тебя какие требования и тд....)
а задачу можно поподробней?


deras   (2007-05-31 23:44:00) [3]

>а файл большой, может в TStringList загрузить да и не париться?

небольшой. Как реализовать загрузку в TStringList и упростит ли это алгоритм поиска?


default   (2007-05-31 23:43:00) [4]

и если таких строк может быть много то же никаких проблем, чуть потправить псевдокод и делов


default   (2007-05-31 23:38:00) [5]

deras ©   (31.05.07 23:32) [2]
а файл большой, может в TStringList загрузить да и не париться?


default   (2007-05-31 23:36:00) [6]

примерный псевдокод

предыдущая строка = пусто
текущая строка = пусто
флаг успешности поиска = ложь
пока (не конец файл)
  предыдущая строка = текущая строка
  текущая строка = СчитатьИзФайлаСледующуюСтроку(имя файла)
  если (текущая строка содержит '[]) тогда
    третья строка = пусто
    если (не конец файла) то третья строка =    
           СчитатьИзФайлаСледующуюСтроку(имя файла)
    флаг успешности поиска = истина
    выйти из цикла 'пока'
  конец если
конец пока

если (флаг успешности = истина) тогда ....


deras   (2007-05-31 23:32:00) [7]

>на каждом этапе проверяем на '[]' текущую строку и если есть читаем ещё следующую строку и выходим

уточняю вопрос. Если таких строк много и не надо выходить из цикла, а проверять далее?


default   (2007-05-31 23:26:00) [8]

ну очевидное решение это читать текстовый файл построчно, храня на каждом этапе считывания строки значение текущей строки и предыдущей
на каждом этапе проверяем на '[]' текущую строку и если есть читаем ещё следующую строку и выходим


Наверх

Титульная страница Поиск, карта сайта Написать письмо