Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по применению подстановочных символов в строке / 9 сообщений из 9, страница 1 из 1
13.12.2010, 20:48
    #37012246
Telum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по применению подстановочных символов в строке
Уважаемые коллеги, нужен Ваш проф. совет! Возникла необходимость применить подстановочные символы в строке поиска команды AT(строка_что_ищем, строка_где_ищем).
Файл text.txt ("строка_где_ищем") с такой структурой:
-------
|1 |
---+--+
|2 |
---+--+
| |
|3 |
|10|
|99|
---+--+
Мне нужно выделить из этой строки последовательность "|??|", где ?? это число от 1 до 99 (как в примере), если числом является одноразрядное число 1,2....9, то последний символ "chr(20)". Надеюсь смог донести суть вопроса. Заранее благодарен.

---telum---
...
Рейтинг: 0 / 0
14.12.2010, 00:24
    #37012477
Вопрос по применению подстановочных символов в строке
TelumУважаемые коллеги, нужен Ваш проф. совет! Возникла необходимость применить подстановочные символы в строке поиска команды AT(строка_что_ищем, строка_где_ищем).
Файл text.txt ("строка_где_ищем") с такой структурой:
-------
|1 |
---+--+
|2 |
---+--+
| |
|3 |
|10|
|99|
---+--+
Мне нужно выделить из этой строки последовательность "|??|", где ?? это число от 1 до 99 (как в примере), если числом является одноразрядное число 1,2....9, то последний символ "chr(20)". Надеюсь смог донести суть вопроса. Заранее благодарен.

---telum---И почему ВЫ решили, что у Вас "Возникла необходимость применить подстановочные символы в строке поиска команды AT(строка_что_ищем, строка_где_ищем)"? С чего Вы взяли, что для вырезания куска строки, ограниченного определенными ограничителями нужно имено такое решение? Каким боком тут AT()?
Код: plaintext
1.
?strextract('   |99|', '|', '|')
?strextract('   |2 |', '|', '|')
...
Рейтинг: 0 / 0
14.12.2010, 09:19
    #37012666
Telum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по применению подстановочных символов в строке
проходящий.TelumУважаемые коллеги, нужен Ваш проф. совет! Возникла необходимость применить подстановочные символы в строке поиска команды AT(строка_что_ищем, строка_где_ищем).
Файл text.txt ("строка_где_ищем") с такой структурой:
-------
|1 |
---+--+
|2 |
---+--+
| |
|3 |
|10|
|99|
---+--+
Мне нужно выделить из этой строки последовательность "|??|", где ?? это число от 1 до 99 (как в примере), если числом является одноразрядное число 1,2....9, то последний символ "chr(20)". Надеюсь смог донести суть вопроса. Заранее благодарен.

---telum---И почему ВЫ решили, что у Вас "Возникла необходимость применить подстановочные символы в строке поиска команды AT(строка_что_ищем, строка_где_ищем)"? С чего Вы взяли, что для вырезания куска строки, ограниченного определенными ограничителями нужно имено такое решение? Каким боком тут AT()?
Код: plaintext
1.
?strextract('   |99|', '|', '|')
?strextract('   |2 |', '|', '|')

Уважаемый, текст намного больше! Это я Вам выслал лишь кусок примера, в Вашем коде ?strextract(' |2 |', '|', '|'), извлечется не только "2 " но и любые симмволы между двумя "|". Мне нужно извлечь именно пару символов по маске "|??|" - именно такая последовательность не повторяется в текстовой таблице.

Сам вспомнил: LIKE(cExpression1, cExpression2) :) Спасибо пост можно закрыть.
...
Рейтинг: 0 / 0
14.12.2010, 11:45
    #37013035
Telum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по применению подстановочных символов в строке
А вот такой вопрос, есть ли функция подобная LIKE(), только где можно задать что то вроде nOccurence ?
...
Рейтинг: 0 / 0
14.12.2010, 12:11
    #37013113
Вопрос по применению подстановочных символов в строке
TelumА вот такой вопрос, есть ли функция подобная LIKE(), только где можно задать что то вроде nOccurence ?Сударь, а Вы непробовали таки прочитать хелп по предложенным функциям? Говорят, очень полезное занятие.
...
Рейтинг: 0 / 0
14.12.2010, 14:03
    #37013426
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по применению подстановочных символов в строке
Чтобы направить мысли в других направлениях, посмотрите описание команд

