Вниз
Скачать: CL | DM;

Текстовый файл и delphi   Найти похожие ветки 

 
vit ©   (2003-08-15 12:50) [0]

Подскажите как решить проблему!
Требуеться произвести поиск в текстовом файле чисел в заданном диапозоне. Допустим необходимо найти число от 1000 до 3000 к примеру(1300) и вывести в поле memo1 расположенное на форме это число и следующие за ним (символы.слова.числа) до конца строки. Найти следущее число (1300)и следующие символы за ним до конца строки добавить в поле memo в следущюю строку и так пока небудет достигнут конец файла!


 
Anatoly Podgoretsky ©   (2003-08-15 12:59) [1]

Readlm + pos


 
still ©   (2003-08-15 13:00) [2]

Число может быть в любом месте строки? Должно ли оно чем-то отделяться от соседних символов (напр. пробелами)?


 
Андрей Сенченко ©   (2003-08-15 13:05) [3]

Алгоритм можно попытаться пошукать тут
http://algolist.manual.ru/search/index.php

Но в целом - по Подгорецкому
Readln + pos.


 
vit ©   (2003-08-15 13:06) [4]

Да число находиться в любом месте но не далее 80 символа в строке
От соседних символов должно отделяться как раз пробелами.


 
KPP   (2003-08-15 13:11) [5]

ничего лучше не придумаешь, как считывать посторочно или весь файл в пямять, а потом POS
// Readlm - хорошо звучит.. ;)


 
vit ©   (2003-08-15 13:19) [6]

сенкс!


 
Serginio212   (2003-08-15 13:24) [7]

Я бы для скорости посоветовал метод Боуера-Мур-Хорспул
http://algolist.manual.ru/search/esearch/horspool.php


 
KPP   (2003-08-15 13:55) [8]

> Serginio212 (15.08.03 13:24) [7]

какой прок от этого алгоритма в данном случае?


 
Serginio999   (2003-08-15 14:41) [9]

>KPP (15.08.03 13:55) [8]
А это в зависимости от того как ты организешь поиск.
Можно вести поиск через буффер, а можно прямо чтением в файле в зависимости от размера поисковой строки. Кроме всего прочего метод Боуера-Мур-Хорспул при определенных условиях во много раз быстрее Pos.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
1-92110
Andrew
2003-08-15 11:49
2003.08.28
Как в динамике задавать размеры поля Field1 записи TRecord?


14-92199
Омлет
2003-08-11 00:12
2003.08.28
Именинники 11 августа.


11-92089
Y
2002-12-22 18:07
2003.08.28
Создание таблицы рекордов


4-92302
zdn
2003-06-26 15:48
2003.08.28
Sendmessage


7-92281
msgipss
2003-06-11 10:08
2003.08.28
Программно отключить системный динамик




   Наверх