powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Зеркальная строка
21 сообщений из 21, страница 1 из 1
Зеркальная строка
    #33227460
Stind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, подскажите, какой стандартной функцией можно сделать зеркальную строку: 123й -> й321
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227503
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никакой
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227505
Stind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Грустно...
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227506
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши свою :)
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227526
Stind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да написать-то не проблема. Проблема в том, что я, может быть, не найду нужной опции индексирования. Вопрос вот отчего возник.
Есть поле, по которому индексируется файл. мне нужен просмотр как бы в обратном порядке. Я пишу свою функцию, все работает, но работает значительно медленнее (я имею ввиду отражение содержимого файла при открытии). поле - 8 символов и мне кажется что именно конвертация сильно подтормаживает.
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227540
Stind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StindДа написать-то не проблема. Проблема в том, что я, может быть, не найду нужной опции индексирования. Вопрос вот отчего возник.
Есть поле, по которому индексируется файл. мне нужен просмотр как бы в обратном порядке. Я пишу свою функцию, все работает, но работает значительно медленнее (я имею ввиду отражение содержимого файла при открытии). поле - 8 символов и мне кажется что именно конвертация сильно подтормаживает.

Дополняю. Можно создать дополнительное поле с зеркальным значением первого и индексировать по нему, а показывать первое, но как-то не хочется из-за этого базу наращивать.
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227567
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже если бы и была такая встроенная функция, то от подтормаживания она б тебя не избавила. Добавь поле. :)
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227600
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если при вводе данных в это поле их сразу "перевернуть"? Для просмотра, как правило, вся таблица не нужна - т.е. в выборке можно "перевернуть" обратно... Если нет - только дополнительное поле...
...
Рейтинг: 0 / 0
Зеркальная строка
    #33227620
Stind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо - добавлю поле.
...
Рейтинг: 0 / 0
Зеркальная строка
    #33229065
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Stind!

Теоретически можно написать функцию на C и оформить в виде fll - это быдет
работать быстрее чем аналогичные действия на фоксе, только мне кажется что и
на C операция "переворота" строки будет достаточно медленной в реализации...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Зеркальная строка
    #33229155
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, о птичках. :) Как раз исходник на С функции возвращающей переданную ей в качестве параметра строку в обратном порядке лежит в Samples\API. Reverse.C называется. Осталось только компильнуть.
...
Рейтинг: 0 / 0
Зеркальная строка
    #33255074
Whitish Smoke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при размере поля в 8 символов функция конвертить должна моментально, Если этого нет, может имеет смысл переписать её с учётом размера поля? Конечно, при условии, что этот размер никогда не изменится.
...
Рейтинг: 0 / 0
Зеркальная строка
    #33255704
Stind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Whitish Smokeпри размере поля в 8 символов функция конвертить должна моментально, Если этого нет, может имеет смысл переписать её с учётом размера поля? Конечно, при условии, что этот размер никогда не изменится.

Наверно, я просто по-уродски поступил.
Поле - 8 символов, вид - 00004527, 00142875
Конвертирую так : индекс по = 99999999 - val(старое значение).
Может, это и дает тормоз?
...
Рейтинг: 0 / 0
Зеркальная строка
    #33255774
Komissar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огромного тормоза дать не должно...
з.ы. чё ж сразу не сказал шо у тебя токо цифирки в поле? букву в примере втулил...
...
Рейтинг: 0 / 0
Зеркальная строка
    #33255794
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к тому же извините это сабжик
...
Рейтинг: 0 / 0
Зеркальная строка
    #33256032
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stind Whitish Smokeпри размере поля в 8 символов функция конвертить должна моментально, Если этого нет, может имеет смысл переписать её с учётом размера поля? Конечно, при условии, что этот размер никогда не изменится.

Наверно, я просто по-уродски поступил.
Поле - 8 символов, вид - 00004527, 00142875
Конвертирую так : индекс по = 99999999 - val(старое значение).
Может, это и дает тормоз?Если индекс такой, то и в запросах своих делай:
Код: plaintext
1.
2.
* Например, надо найти tbl.val =  123 .
* Таблица проиндексирована по  99999999  - val
select * from tbl where  99999999  - val =  99999999  -  123 
Это даст оптимизацию по индексу.
...
Рейтинг: 0 / 0
Зеркальная строка
    #33256184
Stind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую!
...
Рейтинг: 0 / 0
Зеркальная строка
    #33256285
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что создать еще один индекс с DES сортировкой слабо?
...
Рейтинг: 0 / 0
Зеркальная строка
    #33256305
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е применить опцию DESCENDING при создании индекса.
...
Рейтинг: 0 / 0
Зеркальная строка
    #33256309
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
golsaТ.е применить опцию DESCENDING при создании индекса.

А это-то зачем?
...
Рейтинг: 0 / 0
Зеркальная строка
    #33256382
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще говоря, напсание функции для правильной обратной сортировки для построения КОМПОЗИТНОГО индекса по НЕСКОЛЬКИМ столбцам - это нет тривиальная задача. Мне, при разработке своего класса SMART_GRID (http://www.caws.atnet.ru/vfox/grid.html) пришлось разработать специальную функцию "ображения" столбца любого типа (в том числе и числового с положительными и отрицательными значениями). Вот текст функции:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
FUNCTION Revers
LPARAMETERS luStr, lnPrecision, lnScale
DO CASE
CASE VARTYPE(m.luStr) = "T"
	RETURN Revers(TTOC(m.luStr, 1 ))
CASE VARTYPE(m.luStr) == "C"
	m.luStr = CHRTRAN(NVL(m.luStr, ""), ["э], [э"])
	RETURN CHRTRAN(m.luStr, " !#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~Ёё№АБВГДЕЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмно
прстуфхцчшщъыьюя", 
"яюьыъщшчцхфутсрпонмлкйизжедгвбаЯЮЭЬЫЪЩШЧЦХФУ
ТСРПОНМЛКЙИЗЕДГВБА№ёЁ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#! ")
CASE VARTYPE(m.luStr) == "N"
m.lnPrecision = IIF(VARTYPE(m.lnPrecision)=="N", m.lnPrecision,  18 )
m.lnScale = IIF(VARTYPE(m.lnScale)=="N", m.lnScale,  2 )
RETURN Revers( NumToStr(m.luStr, m.lnPrecision, m.lnScale ))
CASE VARTYPE(m.luStr) = "D"
	m.luStr = NVL(m.luStr, {})
RETURN  STR( 99999999  - VAL(DTOS(m.luStr)))
OTHERWISE
	RETURN ""
ENDCASE
ENDFUNC
С уважением, Алексей.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Зеркальная строка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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