powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / [Объявление] Библиотека пользовательских функции FoxPro на C
25 сообщений из 116, страница 2 из 5
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34089187
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь, мы же не в суде. Зачем придираться к отдельным фразам? Я ведь тоже могу в Вашем стиле надергать цитат, а потом удивлятся, что за ерунду Вы тут понаписали. Попробую еще раз.

Итак: ASORT() и прямое сравнение символьных строк дает разный результат.

Вы сделали вывод, что неправильным (ошибочным) является именно ASORT(). Почему собственно? У Вас ведь всего 2 варианта результата. Какие есть основания считать, что ошибочен один и правилен другой?

Поэтому я решил поискать еще один (третий) вариант сравнения. Это индекс. Поскольку FoxPro в принципе не поддерживает значение индексных ключей переменной длины, то, логично предположить, что индексы будут строится как некий аналог SET EXACT ON. Т.е. обязательно дополнит более короткое выражение до длины более длинного.

Результат работы индекса совпал с результатом работы ASORT(). Т.е. имеет 3 технологии сравнения, при этом 2 из них дают одинаковый результат.

Далее, включаем "здравый смысл" и пытаемся понять ПОЧЕМУ? Т.е. понять логику сравнения в том или ином случае.

Итак, идет сравнение "пустой строки" и "НЕ пустой строки". Прямое сравнение символьных строк дает пародоксальный результат: пустое значение больше не пустого. Полный бред! Не может такого быть!

Однако если посмотреть "с другой стороны", то мы сравниваем "пустую строку" и "не печатный символ". Другими словами, пытаемся сравнить бинарные коды по правилам сравнения ТЕКСТА.

Для текста "пустая строка" - это строка состоящая из пробелов Chr(32).
Для бинарного кода "пустая строка" - это строка состоящая из Chr(0)

Очевидно, что ASORT() и индекс при сравнении используют бинарное сравнение, а прямое сравнение символьных строк предполагает некую предварительную визуализацию сравниваемых ТЕКСТОВ.

Другими словами, Вы пытаетесь сравнивать разые "сущности". Ну, примерно как сливы с яблоками. Яблоки отичаются от слив, значит, сливы надо выбросить. Это идологически вредные плоды и должны быть "испавлены".

Вот об этом я и написал. Прежде чем сравнивать символьные строки (не важно, каким способом) их надо "перевести" в одинаковые "сущности". Либо мы сравниваем ТЕКСТ (нечто видимое и печатное), либо мы сравниваем бинарный код (нечто, не обязательно видимое). Выбирая конкретную "сущность" мы выбираем и способы сравнения.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34089245
ORAselect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aijik[quot автор]Человек хочет на нас денег сделать?
Пусть автор прояснит свою позицию.

АВТОРУ БИБЛТОТЕКИ:

Спасибо, все работает. А на кой ляд объяснять людям, про С++ только в инете знающим не надо. и про то, что сишнику часто непривычно и неинтересно пользовать стандартные ф-ции фокса - им говорить бесполезно.

И про деньги - чушь собачья, когда человек предлагает халяву скачать.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34089792
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ORAselect, это не халява. Это просто "тренировочный полет маленького мальчика" в попытке быть оригинальным. Не для этого в фоксе сделана совмтестимость с С++. Совсем не для этого. Так мы скоро увидим Рашмора в натуре в реализации библиотеки на С++ :)) У команды .Net не "выходит каменный цветок", а тут такое... :))
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34089932
Игорь2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To ВладимирМ
Что ж будем считать, что есть некоторое противоречие, функция ASORT() в неявном виде дополняет элементы при сравнении символом CHR(0),
тогда как при сравнении строки дополняются пробелом.
В документации об этом не слова. Можно на этом завершить обсуждение ASORT() .
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Rand(- 1 )
For pnI =  1  To  25 
   Dimension laArray(pnI)
   lnRand = Rand()
   Do Case
      Case lnRand  <  0 . 2 
         lcHasElem = ""
      Case lnRand  <  0 . 6 
         lcHasElem = Space( 1 )+Chr( 31 )
      Case lnRand  <  0 . 7 
         lcHasElem = Space( 1 )
      Case lnRand  <  0 . 8 
         lcHasElem = Space( 2 )
      Case lnRand  <  0 . 9 
         lcHasElem = Space( 3 )
      Otherwise
         lcHasElem = Chr( 31 )+Space( 1 )
   Endcase
   laArray(pnI) = lcHasElem
ENDFOR
?[до сортировки]
Display Memory Like laArray
=Asort(laArray)
?[после сортировки]
Display Memory Like laArray


