|
|
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем! Подскажите пожалуйста, как можно в VFP 3.0 организовать поиск в текстовом файле? и причём поиск нужно вести с конца файла. Благодарю заранее всех, кто откликнется. С уважением, Юлия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 14:36 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
При любом раскладе придется закачать весь файл в переменные памяти и только потом делать поиск. Насколько я знаю, нет команд, которые могли бы искать справа налево. Собственно, вариантов 2: 1) Используя FOPEN()+FGETS()+FCLOSE() считываешь построчно содержимое текстового файла и заносишь каждую строку в элементы массива. Потом делаешь поиск по этому массиву Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Получаешь массив laFile в котором каждая строка - это одна строка текстового файла. В данном случае под термином "строка" подразумевается текст до символа возврата каретки или до 254 символов. Если строка может иметь более 254 символов, то надо указать в качестве второго параметра FGETS() предельно допустимое количество символов в одной строке. Массив не может содержать более 65000 элементов. Если количество строк больше, то надо либо создавать несколько массивов, либо не хранить вообще все строки в массиве, а хранить только те строки, которые содержат нужную информацию. 2) Закачать весь текстовый файл в memo-поле и использовать функции разбора содержимого мемо-поля Код: plaintext 1. 2. 3. Далее можно работать с функциями MLINE(), MEMLINES() для разбора содержимого. Но в этом случае под одной строкой будет пониматься последовательность символов до символа перевода каретки или до количества символов, указанных в настройке SET MEMOWIDTH (по умолчанию -это 50 символов) В принципе, с содержимым мемо-поля можно работать как с обычной символьной переменной. Т.е. использовать функции поиска в текстовой переменной вроде AT(), $, OCCURSE(). Размер мемо-поля не может превышать 2ГБ. Т.е. текстовый файл бОльшего размера таким способом невозможно обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2006, 19:59 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
ВладимирМНасколько я знаю, нет команд, которые могли бы искать справа налево. А для чего функция RAT(cSearchExpression, cExpressionSearched [, nOccurrence]) ?!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 11:40 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
__Владимир__ ВладимирМНасколько я знаю, нет команд, которые могли бы искать справа налево. А для чего функция RAT(cSearchExpression, cExpressionSearched [, nOccurrence]) ?!!! Вы постановку задачи читали? Yuliya_gорганизовать поиск в текстовом файле? и причём поиск нужно вести с конца файла КАК здесь поможет функция RAT()? При любом раскладе сначала придется закачать весь файл в переменные памяти и только потом что-то там искать... Можно и с помощью функции RAT(). Но это уже "потом". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 13:41 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
Абсолютно согласен с двумя предыдущими ораторами и предлагаю компромис без массивов Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 14:51 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
Функция FileToStr() была введена только в версии VFP6. В данном случае речь идет о VFP3. Там это функции просто нет. Впрочем, можно получить символьную строку из файла, прокачкой через мемо-поле. Это возможно в любой версии FoxPro. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 14:59 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
Понятно неучел :-( но вот кусок Helpа VFP 6 из него очень легко можно сделать свою функцию FiletoStr Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 16:56 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
Благодарю всех за помощь! Буду теперь, пользуясь вашими советами, пытаться реализовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 09:49 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
Hi S866! У FREAD() имеется ограничение на размер считываемого за раз блока, кроме того FILETOSTR() может считывать и файлы превышающие по размеру 16Мб (лимит на размер текстовой переменной в VFP), так что так вот просто полноценного аналога FILETOSTR() не сделать. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 22:42 |
|
||
|
Как осуществить поиск в текстовом файле с конца в VFP3.0
|
|||
|---|---|---|---|
|
#18+
Hi Igor Korolyov я это знаю - но вопервых вдруг там файлы мелкие. при файлах в 16 мб - я думаю не очень быстро процесс пойдет и у filetostr а во вторых - главное направить человека в правильном направлении а ограничения он и сам преодолеет (а не преодолеет так на форуме спросит) с уважением Вячеслав ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2006, 08:50 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=259&tid=1591733]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 329ms |

| 0 / 0 |