AFILEDS()
APPEND FROM text.txt TYPE DELIMITED WITH CHARACTER "|"
FOPEN() + FGETS()

PS: Не надо считать эти 3 строчки - программным кодом . Это названия команд, справку по которым надо посмотреть в HELP
...
Рейтинг: 0 / 0
14.12.2010, 19:59
    #37014374
Telum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по применению подстановочных символов в строке
проходящий.TelumА вот такой вопрос, есть ли функция подобная LIKE(), только где можно задать что то вроде nOccurence ?Сударь, а Вы непробовали таки прочитать хелп по предложенным функциям? Говорят, очень полезное занятие.

А какие функции нужные мне Вы предложили? Ничего интересного и нового я не увидел :).


ВладимирМ Чтобы направить мысли в других направлениях, посмотрите описание команд

AFILEDS()
APPEND FROM text.txt TYPE DELIMITED WITH CHARACTER "|"
FOPEN() + FGETS()

PS: Не надо считать эти 3 строчки - программным кодом . Это названия команд, справку по которым надо посмотреть в HELP

Спасибо за команды, но только AFIELDS() мне вообще в данном случаи не нужен, так как размер txt 150 Мб, содержит по разному форматированный дос текст, с разными по ширине таблицами, вот с этими - "|" закорючками. Бывает даже 4-5 таблицы в ширину страницы.
APPEND FROM text.txt TYPE DELIMITED WITH CHARACTER "|". Сразу в сад - она мне такую х*ню вставит, что я потом в жизнь не разберусь.
Низкоуровневым командам FOPEN() + FGETS() имхо предпочитаю strtofile(), filetostr() (в моем случае, эти функции предпочтительнее).

LIKE() тоже не вариант, долго будет выборка идти, придется циклом пробежаться сначала определить все "|" потом выделить именно те "|" позиции, между которыми два символа и эти символы после преобразования типов будут цифрами. Сложно объяснить или у меня нет навыка четко описывать свою задачу.

P.S. Таблицу всю выложить не могу ведомство :)
...
Рейтинг: 0 / 0
14.12.2010, 21:55
    #37014527
Вопрос по применению подстановочных символов в строке
TelumА какие функции нужные мне Вы предложили? Ничего интересного и нового я не увидел :). Ничего нового? А что же тогда про " только где можно задать что то вроде nOccurence?" спрашиваем? Так Вы хелп по strextract() читали или как?P.S. Таблицу всю выложить не могу ведомство :)Я ее кто-то просил ВСЮ выложить? Трудно взять пару-тройку записей, заменить "секретную" информацию на любой набор букв и выложить?
...
Рейтинг: 0 / 0
15.12.2010, 11:50
    #37015425
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по применению подстановочных символов в строке
TelumAPPEND FROM text.txt TYPE DELIMITED WITH CHARACTER "|". Сразу в сад - она мне такую х*ню вставит, что я потом в жизнь не разберусь.
"Шашкой махать" сразу не надо. APPEND FROM имеет то преимущество, что позволяет закачать "построчно" файл в DBF-таблицу. Т.е. вместо строкового анализа текстового файла переходим к анализу строк таблицы.

И потом, Вам же нужны не все строки файла, а только имеющие определенное содержание. Т.е. те записи, которые содержат ерунду, скорее всего, Вам и так не понадобились бы. В них нет нужной информации. Вот и пропускайте "лишние" записи.

Если использование разделителя - невозможно, то можно закачать файл "как есть" используя

Код: plaintext
APPEND FROM ... TYPE SDF

TYPE SDF - предполагает, что каждое поле имеет строго фиксированный размер и не имеет вообще никаких разделителей. Ни между полями, ни как ограничители символьных полей.

Посмотрите, что получится в курсоре при таком коде

Код: plaintext
1.
2.
3.
4.
create cursor curContent (f1 C( 250 ), f2 C( 250 ), f3 C( 250 ))
append from text.txt TYPE SDF
go top
browse nowait

Если "ширины" недостаточно, то количество полей в курсоре можно увеличить.

TelumНизкоуровневым командам FOPEN() + FGETS() имхо предпочитаю strtofile(), filetostr() (в моем случае, эти функции предпочтительнее).
При размере в 150МБ только APPEND FROM или низкоуровневые команды. FileToStr() корректно работают только с файлами до 16МБ. Все что больше - без гарантий. Но даже с 16МБ "высокоуровневые" команды будут работать ОЧЕНЬ медленно.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по применению подстановочных символов в строке / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]