To ORAselect
Спасибо на добром слове, по моему мнению библиотеки на C для FoxPro пишутся в двух случаях
1) когда что-то принципиально нельзя реализовать на FoxPro, типа проверки наличия дискеты в дисководе, я еще помню написал программу для FoxPro For DOS, которая загружалась вместе с АРМом, программа каждые пять секунд проверяла наличие определенного файла, если мне надо было послать пользователям сообщения или выкинуть их из АРМа
я создавал файл и писал определенные строки в него.
2) когда требуется высокая скорость работы, например, вытащить в массив все слова из строки, особенно из большой строки.
Время от времени возникают задачи построения таблицы ключевых слов из memo полей.
Таблицу ключевых слова из memo полей 14 записей программа строит за 0.05 секунды, представьте что у Вас 1 400 000 записей, то есть скорость имеет значение.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
Set Library To St_Denis Additive
Set Safety Off

Close Database
Open Database (Home( 2 ) + 'data\testdata') Noupdate
Use employee In  0  Noupdate


lnBegTime = Seconds()
lcMaxLenAllWord  = MakeKeyWordsFromAllMemoField([employee], [keywordsemployee])
* lcMaxLenAllWord  = MakeKeyWordsFromAllMemoField([employee], [keywordsemployee], '', [Between(Recno(), 5 , 10 )])
?[Maximal lenght of all words is ], lcMaxLenAllWord
?[performance is ],  Seconds() - lnBegTime, [ seconds ]

Release Library St_Denis



Function MakeKeyWordsFromAllMemoField
   Lparameters tcInputTableName,  tcOutputTableName, tcMemoFieldName, tcForClause
   Create Table (tcOutputTableName) Free  (nRecno N( 12 ), WORDNUM N( 6 ), Word C( 50 ), STARTWORD N( 6 ))
   Select (tcInputTableName)
   If Empty(tcForClause) Or Type('tcForClause') <> 'C'
      tcForClause = '.T.'
   Endif
   Local All
   If Empty(tcMemoFieldName) Or Type('tcMemoFieldName') <> 'C'
      Afields(laFields)
      * if this parameter is not valid
      * we are looking for a first memo field in the table
      For lnI =  1  To Alen(laFields, 1 )
         If laFields(lnI,  2 ) = [M]
            tcMemoFieldName = laFields(lnI,  1 )
            Exit
         Endif
      Endfor
   Endif
   If Empty(tcMemoFieldName) Or Type('tcMemoFieldName') <> 'C'
      Return 'Memo field does not exists !'
   Endif
   tcMemoFieldName = '@'+tcMemoFieldName
   lcUniqArrayName = Sys( 2015 )
   lcDelimiters = [ ,.:;<>|+-_-*&^$%#@~!?"'(){}/]+Chr( 10 )+Chr( 13 )+Chr( 9 )
   lcMaxLenAllWord  =  0 
   Scan For Evaluate(tcForClause)
      lcMaxLenWord  = GETALLWORDS(lcUniqArrayName, &tcMemoFieldName, lcDelimiters)
      If lcMaxLenWord >  0 
         lcMaxLenAllWord  = Max(lcMaxLenAllWord, lcMaxLenWord)
         m->nRecno = Recno()
         Select (tcOutputTableName)
         Append From Array (lcUniqArrayName) Fields WORDNUM, Word, STARTWORD
         Go (Reccount() - Alen((lcUniqArrayName), 1 ) +  1 )
         Replace nRecno With m->nRecno Rest
      Endif
   Endscan
   Release (lcUniqArrayName)
   Return lcMaxLenAllWord

To MSDN
авторУ команды .Net не "выходит каменный цветок", а тут такое... :))К сожалению, я не понял, потрудитесь излагать свои мысли яснее.
Я сначала испугался, что Вы увидели мой ужасный код и Вам стало плохо, но нет, все обошлось. Вы снова здесь, Вы снова готовы поделиться своими дельными соображениями.
У такого мастера, коим, несомненно, Вы являетесь, есть, наверняка есть, великолепные образцы кода, красивого и без ошибок, которыми Вы могли бы поделиться.
Ибо кто, как не Мастер написания кода, может научить, как нужно писать код? Код Мастера в студию!
А то Вы как-то остаетесь неизвестным, а вдруг это сам Уолтер Кеннамер выучил русский язык и издевается надо мной?
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34101864
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь2004, дельными соображениями на тему того, что не нужно изобретать велосипед ? Или соображениями на тему того, что ВладимирМ Вам разжевал разницу с таким усердием, что ни на 1 лекции не увидишь ? Какие еще дельные соображения Вам нужны, если вы уперлись со своими самоалгоритмами, кои никому не нужны. О чем может быть вообще разговор ?
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102150
Равиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDNИгорь2004, дельными соображениями на тему того, что не нужно изобретать велосипед ? Или соображениями на тему того, что ВладимирМ Вам разжевал разницу с таким усердием, что ни на 1 лекции не увидишь ? Какие еще дельные соображения Вам нужны, если вы уперлись со своими самоалгоритмами, кои никому не нужны. О чем может быть вообще разговор ?
:) Всем привет.

