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

---telum---
...
Рейтинг: 0 / 0
Вопрос по применению подстановочных символов в строке
    #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
Вопрос по применению подстановочных символов в строке
    #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
Вопрос по применению подстановочных символов в строке
    #37013035
Фотография Telum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот такой вопрос, есть ли функция подобная LIKE(), только где можно задать что то вроде nOccurence ?
...
Рейтинг: 0 / 0
Вопрос по применению подстановочных символов в строке
    #37013113
TelumА вот такой вопрос, есть ли функция подобная LIKE(), только где можно задать что то вроде nOccurence ?Сударь, а Вы непробовали таки прочитать хелп по предложенным функциям? Говорят, очень полезное занятие.
...
Рейтинг: 0 / 0
Вопрос по применению подстановочных символов в строке
    #37013426
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы направить мысли в других направлениях, посмотрите описание команд

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

PS: Не надо считать эти 3 строчки - программным кодом . Это названия команд, справку по которым надо посмотреть в HELP
...
Рейтинг: 0 / 0
Вопрос по применению подстановочных символов в строке
    #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
Вопрос по применению подстановочных символов в строке
    #37014527
TelumА какие функции нужные мне Вы предложили? Ничего интересного и нового я не увидел :). Ничего нового? А что же тогда про " только где можно задать что то вроде nOccurence?" спрашиваем? Так Вы хелп по strextract() читали или как?P.S. Таблицу всю выложить не могу ведомство :)Я ее кто-то просил ВСЮ выложить? Трудно взять пару-тройку записей, заменить "секретную" информацию на любой набор букв и выложить?
...
Рейтинг: 0 / 0
Вопрос по применению подстановочных символов в строке
    #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
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по применению подстановочных символов в строке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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