![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с алгоритмом поиска... [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]ну очевидное решение это читать текстовый файл построчно, храня на каждом этапе считывания строки значение текущей строки и предыдущей
на каждом этапе проверяем на '[]' текущую строку и если есть читаем ещё следующую строку и выходим