2Игорь2004 Почему Ваша публикация вдруг вызвала раздражение? Вижу 3 причины:

1) Вы нарушили сложившийся порядок - когда в основном задаются вопросы типа "Помогите!", а Вы не попросили помощи, а наоборот ее без спроса предложили.

2) Вы несколько поспешили с этим - подвел счетчик сообщений, а именно он и есть уровень профессионализма, а Вы вдруг с алгоритмами

3) Как Вы правильно заметили и это было очевидно, что реакция последовала еще до скачивания и просмотра - потому что осудить легче, чем понять.

Конечно я не имею ввиду посты Владимира Максимова - они как раз были традиционно аргументированы :)

2MSDN Надеюсь, что полемика закончится извинениями с Вашей стороны.
С уважением :)
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102172
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Равиль, надейся мой маленький друг :)
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102183
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И оправдываю надежды :)
Простите меня, что я вас так жестко пресанул.
Так устроит ?
Или есть еще варианты ?
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102208
Равиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDN... Простите меня, что я вас так жестко пресанул ... Вам показалось
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102223
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Равиль, "....кто знает Ватсон, кто знает".
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102230
Равиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDNРавиль, "....кто знает Ватсон, кто знает". ... разьве что Админ ... который прикроет нашу переписку
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102468
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как на каком-то форуме SQL.RU было замечено:
> Лучше тебя потом простят чем сейчас не заметят.
Вот Вы со своим товарищем, которого оправдываешь, именно так и поступаете :)) Джалабь ;)
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102546
Игорь2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Равиль
Спасибо на добром слове, реакция нормальная, то есть такая, какая мной и ожидалась,кстати на англоговорящем форуме была однажды такая же реакция.
Чем ценен русскоговорящий форум, там обольют помоями,
но в них что-то можно найти полезное, мне это как раз и нужно.
Нужен критический взгляд, но конечно ценна конкретная аргументированная критика.
автора Вы не попросили помощи, а наоборот ее без спроса предложили.
Надеюсь, что действительно кому нибудь поможет, на англоговорящем форуме, когда была резко отрицательная реакция со стороны «профессионалов», я спросил, есть ли те, кому мои функции помогли, и попросил их ответить, одни человек написал, что ему мои функции помогли сэкономить время, и поддержал простую идею о том, что не нужно – не скачивай. Поэтому все просто – кому нужно, тот скачивает, кому не нужно, не скачивает, есть выбор. Из тех, кто скачал, кому нужно - использует, кому не нужно - не использует.

авторВы несколько поспешили с этим - подвел счетчик сообщений, а именно он и есть уровень профессионализма
Это шутка, конечно, уровень профессионализма, наверное, скорее код, который человек пишет, насколько он понятен, насколько он задокументирован.

to MSDN Я снова был обеспокоен, не случилось ли с Вами чего-нибудь плохого, нет, вижу все в порядке.
Насколько я понял, Вы обеспокоены тем, что та небольшая часть программистов,
автор«если вы уперлись со своими самоалгоритмами, кои никому не нужны.» , пострадает от использования моих функций. Я могу опубликовать Ваш авторитетный отзыв в описании моих функций, в разделе отзывы, но желательно, чтобы было упомянуто Ваше имя, адрес электронной почты, сайт, ссылка на Ваши публикации. Согласитесь, если я в раздел отзывы и мнения вставлю следующее :
«Эти функции полная дрянь, абыр, абыр» и подпись MSDN, то это будет выглядеть смешно.
гораздно солиднее, к примеру,
«На счет кода - это полный "АХТУНГ".
Это просто "тренировочный полет маленького мальчика" в попытке быть оригинальным.»
Шариков П.П. sharikov@balalayka.ru, http://]www.bomg.ru
MVP по удавливанию кошек
Публикации
«Я их давил, давил, давил, давил»
«Светит месяц, свети ясный»
«Да не согласен я»
Берегите себя, но желательно все таки раскрыть свое инкогнито, привести примеры своего кода.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34102833
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Равильразьве что Админ ... который прикроет нашу переписку
Модератор: Пока вроде не за что закрывать...
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34104279
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да пойду скачаю.
Есть функции которые необходимы.
Кто нибудь побовал case в case-е ?
DANSLISTE() определяет находится ли число в списке значений типа «1,5,13-18»
тоже неплох.
Набросились на человека. Лишь бы поругать.
To Игорь2004.
Те кто сможет похвалить прийдут позже т.к. они сначала поработают с библиотекой.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34104394
Полуюзверь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Игорь2004
Закинь ссылку туда
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34104867
Игорь2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Admin
авторМодератор: Пока вроде не за что закрывать...
Допускается ли употребление неприличных выражений , абсолютно не относящихся к предмету спора, ведь внутренние самоограничения у ряда посетителей форума не работают.
Слово “джелаб” в ряде языков тюркской языковой группы означает «продажную женщину», то есть, попросту, в русском языке есть аналогичное слово на букву б.
Я уверен, что каждый из посетителей и участников знает нецензурные выражения, но большинство воздерживается от их употребления на данном форуме.
Насколько целесообразно разрешать незарегистрированным участникам оставлять свои сообщения ?
to ГенГрум функция icase() встроена в 9 версию, в более ранних версия ее нет, поэтому я вставил ее в библиотеку, естественно, можно вкладывать одну функцию icase() в другую icase(), просто выражение получается громоздким.
авторТе кто сможет похвалить прийдут позже т.к. они сначала поработают с библиотекой.
Замечательно, но таких будет меньшинство, ибо мои функции мало кому (практически никому) не нужны.
to Полуюзверь
так и сделаю впоследствии, и еще предложу мои функции на другие форумы по FoxPro, пусть мои функции будут никому не нужны еще и на других форумах.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34104999
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь2004 Слово “джелаб” в ряде языков тюркской языковой группы означает «продажную женщину», то есть, попросту, в русском языке есть аналогичное слово на букву б.
Модератор: Языками форума являются русский и английский. Я не знаю других языков, так что оценить нанесенный Вам моральный вред не могу. Если Вы желаете, то могу просто закрыть данный топик...
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34105175
Равиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDNКак на каком-то форуме SQL.RU было замечено:
> Лучше тебя потом простят чем сейчас не заметят.
Вот Вы со своим товарищем, которого оправдываешь, именно так и поступаете :)) Джалабь ;)

