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

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

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

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

Наверно, я просто по-уродски поступил.
Поле - 8 символов, вид - 00004527, 00142875
Конвертирую так : индекс по = 99999999 - val(старое значение).
Может, это и дает тормоз?
...
Рейтинг: 0 / 0
07.09.2005, 11:37:17
    #33255774
Komissar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зеркальная строка
огромного тормоза дать не должно...
з.ы. чё ж сразу не сказал шо у тебя токо цифирки в поле? букву в примере втулил...
...
Рейтинг: 0 / 0
07.09.2005, 11:41:38
    #33255794
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зеркальная строка
к тому же извините это сабжик
...
Рейтинг: 0 / 0
07.09.2005, 12:31:03
    #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
07.09.2005, 13:08:34
    #33256184
Stind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зеркальная строка
Спасибо, попробую!
...
Рейтинг: 0 / 0
07.09.2005, 13:34:39
    #33256285
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зеркальная строка
А что создать еще один индекс с DES сортировкой слабо?
...
Рейтинг: 0 / 0
07.09.2005, 13:37:47
    #33256305
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зеркальная строка
Т.е применить опцию DESCENDING при создании индекса.
...
Рейтинг: 0 / 0
07.09.2005, 13:39:07
    #33256309
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зеркальная строка
golsaТ.е применить опцию DESCENDING при создании индекса.

А это-то зачем?
...
Рейтинг: 0 / 0
07.09.2005, 13:57:50
    #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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Зеркальная строка / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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