|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Дамы и Господа, Я хотел бы предложить вам следующие пользовательские функции FoxPro IFOR() «непосредственный» FOR цикл IWHILE() «непосредственный» WHILE цикл ICASE() «непосредственный» CASE условный переход IEXECCASE() «непосредственный» CASE условный переход, с выполнением одной или нескольких команд после условий IEXECIF() «непосредственный» IF условный переход, с выполнением одной или нескольких команд после условий EXECUTE() выполняет строку команд, разделенных символом “;”, подобно макроподстановке NPRECISION() возвращает количество знаков после десятичной точки в числовом выражении FIELDNUM() возвращает порядковый номер поля в таблице по имени поля DANSLISTE() определяет находится ли число в списке значений типа «1,5,13-18» INCREMENT() увеличивает переменную на 1 и возвращает результат Функции для работы с массивами ARRAYSUM() возвращает сумму числовых элементов заданного столбца массива ARRAYAVG() возвращает среднее значение числовых элементов заданного столбца массива ARRAYMIN() возвращает минимальное значение элементов заданного столбца массива ARRAYMAX() возвращает максимальное значение элементов заданного столбца массива ARRAYCNT() возвращает количество числовых элементов заданного столбца массива ASCANQUICK() аналогична встроенной функции ASCAN(), за исключением того, что осуществляет бинарный поиск по столбцу в заранее отсортированном массиве GETALLWORDS() помещает в глобальный массив все слова из строки или memo поля Функции конвертации арабских чисел в римские и наоборот ARABTOROMAN() преобразует обычное число в римское число (от 1 до 3999) ROMANTOARAB() преобразует римское число в обычное число (от I до MMMCMXCIX) Более 11 000 человек во всем мире уже загрузили мои функции для MS SQL Server, надеюсь, что и данные функции будут полезными и для Вас. Вышеупомянутые функции имеются для следующих версий FoxPro (VFP 9.0, 8.0, 7.0 и т.д., FoxPro 2.6 for DOS). Вы можете загрузить русскую версию данной библиотеки по адресу http://]ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip С наилучшими пожеланиями, Игорь Никифоров ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 10:21 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004Дамы и Господа, Я хотел бы предложить вам следующие пользовательские функции FoxPro IFOR() «непосредственный» FOR цикл IWHILE() «непосредственный» WHILE цикл ICASE() «непосредственный» CASE условный переход IEXECCASE() «непосредственный» CASE условный переход, с выполнением одной или нескольких команд после условий IEXECIF() «непосредственный» IF условный переход, с выполнением одной или нескольких команд после условий EXECUTE() выполняет строку команд, разделенных символом “;”, подобно макроподстановке NPRECISION() возвращает количество знаков после десятичной точки в числовом выражении FIELDNUM() возвращает порядковый номер поля в таблице по имени поля DANSLISTE() определяет находится ли число в списке значений типа «1,5,13-18» INCREMENT() увеличивает переменную на 1 и возвращает результат Функции для работы с массивами ARRAYSUM() возвращает сумму числовых элементов заданного столбца массива ARRAYAVG() возвращает среднее значение числовых элементов заданного столбца массива ARRAYMIN() возвращает минимальное значение элементов заданного столбца массива ARRAYMAX() возвращает максимальное значение элементов заданного столбца массива ARRAYCNT() возвращает количество числовых элементов заданного столбца массива ASCANQUICK() аналогична встроенной функции ASCAN(), за исключением того, что осуществляет бинарный поиск по столбцу в заранее отсортированном массиве GETALLWORDS() помещает в глобальный массив все слова из строки или memo поля Функции конвертации арабских чисел в римские и наоборот ARABTOROMAN() преобразует обычное число в римское число (от 1 до 3999) ROMANTOARAB() преобразует римское число в обычное число (от I до MMMCMXCIX) Более 11 000 человек во всем мире уже загрузили мои функции для MS SQL Server, надеюсь, что и данные функции будут полезными и для Вас. Вышеупомянутые функции имеются для следующих версий FoxPro (VFP 9.0, 8.0, 7.0 и т.д., FoxPro 2.6 for DOS). Вы можете загрузить русскую версию данной библиотеки по адресу http://]ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip С наилучшими пожеланиями, Игорь Никифоров По крайней мере в: автор IFOR() «непосредственный» FOR цикл IWHILE() «непосредственный» WHILE цикл ICASE() «непосредственный» CASE условный переход IEXECCASE() «непосредственный» CASE условный переход, с выполнением одной или нескольких команд после условий IEXECIF() «непосредственный» IF условный переход, с выполнением одной или нескольких команд после условий FIELDNUM() возвращает порядковый номер поля в таблице по имени поля INCREMENT() увеличивает переменную на 1 и возвращает результат не вижу необходимости. Или пусть автор подробно объяснит что такое "непосредственный" в его понимании и приведет примеры, когда его функции более эффективны, чем стандартные.... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 10:58 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Каждая функция имеет детальное описание в CHM файле с примерами, скажем IFOR () ____________________________________________________ IFOR () «непосредственный» FOR цикл Выполняет одну или несколько команд в FOR цикле, возможное полезное применение, например, в отчетах. IFOR (cExpression, nFinalValue, cExecutedExpressions [,nIncrement[, ReturnedExpression]]) Тип возвращаемого значения определяется пользователем, по умолчанию Logical .F. Параметры Первый параметр cExpression символьный тип в данной строке осуществляется объявление и присвоение начального значения переменной for цикла, например, ”i = 1”, данная строка будет выполнена аналогично выполнению макроподстановки Второй параметр nFinalValue числовой тип конечное значение переменной for цикла Третий параметр cExecutedExpressions символьный тип строка исполняемых внутри цикла команд, разделенных символом “;”, причем циклы и условные переходы не поддерживаются, каждая подстрока из строки будет выполняться подобно макроподстановке. Четвертый (необязательный) параметр nIncrement числовой тип шаг for цикла, по умолчанию 1 Пятый (необязательный) параметр ReturnedExpression символьный тип переменная или выражение, которое будет оценено подобно тому, как оценивает выражения функция EVALUATE() и результат оценки затем будет возвращен функцией IFOR, по умолчанию возвращается .f. Примеры: 1) выводит на устройство вывода квадраты первых 25 натуральных чисел и возвращает сумму ряда квадратов первых 25 натуральных чисел, создавая при этом массив, содержащий квадраты первых 25 натуральных чисел. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 11:03 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
А на кой ляд это надо ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 11:30 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
pivaА на кой ляд это надо ? Человек хочет на нас денег сделать? Пусть автор прояснит свою позицию. Если так, то мы это сообщение быстренько удалим... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 14:12 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Sergey Ch pivaА на кой ляд это надо ? Человек хочет на нас денег сделать? Пусть автор прояснит свою позицию. Если так, то мы это сообщение быстренько удалим... Да нет, отдает бесплатно... Даже с исходными кодами (за что автору - респект).... Как пишет автор, это его хобби... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 14:59 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторЧеловек хочет на нас денег сделать? Пусть автор прояснит свою позицию. Скачать архив и посмотреть его не судьба? Человек потратил время, оформил, бесплатно отдал (с С++ исходниками, плюс вариант с отдельной реализацией функций на чистом FoxPro), а ему еще по башке... Россия-матушка... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 15:05 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Aijik авторЧеловек хочет на нас денег сделать? Пусть автор прояснит свою позицию. Скачать архив и посмотреть его не судьба? Человек потратил время, оформил, бесплатно отдал (с С++ исходниками, плюс вариант с отдельной реализацией функций на чистом FoxPro), а ему еще по башке... Россия-матушка... Ключевое слово: "СКАЧАТЬ".... Т.е. приобрести (вообще-то) "кота в мешке"... Оно многим надо? Тем более, что автор изначально не показал преимуществ своей библиотеки перед существующими средствами и вариантов ее использования... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 15:16 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Так может надо было все-таки сначала "СКАЧАТЬ" и убедиться в своих предположениях, прежде чем писать их, либо вовсе не писать? Впрочем ладно, моё какое дело... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 15:21 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Aijik Скачать архив и посмотреть его не судьба? ... А зачем? Почти все уже давно есть в стандартном наборе FoxPro, а если что-то надо экзотическое, то пишется "левой ногой" и не всегда по пути, выбранном автором... Пример же приведенный в тексте форума очень похож на задание для студентов, учащихся программированию... Тем более автор не указал, что он хочет сделать со своими библиотеками... Подождем, когда в Канаде наступит рассвет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 16:05 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
автор“приведет примеры, когда его функции более эффективны, чем стандартные....”Стандартных функций, делающих то же, что и мои функции в FoxPro нет, мои функции можно написать, используя стандартные, что я и сделал. Затем показал разницу в скорости между функциями, написанными на C и на FoxPro. автор”Как пишет автор, это его хобби...”Именно так. автор”Ключевое слово: "СКАЧАТЬ"..... Оно многим надо?»Приблизительно каждый седьмой, из просмотревших сообщение скачивает, какой процент из скачавших реально использует мне неизвестно, некоторые переделывают исходный код под свои потребности. Те же шесть седьмых от общего количества просмотревших и не скачавших, просто не нуждаются в подобного рода функциях, некоторые уверены, что способны быстро написать нечто подобное. автор»Т.е. приобрести (вообще-то) "кота в мешке".»В этом то и проблема, практически все что я встречал в Интернете содержало различного рода ошибки, мои функции ошибок не содержат, по крайней мере большая часть времени ушла именно на устранение ошибок. Я, например, нашел ошибки во встроенных функциях Visual FoxPro, MS SQL Server, DB2, Sybase. Еще пример на сайте http://]http://msdn.microsoft.com/vfoxpro/default.aspx справа в разделе "Top Downloads" есть ссылка на функции, похожие на FoxPro, но вызываются из .NET http://]http://foxcentral.net/microsoft/VFPToolkitNET.htm Я нашел в них шесть ошибок, написал автору дважды, но он не ответил. автор»автор изначально не показал преимуществ своей библиотеки перед существующими средствами и вариантов ее использования...» Как раз все ровно наоборот. В файле документации все изложено подробнейшим, даже можно сказать, излишне подробнейшим образом. Может быть, не хватает примера применения некоторых функций в отчетах, но большинство людей все равно документацию не читают. автор»Человек потратил время, оформил»Большая часть времени ~ 98 процентов, уходит на отладку и оформление. автор»Тем более автор не указал, что он хочет сделать со своими библиотеками...»Предложить их широкой публике. Сейчас нужно закончить перевод описания на английский, французский, испанский и немецкий и опубликовать. автор» то пишется "левой ногой" и не всегда по пути, выбранном автором...» К сожалению, многое из того, что мне встречалось, было написано именно "левой ногой". Но я расцениваю данную Вашу фразу как «быстро пишется», то есть, положим, минут за 15, если есть желание Вы можете быстро написать, скажем, функцию GETALLWORDS() которая помещает в глобальный массив все слова из строки или memo поля, я же попробую затем детально показать в чем будет отличие между написанным Вами и мной. И Вам станет понятно, что предлагать вещи, написанные «левой ногой» широкой публике, означает просто красть ее время, но некоторые так и делают. Вот, к примеру, ошибка найденная мной во встроенной функции ASORT() Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
[пример того как "последний 1% кода занимает 90% времени".], взято отсюда http://]http://russian.joelonsoftware.com/Articles/Craftsmanship.html, написано замечательным программистом Джоелем Спольски (Joel Spolsky) Кстати, рекомендую всем творчество Джоеля Спольски, на мой взгляд, весьма увлекательное и поучительное чтение. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 20:21 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
По поводу последнего примера. ASORT() тут вообще не при чем. Вы слишком много кода написали, который только затуманивает как сам смысл, так и проблему. Все проверяется более элементарно. Код: plaintext 1. 2. 3. 4. 5.
Весь вопрос в том, чем именно дополняется более короткое выражение до длины более длинного: Chr(32) или Chr(0). Судя по результату, происходит дополнение именно пробелом. Chr(32). Так что, все логично. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2006, 23:21 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to ВладимирМ Выражу свои мысли более подробно. Итак, в упорядоченном массиве каждый предыдущий элемент должен быть не больше последующего элемента, причем сравнение должно проводиться по тем же правилам, что действовали в момент упорядочения массива. Установка Set Exact влияет на правила сравнения символьных выражений, совершенно неважно, какие именно правила сравнения действуют, вышеприведенный принцип должен соблюдаться, иначе либо имеется ошибка функции сортировки, либо имеется ошибка в сравнении символьных выражений. Приведенный мною пример, не претендующий на элегантность, это наглядно демонстрирует. Я полагаю, что ошибка имеется в работе функции сортировке массива, в случае, когда Set Exact, упорядочиваемый столбец состоит из символьных выражений, среди которых имеется пустая строка и символьные выражения, начинающиеся с символов ASCII код которых меньше 32. авторПо поводу последнего примера. ASORT() тут вообще не при чем. Вы слишком много кода написали, который только затуманивает как сам смысл, так и проблему. Все ровно наоборот. авторВесь вопрос в том, чем именно дополняется более короткое выражение до длины более длинного: Chr(32) или Chr(0). Судя по результату, происходит дополнение именно пробелом. Chr(32).Ваши рассуждения относятся к правилам сравнения, которые можно не рассматривать, важно соблюдение сформулированного выше принципа. авторВсе проверяется более элементарно. Что именно Вы проверили более элементарно, правила сравнения, но об них я как раз речь не вел. авторТак что, все логично. Что именно представляется Вам логичным, я, к сожалению, не понял. Вот еще одна ошибка функции 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
символы именно в нижний регистр, причем в упорядоченном массиве буквы в верхнем регистре могут быть и до, и после букв в нижнем регистре Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
В реальной практике все эти ошибки никогда не встретятся, но разработчики продукта в любом случае предпочли бы не иметь подобного рода ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2006, 07:01 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004 Я, например, нашел ошибки во встроенных функциях Visual FoxPro, MS SQL Server, DB2, Sybase. Еще пример на сайте http://]http://msdn.microsoft.com/vfoxpro/default.aspx справа в разделе "Top Downloads" есть ссылка на функции, похожие на FoxPro, но вызываются из .NET http://]http://foxcentral.net/microsoft/VFPToolkitNET.htm Я нашел в них шесть ошибок, написал автору дважды, но он не ответил. Думаю, что не открою Вам секрета - этими функциями почти никто не пользуются. Все предпочитают использовать native .NET functions, набор которых был расширен в .NET 2.0... Просто ребята на тогда еще новой волне создали эти функции, чтобы показать легкость перехода с FoxPro, но как оказалось .NET еще очень далеко до первого. Но .NET приближается к FoxPro - во второй версии уже ввели даже понятие таблица и добавили объект для управления (CurrencyManager) Так что к версии 5 он уже догонит FoxPro в нынешнем состоянии, если его не будут развивать ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2006, 09:32 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
To Sergey Ch В России наступил день, надеюсь, что сегодня еще пару ковшиков помоев плеснут на мое творчество. авторДумаю, что не открою Вам секрета - этими функциями почти никто не пользуются. Откуда у Вас эти сведения ? На сайте Microsoft ссылка находится в разделе "Top Downloads", много рекламы в журналах, люди которые оставляют, вынужденно, FoxPro и переходят на .NET наверняка стараются использовать что-то уже знакомое. Значит, значительная часть Fox разработчиков, по крайней мере знакома с данными функциями. авторПросто ребята на новой волне создали эти функцииАвтор у этих функций один, американец, индус по происхождению, еще один человек делал документацию. Вот какие ошибки я в них нашел, публикуется впервые :-) , автор на мое письмо, посланное дважды не ответил, не сказал «Спасибо» и не исправил ошибки. __________________________________________________________________ Let's consider Public Class strings of Namespace VFPToolkit (file VFPToolkitNET_VBNET_Source.zip) Код: 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. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2006, 10:17 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Теперь понял. Просто очень тяжело прорываться через Ваше нагромождение кода. Смысл в следующем Код: plaintext 1. 2. 3. 4. 5. 6.
По логике вещей, первый элемент массива после сортировки должен быть меньше, чем второй. На практике же, сравнение дает обратный результат. Первый элемент оказывается больше чем второй. Это значит, что алгоритм сравнения элементов при сортировке массива отличается от алгоритма сравнения элементов "в лоб". По всей видимости, в данном случае при сортировке массива короткая строка дополняется символами Chr(0). Результат будет такой же, как и при сортировке полей типа VarChar Код: plaintext 1. 2. 3. 4. 5.
Между прочим, в описанни к SET EXACT в версии VFP9 об это говорится. Т.е. что более короткое выражение дополняется до более длинного либо пробелом, либо Chr(0). Однако не говорится, в каких случаях что именно используется. Тут я могу сказать только то, что НИКОГДА не следует сравнивать символы разной длины. Последствия не всегда предсказуемые. И не из-за ошибок в работе функций, а из-за разного понимания того, что именно надо сравнивать. По каким правилам. Хотите получить корректное сравнение - сами озаботьтесь дополнением символов до нужной длины. В данном случае: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Насчет спец.символов. Что означает "не чуствительные к регистру"? Вероятно, речь идет о том, что при сравнении символы должны быть переведены в один регистр. Либо в верхний, либо в нижний. Какой регистр был выбран при сортировке массива? Проверяем Код: plaintext 1. 2. 3.
Т.е. явно видно, что работает upper(), а не lower(). Вопрос опять в том, что понимать под термином "не чувствительный к регистру". Видимо, каждый понимает под этим что-то свое. Ну и устраните эту неоднозначность. САМИ приведите символы к одному регистру. Насчет вывода о том, что упорядочивание идет именно по нижнему регистру - опять мимо. Вы слишком прямолинейно анализируете результат. Надо "повертеть" его с разных сторон. Например, вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Упорядочивание идет именно по ВЕРХНЕМУ регистру. Насчет "кто первый, кто второй" - это вообще элементарно: имеем 2 ОДИНАКОВЫХ значения. Какое из них поставить первым, а какое вторым? Очевидно - без разницы. Какое первое попадется. Проверяем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Т.е. порядок следования символом при нечуствительности к регистру зависит от того, как они были расположены в исходном массиве. А, скорее всего, вообще случайно. Они же имеют ОДИНАКОВОЕ значение. Какая разница как их располагать? PS: Вы серьезно думаете, что у всех пользователей есть такие мониторы, чтобы отобразить на экране сразу 125 строк (156-32+1)? Тестовые примеры надо писать так, чтобы с их помощью реально можно было провести тестирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2006, 11:57 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004 авторДумаю, что не открою Вам секрета - этими функциями почти никто не пользуются. Откуда у Вас эти сведения ? На сайте Microsoft ссылка находится в разделе "Top Downloads", много рекламы в журналах, люди которые оставляют, вынужденно, FoxPro и переходят на .NET наверняка стараются использовать что-то уже знакомое.Сведения подчерпнуты из общения с разработчиками, которых "вынудили перейти на .NET" (хотя часть из них снова вернулась на FoxPro). На сайте Microsoft много чего находится в разделе "Top Downloads" P.S. Насчет "пару ковшиков помоев" это Вы зря - здесь все свои люди и если кто-то выскажет что-то критическое, то я бы был за это благодарен - не много сегодня есть любителей ворошить чей-то мягко говоря код... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2006, 12:11 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Прежде всего, прощу прошения за свою ошибку. Следующий тест показывает, что функция Asort() преобразовывает при сравнении во время сортировки нечувствительной к регистру символы именно в ВЕРХНИЙ (а не нижний как я написал ранее) регистр, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Посмотрите на символы с кодами 90, 91, 97 Код: plaintext 1. 2.
но любая латинская строчная буква больше данного символа. Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: plaintext 1.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
при нормальной сортировке латинские строчные буквы оказались бы после символа "[", значит при сравнении во время сортировки символ вначале преобразовывался в верхний регистр, а затем сравнивался. Таким образом, у функции ASORT мною найден только один баг. to ВладимирМ авторЭто значит, что алгоритм сравнения элементов при сортировке массива отличается от алгоритма сравнения элементов "в лоб" дальше опять следуют рассуждения о правилах сравнения. Вот это я и нашел, и считаю это ошибкой функции ASORT, правила (если хотите алгоритмы) сравнения должны быть едины, при сравнении и при сортировке. авторНИКОГДА не следует сравнивать символы разной длины. Последствия не всегда предсказуемые. И не из-за ошибок в работе функций, а из-за разного понимания того, что именно надо сравнивать. По каким правилам.Это утверждение конгениально, если правила сравнения определены, а они в FoxPro вполне определены, (Вы много раз тут к ним возвращались, хотя про сами правила я речь не вел), то почему же символьные выражения разной длины нельзя сравнивать? Никакой непредсказуемости результатов нет, есть ошибка в работе функции ASORT. Если разработчики устранят эту ошибку, то вообще все будет нормально и логично. авторЧто означает "не чувствительные к регистру"?При сравнении прописные и строчные буква считаются равными. авторОни же имеют ОДИНАКОВОЕ значение. Какая разница как их располагать Об этом я и написал выше. авторcreate Cursor test (f1 I, f2 C(1), up_f1 I, up_f2 C(1), lw_f1 I, lw_f2 C(1)) и так далее..Вы сами же индексируете по upper(chr(pnI)) , и на основе это делаете некий вывод, а если бы Вы решили проиндексировать по Str(Mod(Sin(f1),10),4,2), то и вывод был бы другой? авторВы слишком прямолинейно анализируете результат Я рассматриваю результат работы функции ASORT при сортировке нечувствительной к регистру, а не порядок следования в проиндексированном мной же курсоре. автор чтобы отобразить на экране сразу 125 строк команда Display выводит результаты порциями, to Sergey Ch авторесли кто-то выскажет что-то критическое Мало замечаний по делу, хорошо конечно, что я нашел свою ошибку в описании бага функции ASORT, и выяснил что нужно более детально описать ошибку функции ASORT в документации. авторкто-то выскажет что-то критическое За дельные замечания и помощь я всегда благодарен, благодарность выражается в частности, в упоминании имен людей мне помогавших на моих страницах. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2006, 04:24 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Это может в хозяйстве пригодится.Однако странное явление произошло в командном окне.VFP9SP2. См приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2006, 11:15 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Aptex если Вы пошевелите окно мышью, то заголовок станет нормальным, видимо, такова работа функции LCK _WSetTitle() с командным окном, если же Вы конкретно укажете, окно с каким заголовком должно иметь новый заголовок, как например Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2006, 19:15 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004, ты на правильном пути. VFP + C++ - сила. Только ты чуть- чуть спутал место , где "тренируются на кошках". Пока пишешь полную ****. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2006, 00:23 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to MSDN Мы с Вами на ты, к сожалению не могу Вас вспомнить ? авторПока пишешь полную ****. Просьба ко всем любителям вести дискуссии на уровне автора предыдущего сообщения, воздержаться от реплик, если кому то невмоготу, то он может зайти в уединенное место и там вдоволь накричаться, или, лучше лупить себя по затылку, а затем заняться чисткой сараев, своим прямым делом. Если Вы профессионал, то логично публиковать свои сообщения под своим именем, если Вы считаете мой код неоптимальным и/или неэлегантным, то крайне желательно указать свой более оптимальный и/или элегантный код, дабы авторитетно подкрепить свое мнение. С удовольствием посмотрю на лучшие, нежели мои, решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2006, 00:57 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004, хорошо. ТЫ замените на ВЫ, смысл не изменится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2006, 03:15 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
На счет кода - это полный "АХТУНГ". Уж простите :)) А исходники на С++ можно посмотреть ? Код в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2006, 03:18 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторНа счет кода - это полный "АХТУНГ". Уж простите :)) Что именно Вам представляется плохим ? Это не блузка и не цвет автомобиля, про которые можно просто говорить "не нравиться ", желательно указать детали, из них станет ясно, способны ли Вы предложить лучший код, либо нет, как я понял из следующей фразы кода Вы не видели. авторА исходники на С++ можно посмотреть ? Код в студию. Эта ссылка была приведена в самом начале, там есть исходники, значит любой желающий может посмотреть, изменить и т.д. ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip Зачем здесь заниматься графоманством, и спрашивать то, что было ясно из предыдущих сообщений ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2006, 04:39 |
|
|
start [/forum/topic.php?fid=41&msg=34083662&tid=1583430]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 422ms |
0 / 0 |