:) Всем привет
2MSDN Наличие дружелюбных смайлов располагает к общению,
но к сожалению нет времени (да и желание не велико)

ps а Ваша подпись в конце сообщения - неожиданна и оригинальна
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34105354
MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch, нет. Это не переводится. Это транскрипт. И означает просто связку слов в в зависимости от эмоциональной окраски в Азии.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34107479
Игорь2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если Вы поработали с библиотекой, она хоть в чем-то оказалось полезной, пишите мне по адресу udfunctions(at)gmail.com, я опубликую Ваши отзывы и комментарии в соответствующем разделе файла описания библиотеки.
Если посчитаете целесообразным, укажите в письме Ваше имя и компанию.
Какие еще форумы кроме данного и foxclub, Вы могли бы порекомендовать мне для опубликования объявления о данной библиотеке функций?

Вы можете загрузить русскую версию данной библиотеки по адресу
ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip .

В файл архива входят:
1) St_Denis.fll библиотека для VFP 8.0 и ниже
2) St_Denis.fll библиотека для VFP 9.0
3) St_Denis.plb библиотека для FoxPro 2.6 for DOS
4) St_Denis.c исходный текст библиотеки
5) St_Denis_Russian.chm подробное описание функций библиотеки, с примерами их использования, дополнительные материалы, среди которых пошаговое описание того, как компилировать библиотеку в Visual Studio .NET 2005 (2003).
6) St_Denis.prg реализация некоторых функций библиотеки на FoxPro.
7) test_perf.prg тесты, позволяющие наглядно получить преставление о быстродействии некоторых функций библиотеки, сравнение быстродействия функций библиотеки со встроенными функциями и командами FoxPro.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34107793
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не качается... :-(
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34107875
Игорь2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Redrik
ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip
там стояла маленькая точка, может быть поэтому не качалось, ссылка работает.
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34108123
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кхм... Уж точно - не комплимент... :-(

У меня хватило соображения насчет "маленькой точки"... :-)

Не качает... :-(

А файл большой? В почту можно кинуть? Например, в 'stalker1968@list.ru'...
...
Рейтинг: 0 / 0
[Объявление] Библиотека пользовательских функции FoxPro на C
    #34108714
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Redrik :
А вполне возможно это ограничения по локалке - от админа. На размер или иногда на расширение файла. У меня та же история.
Зайди на ftp://ftp-developpez.com/nikiforov/udfs/ - увидишь список файлов и их размер. Кажется у этого около 580 к.

2Игорь2004:
(Как предположение и пожелание:)
Может быть, если бы архив лежал несколькими меньшими "частями", это упростило бы дело. Например английский файл (153 к) у меня всё-таки скачался.


А вообще, по-моему, всегда можно только приветствовать любые разработки кем-то в приложении к фоксу. И человек, создающий что-то новое, заслуживает только уважения. Особенно, если после тестирования окажется, что это вещь, работающая безупречно и на порядки быстрее стандартных функций. А использование-неиспользование - всегда личное дело каждого.
...
Рейтинг: 0 / 0
25 сообщений из 116, страница 2 из 5
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / [Объявление] Библиотека пользовательских функции FoxPro на C
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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