|
[Объявление] Библиотека пользовательских функции 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 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь, мы же не в суде. Зачем придираться к отдельным фразам? Я ведь тоже могу в Вашем стиле надергать цитат, а потом удивлятся, что за ерунду Вы тут понаписали. Попробую еще раз. Итак: ASORT() и прямое сравнение символьных строк дает разный результат. Вы сделали вывод, что неправильным (ошибочным) является именно ASORT(). Почему собственно? У Вас ведь всего 2 варианта результата. Какие есть основания считать, что ошибочен один и правилен другой? Поэтому я решил поискать еще один (третий) вариант сравнения. Это индекс. Поскольку FoxPro в принципе не поддерживает значение индексных ключей переменной длины, то, логично предположить, что индексы будут строится как некий аналог SET EXACT ON. Т.е. обязательно дополнит более короткое выражение до длины более длинного. Результат работы индекса совпал с результатом работы ASORT(). Т.е. имеет 3 технологии сравнения, при этом 2 из них дают одинаковый результат. Далее, включаем "здравый смысл" и пытаемся понять ПОЧЕМУ? Т.е. понять логику сравнения в том или ином случае. Итак, идет сравнение "пустой строки" и "НЕ пустой строки". Прямое сравнение символьных строк дает пародоксальный результат: пустое значение больше не пустого. Полный бред! Не может такого быть! Однако если посмотреть "с другой стороны", то мы сравниваем "пустую строку" и "не печатный символ". Другими словами, пытаемся сравнить бинарные коды по правилам сравнения ТЕКСТА. Для текста "пустая строка" - это строка состоящая из пробелов Chr(32). Для бинарного кода "пустая строка" - это строка состоящая из Chr(0) Очевидно, что ASORT() и индекс при сравнении используют бинарное сравнение, а прямое сравнение символьных строк предполагает некую предварительную визуализацию сравниваемых ТЕКСТОВ. Другими словами, Вы пытаетесь сравнивать разые "сущности". Ну, примерно как сливы с яблоками. Яблоки отичаются от слив, значит, сливы надо выбросить. Это идологически вредные плоды и должны быть "испавлены". Вот об этом я и написал. Прежде чем сравнивать символьные строки (не важно, каким способом) их надо "перевести" в одинаковые "сущности". Либо мы сравниваем ТЕКСТ (нечто видимое и печатное), либо мы сравниваем бинарный код (нечто, не обязательно видимое). Выбирая конкретную "сущность" мы выбираем и способы сравнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2006, 11:35 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Aijik[quot автор]Человек хочет на нас денег сделать? Пусть автор прояснит свою позицию. АВТОРУ БИБЛТОТЕКИ: Спасибо, все работает. А на кой ляд объяснять людям, про С++ только в инете знающим не надо. и про то, что сишнику часто непривычно и неинтересно пользовать стандартные ф-ции фокса - им говорить бесполезно. И про деньги - чушь собачья, когда человек предлагает халяву скачать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2006, 12:34 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
ORAselect, это не халява. Это просто "тренировочный полет маленького мальчика" в попытке быть оригинальным. Не для этого в фоксе сделана совмтестимость с С++. Совсем не для этого. Так мы скоро увидим Рашмора в натуре в реализации библиотеки на С++ :)) У команды .Net не "выходит каменный цветок", а тут такое... :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2006, 00:04 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
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.
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.
To MSDN авторУ команды .Net не "выходит каменный цветок", а тут такое... :))К сожалению, я не понял, потрудитесь излагать свои мысли яснее. Я сначала испугался, что Вы увидели мой ужасный код и Вам стало плохо, но нет, все обошлось. Вы снова здесь, Вы снова готовы поделиться своими дельными соображениями. У такого мастера, коим, несомненно, Вы являетесь, есть, наверняка есть, великолепные образцы кода, красивого и без ошибок, которыми Вы могли бы поделиться. Ибо кто, как не Мастер написания кода, может научить, как нужно писать код? Код Мастера в студию! А то Вы как-то остаетесь неизвестным, а вдруг это сам Уолтер Кеннамер выучил русский язык и издевается надо мной? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2006, 07:19 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004, дельными соображениями на тему того, что не нужно изобретать велосипед ? Или соображениями на тему того, что ВладимирМ Вам разжевал разницу с таким усердием, что ни на 1 лекции не увидишь ? Какие еще дельные соображения Вам нужны, если вы уперлись со своими самоалгоритмами, кои никому не нужны. О чем может быть вообще разговор ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 17:30 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
MSDNИгорь2004, дельными соображениями на тему того, что не нужно изобретать велосипед ? Или соображениями на тему того, что ВладимирМ Вам разжевал разницу с таким усердием, что ни на 1 лекции не увидишь ? Какие еще дельные соображения Вам нужны, если вы уперлись со своими самоалгоритмами, кои никому не нужны. О чем может быть вообще разговор ? :) Всем привет. 2Игорь2004 Почему Ваша публикация вдруг вызвала раздражение? Вижу 3 причины: 1) Вы нарушили сложившийся порядок - когда в основном задаются вопросы типа "Помогите!", а Вы не попросили помощи, а наоборот ее без спроса предложили. 2) Вы несколько поспешили с этим - подвел счетчик сообщений, а именно он и есть уровень профессионализма, а Вы вдруг с алгоритмами 3) Как Вы правильно заметили и это было очевидно, что реакция последовала еще до скачивания и просмотра - потому что осудить легче, чем понять. Конечно я не имею ввиду посты Владимира Максимова - они как раз были традиционно аргументированы :) 2MSDN Надеюсь, что полемика закончится извинениями с Вашей стороны. С уважением :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 18:51 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Равиль, надейся мой маленький друг :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 18:55 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
И оправдываю надежды :) Простите меня, что я вас так жестко пресанул. Так устроит ? Или есть еще варианты ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 18:57 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
MSDN... Простите меня, что я вас так жестко пресанул ... Вам показалось ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 19:11 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Равиль, "....кто знает Ватсон, кто знает". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 19:22 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
MSDNРавиль, "....кто знает Ватсон, кто знает". ... разьве что Админ ... который прикроет нашу переписку ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 19:27 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Как на каком-то форуме SQL.RU было замечено: > Лучше тебя потом простят чем сейчас не заметят. Вот Вы со своим товарищем, которого оправдываешь, именно так и поступаете :)) Джалабь ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2006, 23:11 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Равиль Спасибо на добром слове, реакция нормальная, то есть такая, какая мной и ожидалась,кстати на англоговорящем форуме была однажды такая же реакция. Чем ценен русскоговорящий форум, там обольют помоями, но в них что-то можно найти полезное, мне это как раз и нужно. Нужен критический взгляд, но конечно ценна конкретная аргументированная критика. автора Вы не попросили помощи, а наоборот ее без спроса предложили. Надеюсь, что действительно кому нибудь поможет, на англоговорящем форуме, когда была резко отрицательная реакция со стороны «профессионалов», я спросил, есть ли те, кому мои функции помогли, и попросил их ответить, одни человек написал, что ему мои функции помогли сэкономить время, и поддержал простую идею о том, что не нужно – не скачивай. Поэтому все просто – кому нужно, тот скачивает, кому не нужно, не скачивает, есть выбор. Из тех, кто скачал, кому нужно - использует, кому не нужно - не использует. авторВы несколько поспешили с этим - подвел счетчик сообщений, а именно он и есть уровень профессионализма Это шутка, конечно, уровень профессионализма, наверное, скорее код, который человек пишет, насколько он понятен, насколько он задокументирован. to MSDN Я снова был обеспокоен, не случилось ли с Вами чего-нибудь плохого, нет, вижу все в порядке. Насколько я понял, Вы обеспокоены тем, что та небольшая часть программистов, автор«если вы уперлись со своими самоалгоритмами, кои никому не нужны.» , пострадает от использования моих функций. Я могу опубликовать Ваш авторитетный отзыв в описании моих функций, в разделе отзывы, но желательно, чтобы было упомянуто Ваше имя, адрес электронной почты, сайт, ссылка на Ваши публикации. Согласитесь, если я в раздел отзывы и мнения вставлю следующее : «Эти функции полная дрянь, абыр, абыр» и подпись MSDN, то это будет выглядеть смешно. гораздно солиднее, к примеру, «На счет кода - это полный "АХТУНГ". Это просто "тренировочный полет маленького мальчика" в попытке быть оригинальным.» Шариков П.П. sharikov@balalayka.ru, http://]www.bomg.ru MVP по удавливанию кошек Публикации «Я их давил, давил, давил, давил» «Светит месяц, свети ясный» «Да не согласен я» Берегите себя, но желательно все таки раскрыть свое инкогнито, привести примеры своего кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 00:42 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Равильразьве что Админ ... который прикроет нашу переписку Модератор: Пока вроде не за что закрывать... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 09:23 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Да пойду скачаю. Есть функции которые необходимы. Кто нибудь побовал case в case-е ? DANSLISTE() определяет находится ли число в списке значений типа «1,5,13-18» тоже неплох. Набросились на человека. Лишь бы поругать. To Игорь2004. Те кто сможет похвалить прийдут позже т.к. они сначала поработают с библиотекой. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 14:26 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
To Игорь2004 Закинь ссылку туда ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 14:53 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
To Admin авторМодератор: Пока вроде не за что закрывать... Допускается ли употребление неприличных выражений , абсолютно не относящихся к предмету спора, ведь внутренние самоограничения у ряда посетителей форума не работают. Слово “джелаб” в ряде языков тюркской языковой группы означает «продажную женщину», то есть, попросту, в русском языке есть аналогичное слово на букву б. Я уверен, что каждый из посетителей и участников знает нецензурные выражения, но большинство воздерживается от их употребления на данном форуме. Насколько целесообразно разрешать незарегистрированным участникам оставлять свои сообщения ? to ГенГрум функция icase() встроена в 9 версию, в более ранних версия ее нет, поэтому я вставил ее в библиотеку, естественно, можно вкладывать одну функцию icase() в другую icase(), просто выражение получается громоздким. авторТе кто сможет похвалить прийдут позже т.к. они сначала поработают с библиотекой. Замечательно, но таких будет меньшинство, ибо мои функции мало кому (практически никому) не нужны. to Полуюзверь так и сделаю впоследствии, и еще предложу мои функции на другие форумы по FoxPro, пусть мои функции будут никому не нужны еще и на других форумах. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 16:58 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004 Слово “джелаб” в ряде языков тюркской языковой группы означает «продажную женщину», то есть, попросту, в русском языке есть аналогичное слово на букву б. Модератор: Языками форума являются русский и английский. Я не знаю других языков, так что оценить нанесенный Вам моральный вред не могу. Если Вы желаете, то могу просто закрыть данный топик... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 17:39 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
MSDNКак на каком-то форуме SQL.RU было замечено: > Лучше тебя потом простят чем сейчас не заметят. Вот Вы со своим товарищем, которого оправдываешь, именно так и поступаете :)) Джалабь ;) :) Всем привет 2MSDN Наличие дружелюбных смайлов располагает к общению, но к сожалению нет времени (да и желание не велико) ps а Ваша подпись в конце сообщения - неожиданна и оригинальна ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 19:15 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Sergey Ch, нет. Это не переводится. Это транскрипт. И означает просто связку слов в в зависимости от эмоциональной окраски в Азии. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2006, 22:40 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Если Вы поработали с библиотекой, она хоть в чем-то оказалось полезной, пишите мне по адресу 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2006, 18:10 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Не качается... :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2006, 22:10 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Redrik ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip там стояла маленькая точка, может быть поэтому не качалось, ссылка работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2006, 23:40 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Кхм... Уж точно - не комплимент... :-( У меня хватило соображения насчет "маленькой точки"... :-) Не качает... :-( А файл большой? В почту можно кинуть? Например, в 'stalker1968@list.ru'... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2006, 08:57 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
2Redrik : А вполне возможно это ограничения по локалке - от админа. На размер или иногда на расширение файла. У меня та же история. Зайди на ftp://ftp-developpez.com/nikiforov/udfs/ - увидишь список файлов и их размер. Кажется у этого около 580 к. 2Игорь2004: (Как предположение и пожелание:) Может быть, если бы архив лежал несколькими меньшими "частями", это упростило бы дело. Например английский файл (153 к) у меня всё-таки скачался. А вообще, по-моему, всегда можно только приветствовать любые разработки кем-то в приложении к фоксу. И человек, создающий что-то новое, заслуживает только уважения. Особенно, если после тестирования окажется, что это вещь, работающая безупречно и на порядки быстрее стандартных функций. А использование-неиспользование - всегда личное дело каждого. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2006, 12:22 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Спасибо за отклики и предложения, здесь в Монреале, примерно за 1500 рублей в месяц (65 канадских долларов) имеешь телефон, и безлимитный DSL интернет со скоростью 5 мегабит в секунду, поэтому о реальных проблемах с интернетом, к сожалению, существующих в странах бывшего СССР, быстро забываешь. Если есть проблемы с загрузкой файла st_denis_russian.zip (его размер более 500 килобайт из-за рисунков, вcтавленных в описание и детально показывающих как собирать библиотеку в Visual Studio .Net 2005), используйте что-нибудь типа ReGet, либо можно загрузить 5 файлов меньшего размера в формате 7z ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.001 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.002 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.003 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.004 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.005 Совершенно бесплатный и отличный архиватор 7z, поддерживающий множество форматов, можно взять здесь http://www.7-zip.org/ Михаил Дроздов любезно разместил ссылку на библиотеку на своем сайте http://vfpdev.narod.ru/util_r.html#vc_utils, таким образом, библиотека St_Denis начинает свое шествие по России :-), некоторые корчатся при этом в муках, ведь функции оказываются кому то нужны :-), Saint Denis это просто название одной из больших улиц Монреаля, улица Святого Дениса, наверное, одна треть монреальских улиц носит имена святых) авторОсобенно, если после тестирования окажется, что это вещь, работающая безупречно и на порядки быстрее стандартных функций. На это у меня и ушли основные усилия, большинство из этих функций работают в реальных приложениях. Есть экзотические случаи например функция GETALLWORDS() , так же как и встроенные функции VFP GETWORDNUM( ) , GETWORDCOUNT( ) , не работает со строкам содержащими символ с кодом нуль. Зачем мне делать возможность для функции GETALLWORDS работать, со строками содержащими символ с кодом нуль, если встроенные функции такой возможности не имеют? Код: plaintext
Выполнив программу test_perf.prg вы получите представление о скорости работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2006, 18:12 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
2Crispy: У меня нет ограничений... никаких... ;-) Игорь! Большое спасибо за "мыло"! Почему-то закачка никак не хотела работать - ни менеджерами, ни из IE... P.S. Дорогой инет в Монреале... Тут у нас в странах бывшего СССР есть практически безлимитка (15 ГБ/месяц) с такой же скоростью за $25! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2006, 21:56 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Redrik пожалуйста Интернет + телефон 65 канадских $ ~ 58 USD Отдельно Интернет примерно стоит ~ 32 USD 15 ГБ/месяц и без ограничений это две большие разницы, я закачиваю в месяц больше сотни ГБ (фильмы, DVD) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2006, 22:38 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Интересно, когда закончится этот онанизм... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2006, 00:46 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
To MSDN С Вами по прежнему все в порядке, что замечательно. Но к чему Ваша последняя реплика, не перепутали ли Вы адрес сайта, может быть с подобными репликами лучше сюда http://www.individualki.ru/ ? Цветет урюк под грохот дней, Дрожит зарей кишлак. А средь арыков и аллей Идет гулять MSDN. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2006, 02:13 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Добавлена новая функция: GETNUMWORD() Возвращает порядковый номер заданного слова в строке, memo поле , либо возвращает ноль, если слово в строке не найдено. В некотором смысле данная функция является обратной встроенной функции FoxPro GETWORDNUM(). Может быть использована для определения того, имеется данное слово в строке либо нет. Оператор $ определяет вхождение подстроки в строку и не может быть использован для проверки вхождения слова в строку. Может быть также использована для определения того, встречается данное слово в строке более одного или нескольких раз. GETNUMWORD(cString, cWord[, cDelimiters] [, nOccurrence] [, nFlags]) Тип возвращаемого значения числовой Параметры cString - строка, в которой будет разыскиваться слово. cWord - слово, которое будет разыскиваться в строке cString и номер которого нужно определить. cDelimiters - символьный тип, наибольшая длина 256 символов, определяет те символы, которые будут служить разделителями слов в строке cString. Разделителями по умолчанию являются пробелы, символы табуляции, возврата каретки и перевода строки. GETNUMWORD() считает каждый символ из строки cDelimiters как отдельный разделитель, а не всю строку cDelimiters как единый разделитель. nOccurrence - необязательный числовой параметр, определяет какое именно вхождение слова в строку нужно искать, по умолчанию разыскивается первое вхождение слова в строку. nFlags - необязательный параметр, определяет критерии поиска в соответствии со следующими значениями 0 Поиск чувствителен к регистру 1 Поиск нечувствителен к регистру Примечания: Передайте –1 для необязательных параметров, если, скажем, нужно всего лишь передать параметр nFlags, не указывая явно предыдущие необязательные параметры. Функция GETNUMWORD() по умолчанию считает, что слова разделены пробелами, символами табуляции, возврата каретки и перевода строки. Если передан параметр cDelimiters, функция игнорирует пробелы, символы табуляции, возврата каретки и перевода строки. Примеры: Код: 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.
Вы можете загрузить русскую версию данной библиотеки по адресу ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip размер ~600 килобайт Либо по частям ~120 килобайт каждая часть ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.001 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.002 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.003 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.004 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.005 В файл архива входят : 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. 8) mkeywords.prg построение таблицы ключевых слов из memo поля. Никифоров Игорь ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2007, 21:09 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004...здесь в Монреале, примерно за 1500 рублей в месяц (65 канадских долларов) имеешь телефон, и безлимитный DSL интернет со скоростью 5 мегабит в секунду, поэтому о реальных проблемах с интернетом, к сожалению, существующих в странах бывшего СССР, быстро забываешь. Да, тот кто был Канарах, то знает, что такое "хорошая погода". Оч поддерживаю вашу идею и вополщение циклов, операторов ветления и прочего подобного, в виде функций на "С". Я так думаю, что г-да Кёрниган, Ричи, Никлаус Вирт (прости господи) сущие ламеры в области парадигм программирования. Брант, Фаулер, ... давлюсь от смеха... Всем понятно, куда как проще сделать функцию цикл, функцию присвания,... да что я говорю, Вы и так всё знеете. Зачем вообще нужны языки программирования, если достаточно написать функцию, которая принимает последовательность операторов разделённых точкой с запятой и выполняет их?! Кстати, а давайте такую библиотеку зафигачим под Яву! А что? Быстрее же будет работать, чем родные конструкции! Надеюсь и жду, что в ближайшее время Hello Word на этой самой Яве будет выглядеть так: EXECUTE("public class Main {;public static void main(String[] args) {;System.out.println("Хаюшки!");};}) Да и вообще, мало ли языков итерпретирующего типа, нам есть где развернуться! Слушайте, а возьмите меня маркетологом? А? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2007, 22:22 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
To foxovik Если Вы прочитаете описание, то увидите следующие фразы IFOR() «непосредственный» FOR цикл IWHILE() «непосредственный» WHILE цикл ICASE() «непосредственный» CASE условный переход IEXECCASE() «непосредственный» CASE условный переход, с выполнением одной или нескольких команд после условий IEXECIF() «непосредственный» IF условный переход, с выполнением одной или нескольких команд после условий EXECUTE() выполняет строку команд, разделенных символом “;”, подобно макроподстановке Вышеприведенные функции можно реализовать с использованием встроенной функции EXECSCRIPT(). (Плюс пример для каждой функции с использованием EXECSCRIPT() Вышеупомянутые функции имеются для следующих версий FoxPro (VFP 9.0, 8.0, 7.0 и т.д., FoxPro 2.6 for DOS) ... возможное полезное применение, например, в отчетах. Для FoxPro 2.6 for DOS, который еще применяется, можно использовать мои фунции, для Windows можно обойтись EXECSCRIPT() Есть исходный текст библиотеки, ненужное можно убрать свое добавить и пересобрать. Но Вы, безусловно, можете предложить свои решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 00:50 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорю2004: В свете решений партии и правительства Microsoft относительно генеральной линии продвижения к NET - достаточно полезная библиотека и особенно исходники к ней! А те кто ёрничает по поводу полезности Ваших разработок, ну чтож таков их удел. Я помню как один разработчик создал библиотеку битовых функциий для 5-й версии, так сколько насмешек было от "корифеев". А сейчас они включены в состав стандартных функций. Зачем сейчас по этому поводу бисер метать? Есть достаточно много функций в любом языке, которые для одних мусор, а для других незаменимый инструмент. И вообще, симбиоз из языков высокого и низкого уровней создает мощнейшую платформу для реализации любой задачи. Сам Фокс был написан на Watcom С (на то время наилучший компилятор), не надо об этом забывать, а лучше это использовать. А по поводу переписки с программистом из Индии. Замечательные парни - пишут очень быстро и весело, но ошибок уйма. Исправление своих ошибок, для них, уже другая работа. Пинать его надо почаще - не обидится! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 12:58 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to asp_mail авторА по поводу переписки с программистом из Индии. Замечательные парни - пишут очень быстро и весело, но ошибок уйма. Исправление своих ошибок, для них, уже другая работа. Пинать его надо почаще - не обидится! Он, американец, индус по происхождению. http://www.kamalpatel.net/Default.htm Речь не идет о тривиальных ошибках, некоторые ошибки очень трудно обнаружить, речь шла о том, что написать без ошибок очень сложно, и о психологии индусов - в ответ молчание, и нежелание исправлять свои ошибки. Когда Вы что-то публикуете, то Вы в некотором роде ставите на кон свою профессиональную репутацию. Вот в моих функциях Вы не найдете ошибок, и знаете почему. Потому что их там нет. Pulp fiction- Когда ты подъзжал к дому, ты видел у меня вывеску "склад мертвых негров"? - Ты же знаешь... - Ты видел у меня вывеску "склад мертвых негров"? - Нет. - А знаешь, почему ты ее не видел? - Почему? - Потому-что ее там нет.Cами ссылки здесь на его функции здесь http://msdn2.microsoft.com/en-us/vfoxpro/default.aspx http://foxcentral.net/microsoft/vfptoolkitnet.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 16:48 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004Вот в моих функциях Вы не найдете ошибок, и знаете почему. Потому что их там нет. Я бы сказал, потому, что все возможные не стыковки считаются не ошибками, а особенностями реализации. Не "бага", а "фича"! 1. Начальник всегда прав! 2. Если начальник не прав, смотри п.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 17:10 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to ВладимирМ если все работает в соответствии с описанием, то багов нет ?getwordcount("a b c"+CHR(13)+"d") && Displays 3 this is error, must be 4 ** The default delimiters are space, tab, carriage return, and line feed. ** это баг , работает не в соответствии с описанием ** my function ?getnumword("a b c"+CHR(13)+"d","d") && Displays 4 getnumword, а также getallwords, getallwords2, getwordcount, getwordnum не работает со строкой содержащей символ chr(0), но об этом я упоминаю в описании ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 17:31 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Есть два небольших пожелания: 1. Раз уж взялись оптимизировать функции с выделением слов из текста, то неплохо бы иметь еще одну специфическую, которую когда-то сам делал - но без использования Си . Она выдает массив слов и частоту их повторения в тексте. Минмальная длина слова (по умолчанию 2 символа, но может и задваться). Данный массив может сортироваться по частоте и по длине слов. Отдельный параметр означает режимы разбора: простой текст; HTML код(+ Параметр языка: кодировка страницы) Для чего это нужно? Например: быстрый набор словаря для синтаксического анализатора, который "питается" текстами из интернет-контента. Дальнейшая область применения данной информации - достаточно разнообразная ;-), но здесь важна и скорость. 2. Пример GETALLWORDS(), чтобы не выглядел так громоздко предлагаю заменить строку формирования переменной lcString на TEXT.. Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 19:40 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to asp_fox Спасибо за предложения. 2) я так и сделаю, заменю свой пример 1) в файле mkeywords.prg есть пример построения таблицы из слов, содержащихся в заданном memo поле заданное таблицы. На мой взгляд гораздно проще собрать все слова в таблицу и делать с ней что угодно, определять частоту появления слов и т.д. нежели реализовывать это внутри функции. Select .. from ... group by .. значительно проще, не так ли ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 20:41 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь, когда кто-то, где-то, заявляет, что "у нас секса нет!", почему-то, хочется воскликнуть "Не верю!" Если настаиваете, то вот, на вскидку Какое количество элементов вернет Ваша функция GETALLWORDS() если два символа-разделителя идут подряд? Пропустит "не существующий" элемент. Хорошо, допустим, так и должно быть. Однако в Вашей документации об этой "тонкости" нет ни слова. Это баг или фича? Разработчки FoxPro поступили мудрее. В функции ALINES() Они добавили дополнительный параметр (в старших версиях - один бит флага), который собственно и определяет надо учитывать такие "не существующие" (пустые) слова или не надо. Иногда их просто необходимо учитывать. Заявлять, что программа не содержит ошибок - слишком самонадеяно, поскольку немедленно возникает желание в этом убедится Такие "жучки" ЕСТЬ в Ваших функциях. Проверено! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2007, 23:03 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to ВладимирМ авторЭто баг или фича?Это можно расценить как небольшой недостаток описания, уже впрочем исправленный, поскольку специально сделана функция GETALLWORDS(), в некотором роде похожая на встроенные функции GETWORDNUM() , GETWORDCOUNT(), и предполагалось что это подразумевается . У функции ALINES( ) несомненно больше возможностей, но она несколько сложнее в использовании, скажем, для того чтобы она не учитывала пустые слова, что нужно чаще всего, требуется установить флаг 4. авторТакие "жучки" ЕСТЬ в Ваших функциях. Проверено!Описание может также содержать орфографические и грамматические ошибки, но расценивать это как баги функций нельзя. Кстати, о фразе, в оригинале звучавшей "В СССР секса нет!"; женщина, выкрикнувшая ее в время телемоста подразумевала массовую доступность порнографии и эротики, а не отсутствие сексуальных отношение, просто фразу вывернули по другому. В то время в СССР действительно порнография и эротика широко распространены не были, просто ей нужно было выражать свою мысль так, чтобы исключить двоякие толкования, но в общем-то она была права. Итак, в библиотеке St_Denis ошибок нет! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 07:13 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторЗаявлять, что программа не содержит ошибок - слишком самонадеяно Кажись единственная цель такого заявления - провокация на бесплатный тестинг. На дурака вроде не похож. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 08:21 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004 Код: plaintext 1. 2.
А что относительно разделителей HTML? (Кстати, может Вы знаете, как использовать парсер для "чистки" текста?) А по поводу ошибок, на мой взляд, корректней писать: "Работа такой-то библиотеки(программы и т.д.) полностью соответствует ее заявленным функциональным требованиям (назначению)" - и всем будет спокойно и радостно ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 11:36 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004Кстати, о фразе, в оригинале звучавшей "В СССР секса нет!"; женщина, выкрикнувшая ее в время телемоста подразумевала массовую доступность порнографии и эротики, а не отсутствие сексуальных отношение, просто фразу вывернули по другому. В то время в СССР действительно порнография и эротика широко распространены не были, просто ей нужно было выражать свою мысль так, чтобы исключить двоякие толкования, но в общем-то она была права. Добавлю, про бедную женщину... и чтобы не повторять эти глупые фразы ;-) Женщина тогда (именно на то время) выразилась правильно. В то время существовала расхожая фраза о том, что в капстранах существует пропаганда секса и насилия. Пропаганда секса, секс - синоним пропаганда порнографии и т.п.. Просто известный коньюктурщик, который вел ту передачу перевел ее буквально для американцев и первыми засмеялись они. Вместо того чтобы затем извиниться за перевод он опозорил женщину. Есть достаточно много английских выражений,если их перевести буквально на русский, то они поставят нас в тупик и наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 11:56 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
To asp_fox авторА что относительно разделителей HTML? (Кстати, может Вы знаете, как использовать парсер для "чистки" текста?)Я не понял вопрос, речь идет о том чтобы заменить одни разделители слов другими, либо часть из них удалить, либо речь идет о том чтобы из «слов» удалять некоторые символы ? авторРабота такой-то библиотеки(программы и т.д.) полностью соответствует ее заявленным функциональным требованиям (назначению)можно сказать и так Работа библиотеки St_Denis полностью соответствует ее заявленным функциональным требованиям, либо, другими словами, в библиотеке St_Denis ошибок нет. Да, безусловно, речь никогда не шла о том, что код безупречный и примеры к функциям красивые. to Cyv авторКажись единственная цель такого заявления - провокация на бесплатный тестинг.Все уже протестировано. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 15:30 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004Я не понял вопрос, речь идет о том чтобы заменить одни разделители слов другими, либо часть из них удалить, либо речь идет о том чтобы из «слов» удалять некоторые символы Речь шла о выделении текста из обычной HTML странички. Раз не понятен вопрос, то лучше не заморачиваться с моей просьбой, спасибо. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 17:53 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
"Ну, Вы, блин, даете!" Неужели жизнь в Канаде настолько юмор отбивает? Я же смайлики поставил! Специально для тех, кто сразу "не въезжает"! Что там та женщина имела в виду, кто и как ее перевел, сейчас уже не имеет никакого значения. Эта фраза сейчас однозначно воспринимается как заявление не соответствующее действительности. Причем настолько не соответствующее, что это понимают все и сразу. Я ее привел чтобы показать насколько это нелепо звучит заменив фразу "Вот в моих функциях Вы не найдете ошибок, и знаете почему. Потому что их там нет." Заменил сознательно, поскольку считаю подобные фразы не соответсвующие действительности. На примере показав, что фраза действительно ошибочная. Проблема здесь вовсе не в том, что есть в описании, а чего нет. А в том, что понимать под "правильным" функционированием. Ведь Вы не явно делаете ряд допущений. Для Вас эти допущения совершенно очевидные. Очевидные настолько, что Вы не считаете нужным их хоть как-нибудь документировать (вспомните про ASCAN()). Поэтому, когда другой человек начинает использовать Ваши функции, но делая другие не явные допущения, то он воспринимает такую работу как ошибку. С его точки зрения Ваши функции содержат ошибки. Все последующие объяснения уже воспринимаются, как неловкие попытки оправдаться. И потом, брасаться "громкими" лозунгами в xUSSR я бы не стал. Лично у меня подобные заявляения вызывают сильную настороженность и недоверие. История, знаете ли... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 18:01 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to ВладимирМ авторНеужели жизнь в Канаде настолько юмор отбивает?Усиливает многократно, иногда просто помираешь со смеху. Общепринятый смысл данной фразы мне безусловно известен, я просто привел предысторию. Но употребление данной фразы не свидетельствеут о наличии в моих функция ошибок. авторВедь Вы не явно делаете ряд допущений. Для Вас эти допущения совершенно очевидные. Всегда делаются некоторые разумные допущения, не описываемые явным образом, например, мои функции не работают со строками в формате Unicode, некоторые функции работающие с числовыми параметрами, не смогут распознать число в шестнадцатеричном формате, разве нужно об этом упоминать в описании. Но ведь кто-то может подумать что функции должны распознавать Unicode и т.д. и т.п., не так ли. Безусловно все дельные советы будут с благодарностью приняты, но по прежнему: -Did you see a sign out in front of my house that said Dead Nigger Storage? -No. I didn't. -You know WHY you didn't see that sign? - Why? - 'Cause it ain't there, 'cause storing dead niggers ain't my fucking business, that's why! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2007, 06:17 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторвсе дельные советы будут с благодарностью приняты Какие советы, если всё отлажено и ошибок нет? Следуя советам начнёшь что-нибудь "улучшать" (нет пределу совершенствования) глядишь и ошибки новые появяться, или мирно спящие сейчас получат возможность повылазить, гады. Будет конфуз... А ты молодец. Так долбить из поста в пост одно и тоже. Несмотря на любые контрдоводы. Это как предвыборная агитация. Я уже потихоньку начинаю верить. Если бы сегодня мне предложили купить две программы, я бы наверное купил - коню понятно - твою, "в которой ошибок нет". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2007, 08:44 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Cyv Любое изменение самой библиотеки, но не описания и примеров, влечет за собой длительное тестирование, поэтому я ничего менять в текстах не собираюсь, поскольку нет времени. Если больше 20000 тысяч человек скачало (речь идет о других функциях, данные функции скачало пока больше 400 для английской версии) и ни у одного не было проблем из-за ошибок в функциях, это свидетельствует об отсутстии ошибок, если в процессе тестирования были найдены ошибки во встроенных функциях, это свидетельствует о качестве тестирования, а не какие-то авторконтрдоводы. Программы которые продаются являются значительно более сложными системами, пишутся коллективом разработчиков и не могут не содержать ошибок, например само FoxPro. Поэтому заниматься безответственной болтовней я бы не стал. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2007, 15:27 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
игорь, нижайше прошу прощения, но последний пост выглядит каким-то незавершенным ... наверна патамучта ты забыл закончить его словами - Итак, в библиотеке St_Denis ошибок нет! думаю нада эта в подписи засунуть ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2007, 15:48 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
АКСИОМА В любой программе есть ошибки. ЗАКОН ПPОПОPЦИОНАЛЬНОСТИ Чем более программа необходима, тем больше в ней ошибок. СЛЕДСТВИЕ Ошибок не содержит лишь совершенно ненужная пpогpамма . ФУНДАМЕНТАЛЬНЫЙ ЗАКОН ТЕОPИИ ОШИБОК На ошибках учатся. и.т.д. (http://www.rabota.su/extra/humour/index.php?id=158) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2007, 16:18 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Библиотека St_Denis обновлена, появилась версия для FoxPro 2.6 for Windows. ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip Таким образом, теперь есть версии библиотеки St_Denis для любого FoxPro (кроме 2.0 и более ранних версий, вряд ли кто-нибудь их сейчас использует). В общем, есть все кроме ошибок. BTW Я задавал это вопрос на форуме по , никто не ответил, поэтому повторю его здесь вдруг у кого-нибудь завалялось. Где можно скачать компилятор Microsoft's C/C++ 7.0 (1992 года), это была первая версия с MFC . http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library MFC was introduced in 1992 with Microsoft's C/C++ 7.0 compiler for use with 16-bit versions of Windows. C++ was just beginning to replace C for development of commercial application software and C/C++ 7.0 was the first of Microsoft's compilers to add C++ support. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2007, 05:12 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
есть такой: может он? Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2007, 17:02 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Александр Овчинников Спасибо, это в точности последующая, той которая мне нужна, версия. Я ищу Microsoft C/C++ 7.0 (это еще не Visual C++ ), я хочу ее попробовать для компиляции библиотек для FoxPro 2.6 for DOS. Versions Product version MFC version Microsoft C/C++ 7.0 MFC 1.0 Visual C++ 1.0 MFC 2.0 Visual C++ 1.5 MFC 2.5 Visual C++ 2.0 MFC 3.0 Visual C++ 2.1 MFC 3.1 Visual C++ 2.2 MFC 3.2 Visual C++ 4.0 MFC 4.0 (mfc40.dll included with Windows 95) Visual C++ 4.1 MFC 4.1 Visual C++ 4.2 MFC 4.2 (mfc42.dll included with Windows 98-First Edition) Pocket PC Embedded 3.0 MFC 4.2 (mfc42.dll) Visual C++ 5.0 MFC 4.21 (mfc42.dll) Visual C++ 6.0 MFC 6.0 (mfc42.dll) Pocket PC Embedded 4.0 Visual C++ .NET 2002 MFC 7.0 (mfc70.dll) Visual C++ .NET 2003 MFC 7.1 (mfc71.dll) Visual C++ 2005 MFC 8.0 (mfc80.dll) Visual C++ 2005 Express None Visual C++ 2008 MFC 9.0 (mfc90.dll) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2007, 17:23 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
У меня есть минимальный пакет WATCOM C 11 (в архиве ~5 мег), которым я делал сборку plb для fpd26. Если надо , то пиши. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2007, 10:37 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Al_fa У меня тоже есть watcom, его можно скачать с http://www.openwatcom.org/index.php/Main_Page, http://ftp.openwatcom.org/ftp/ старые версии находятся в архиве. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2007, 15:11 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Модератор: Давайте не будем нарушать правил форума - распространять лицензионные продукты нелегальным путем... Все ссылки после изучения будут удалены... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2007, 16:48 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Версию 1.2 библиотеки St_Denis можно загрузить по адресу ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip либо, если есть проблемы при закачке большого файла ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.001 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.002 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.003 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.004 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.005 Добавлены несколько функций для работы со словами WORDTRAN() возвращает строку символов, полученную из первой строки, в которой одно или несколько вхождений первого слова будут заменены вторым словом GETOCCURSWORD() подсчитывает количество вхождений слова в строке GETATWORD() выполняет поиск позиции, с которой n-е вхождение слова начинается в строке и возвращает номер позиции GETRATWORD() выполняет поиск позиции, с которой n-е вхождение слова начинается в строке и возвращает номер позиции, но в отличии от GETATWORD() осуществляет поиск справа Полный список функций выглядит так Функции для работы со словами GETALLWORDS() помещает в глобальный массив все слова из строки или memo поля, похожа на встроенную функцию ALINES() WORDTRAN() возвращает строку символов, полученную из первой строки, в которой одно или несколько вхождений первого слова будут заменены вторым словом GETNUMWORD() возвращает порядковый номер заданного слова в строке GETOCCURSWORD() подсчитывает количество вхождений слова в строке GETATWORD() выполняет поиск позиции, с которой n-е вхождение слова начинается в строке и возвращает номер позиции GETRATWORD() выполняет поиск позиции, с которой n-е вхождение слова начинается в строке и возвращает номер позиции, но в отличии от GETATWORD() осуществляет поиск справа Функции для работы с массивами ARRAYSUM() возвращает сумму числовых элементов заданного столбца массива ARRAYAVG() возвращает среднее значение числовых элементов заданного столбца массива ARRAYMIN() возвращает минимальное значение элементов заданного столбца массива ARRAYMAX() возвращает максимальное значение элементов заданного столбца массива ARRAYCNT() возвращает количество числовых элементов заданного столбца массива ASCANQUICK() аналогична встроенной функции ASCAN(), за исключением того, что осуществляет бинарный поиск по столбцу в заранее отсортированном массиве VITESCAN() осуществляет бинарный поиск по столбцу в отсортированном массиве Прочие функции NPRECISION() возвращает количество знаков после десятичной точки в числовом выражении FIELDNUM() возвращает порядковый номер поля в таблице по имени поля DANSLISTE() определяет находится ли число в списке значений типа «1,5,13-18» INCREMENT() увеличивает переменную на 1 и возвращает результат STRFILTER() удаляет все символы из первой строки, за исключением символов, содержащихся во второй строке REVERSE() возвращает строку в обратном порядке VST_DENIS() версия библиотеки IFOR() «непосредственный» FOR цикл IWHILE() «непосредственный» WHILE цикл ICASE() «непосредственный» CASE условный переход IEXECCASE() «непосредственный» CASE условный переход, с выполнением одной или нескольких команд после условий IEXECIF() «непосредственный» IF условный переход, с выполнением одной или нескольких команд после условий EXECUTE() выполняет строку команд, разделенных символом “;”, подобно макроподстановке Вышеприведенные функции можно реализовать с использованием встроенной функции EXECSCRIPT(). Функции конвертации арабских чисел в римские и наоборот ARABTOROMAN() преобразует обычное число в римское число (от 1 до 3999) ROMANTOARAB() преобразует римское число в обычное число (от I до MMMCMXCIX) Более 25 000 человек во всем мире уже загрузили мои функции, надеюсь, что и данные функции будут полезными и для Вас. Вышеупомянутые функции имеются для следующих версий FoxPro (VFP 9.0, 8.0, 7.0 и т.д., FoxPro 2.6 for DOS и Windows). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 05:45 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Версию 2.0 библиотеки St_Denis можно загрузить по адресу ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip либо, если есть проблемы при закачке большого файла ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.001 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.002 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.003 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.004 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.005 Добавлены две суперфункции STRTRANEX() Функция, определенная пользователем, обладает очень большими возможностями по поиску и замене строк, по сравнению со встроенной функцией FoxPro STRTRAN(). STRTRANEX() возвращает строку символов, полученную из первой строки, в которой одно или несколько вхождений каждого элемента второго параметра массива строк, заменены соответствующим элементом третьего параметра массива строк. STRTRANEX (cSearched, cArExpressionSought | cExpressionSough, [cArReplacement | cReplacement][, nArStartOccurrence | nStartOccurrence] [, nArNumberOfOccurrences | nNumberOfOccurrences] [, nArFlags | nFlags], [ArReport]) Тип возвращаемого значения символьный WORDTRANEX() Функция, определенная пользователем, обладает большими возможностями по поиску и замене слов, по сравнению с функцией WORDTRAN(). WORDTRANEX() возвращает строку символов, полученную из первой строки, в которой одно или несколько вхождений каждого элемента второго параметра массива слов, заменены соответствующим элементом третьего параметра массива слов. WORDTRANEX (cSearched, cArExpressionSought | cExpressionSough, [cArReplacement | cReplacement] [, cDelimiters] [, nArStartOccurrence | nStartOccurrence] [, nArNumberOfOccurrences | nNumberOfOccurrences] [, nArFlags | nFlags], [ArReport]) Тип возвращаемого значения символьный Функции STRTRANEX() и WORDTRANEX() различаются тем, что WORDTRANEX() разыскивает слова, а не строки, и соответственно, функция WORDTRANEX() имеет дополнительный параметр строку, состоящую из разделителей слов. Параметры cSearched исходная строка, в которой функция STRTRANEX() или WORDTRANEX() будет заменять найденные строки. cArExpressionSought массив строк или cExpressionSought строка, каждая из строк будет разыскиваться, и заменяться в cSearched. Если вторым параметром является не массив, а строка cExpressionSought, то данная функция будет работать так же, как встроенная функция STRTRAN(). cArReplacement массив строк или cReplacement строка, каждая из строк служит для замены соответствующей ей строки из массива cArExpressionSought в строке cSearched. Если данный параметр не передан, каждое вхождение строки массива cArExpressionSought будет заменено пустой строкой. Если количество строк в массиве cArReplacement превышает количество строк в массиве cArExpressionSought , то лишние строки массива cArReplacement игнорируются. Если количество строк в массиве cArReplacement меньше количества строк в массиве cArExpressionSought, то лишние строки из массива cArExpressionSought будут заменяться пустой строкой. Если третьим параметром является не массив, а строка cReplacement, то каждое вхождение строки массива cArExpressionSought будет заменено строкой cReplacement. cDelimiters (только для функции WORDTRANEX) символьный тип, наибольшая длина 256 символов - необязательный параметр, определяет те символы, которые будут служить разделителями слов в строке cSearched. Разделителями по умолчанию являются пробелы, символы табуляции, возврата каретки и перевода строки. WORDTRANEX() считает каждый символ из строки cDelimiters как отдельный разделитель, а не всю строку cDelimiters как единый разделитель. nArStartOccurrence числовой массив или nStartOccurrence число, данный параметр определяет, с какого вхождения соответствующей строки массива cArExpressionSought в cSearched будет начата замена. Если количество строк в массиве nArStartOccurrence превышает количество строк в массиве cArExpressionSought , то лишние строки массива nArStartOccurrence игнорируются. Если количество строк в массиве nArStartOccurrence меньше количества строк в массиве cArExpressionSought, то лишние строки из массива cArExpressionSought будут заменяться, начиная с первого вхождения каждой строки. Например, если nStartOccurrence равно 4, замена начнется с четвертого вхождения каждой строки массива cArExpressionSought в строке cSearched, а первые три вхождения строк останутся на своем месте. Другой пример, если первая строка массива nArStartOccurrence равна 4, замена начнется с четвертого вхождения первой строки массива cArExpressionSought в строке cSearched, а первые три вхождения первой строки массива cArExpressionSought останутся на своем месте. По умолчанию замена начинается с первого вхождения каждой строки, если параметр nStartOccurrence не был указан, либо равен -1. Если четвертым (пятым для функции WORDTRANEX()) параметром является не массив, а число nStartOccurrence, то каждое вхождение каждой строки массива cArExpressionSought будет заменяться, начиная с вхождения номер nStartOccurrence. . nArNumberOfOccurrences числовой массив или nNumberOfOccurrences число, данный параметр определяет количество вхождений каждой строки массива cArExpressionSought в строке cSearched, которое будет заменено. Если параметр не был указан, то все вхождения каждой строки из массива cArExpressionSought в строке cSearched, начиная с соответствующего вхождения, будут заменены. Если количество строк в массиве nArNumberOfOccurrences превышает количество строк в массиве cArExpressionSought , то лишние строки массива nArNumberOfOccurrences игнорируются. Если количество строк в массиве nArNumberOfOccurrences меньше количества строк в массиве cArExpressionSought, то лишние строки из массива cArExpressionSought будут заменены все, начиная с соответствующего вхождения каждой строки. Рассмотрим случай, когда пятым (шестым для функции WORDTRANEX()) параметром является не массив, а число nNumberOfOccurrences. В таком случае, каждое вхождение строки массива cArExpressionSought будет заменяться nNumberOfOccurrences раз, начиная с соответствующего вхождения. nArFlags числовой массив или nFlags число Определяет поиск и замену в соответствии со следующими значениями: ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘- nFlags, либо строка из массива nArFlags Описание 0 (по умолчанию) Поиск чувствителен к регистру, найденная строка заменяется на соответствующую строку. 1 Поиск НЕ чувствителен к регистру, найденная строка заменяется на соответствующую строку. 2 Поиск чувствителен к регистру, регистр буквенных символов в соответствующей строке замены будет изменен в соответствии с регистром буквенных символов найденной строки. Регистр буквенных символов строки замены меняется только в случае, если найденная строка соответствует верхнему регистру, нижнему регистру или регистру заголовка (то есть первая буква найденной строки прописная, а остальные строчные). 3 Поиск НЕ чувствителен к регистру, регистр буквенных символов в соответствующей строке замены будет изменен в соответствии с регистром буквенных символов найденной строки. Регистр буквенных символов соответствующей строки меняется только в случае, если найденная строка соответствует верхнему регистру, нижнему регистру или регистру заголовка (то есть первая буква найденной строки прописная, а остальные строчные). ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘- Если количество строк в массиве nArFlags превышает количество строк в массиве cArExpressionSought , то лишние строки массива nArFlags игнорируются. Если количество строк в массиве nArFlags меньше количества строк в массиве cArExpressionSought, то лишние строки из массива cArExpressionSought будут заменяться в соответствии со значением 0 по умолчанию. Если шестым (седьмым для функции WORDTRANEX()) параметром является не массив, а число nFlags, то каждое вхождение строки массива cArExpressionSought будет заменяться в соответствии с флагом nFlags. ArReport – символьный тип – имя создаваемого функцией глобального двумерного массива, содержащего следующие значения первый столбец, числовой тип – позиция в строке cSearched, с которой начиналась замененная функцией строка второй столбец, числовой тип – какая именно строка из массива cArExpressionSought была найдена третий столбец, числовой тип – как именно был изменен регистр вставленной строки 0 регистр не был изменен, то есть соответствующий элемент из строки массива был вставлен без изменений 1 регистр был преобразован в прописные буквы 2 регистр был преобразован в строчные буквы 3 регистр был преобразован в регистр заголовка, то есть первая буква прописная, а остальные строчные. Таким образом, массив ArReport содержит отчет о проделанной функцией STRTRANEX() или WORDTRANEX() работе. Общее количество строк в массиве ArReport равно общему количеству найденных и замененных строк. Если ничего не было найдено, массив ArReport не будет создан. Примечания: Замена начинается с nStartOccurrence -ой по счету реализации и производится nNumberOfOccurrences раз. Если cReplacement отсутствует, cExpressionSought заменяется пустой строкой (удаляется). Если не задано nStartOccurrence, подразумевается замена с первой реализации. Отсутствие nNumberOfOccurrences подразумевает замену всех реализаций. Передайте -1 для необязательных параметров, если, скажем, нужно всего лишь передать параметр nFlags, не указывая явно предыдущие необязательные параметры. STRTRANEX (cSearched, cExpressionSough, cReplacement, nStartOccurrence, nNumberOfOccurrences, nFlags) вернет тот же результат что и функция STRTRAN (cSearched, cExpressionSough, cReplacement, nStartOccurrence, nNumberOfOccurrences, nFlags) Данная функция позволяет, к примеру, заменять в строке строку A на строку B и, в свою очередь, заменять строку B на строку A, то есть менять местами строки в исходной стоке. Можно заменять (удалять) несколько строк за один проход. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2009, 20:09 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь, дело возможно нужное, но за 20 лет работы на фоксе, мне НИЧЕГО из этого не понадобилось, ну да ладно это в конце концов мое ИМНО, но с другой строны посудить - вот половина функций просто стырена с FoxTools - зачем дублирование ? Ну так из интереса покопал, и у меня просто волосы на голове зашевелились от такого когда на сях ! Возможно другого выхода не было, но даже если goto не отменяли в каком-то языке, я просто забыл о его существовании ! А тут ... Код: plaintext 1. 2. 3.
Ладно черт с ним с сишным кодом, хотя такое ощущение что писалось на коленке, да так на коленке и осталось, вобщем "не айс" , меня общение на форуме как-то по жизни заставило делать код более читаемым если он публикуется публично. про это я тоже умолчу Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Код: plaintext 1. 2. 3. 4. 5. 6.
Как говорится - сказал А, скажи и Бе. Не забывайте, Вы выкладываете свой код ПУБЛИЧНО. Это я еще фукнции тестить не начал Увидел функцию nprecision и вспомнил как народ спрашивал, "А как узнать количество ЗНАЧАЩИХ симоволов после запятой" - вот это была бы фукнция а то что у Вас, простите - фигня полная Код: plaintext 1. 2. 3. 4. 5.
Вот на кой черт нужна функция INCREMENT я так и не понял если она работает только со ссылкой ? Это я на фоксе ее напишу и будет гораздо меньше кода чем написани на Сях Код: plaintext 1. 2. 3.
Все - я спать - а то утром на дежурство, а у меня уже третий час ночи :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 00:16 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторвот половина функций просто стырена с FoxTools речь идет о функции strfilter - это разумеется не половина, часть кода заимствована с FoxTools и переделана. автор - зачем дублирование для strfilter я применил алгоритм, требующий меньше памяти, то же самое про функцию reverse (она из примера Microsoft) авторНу так из интереса покопал, и у меня просто волосы на голове зашевелились от такого когда на сях ! Код нормальный. Код: plaintext 1. 2.
авторпро это я тоже умолчу Код: plaintext 1. 2. 3. 4. 5. 6.
Непонятно, чем вызвано неудовольствие ? Код: plaintext 1. 2. 3. 4. 5.
авторЭто я еще фукнции тестить не начал Ошибок там нет. авторУвидел функцию nprecision и вспомнил как народ спрашивал, "А как узнать количество ЗНАЧАЩИХ симоволов после запятой" - вот это была бы фукнция а то что у Вас, простите - фигня полная Код: plaintext 1. 2. 3. 4.
запросите данную функцию для 1.23, 5.345 или 6.45984590 результат будет правильным, в приведенных Вами примерах количество знаков после запятой будет определятся установкой set decimal to авторВот на кой черт нужна функция INCREMENT я так и не понял если она работает только со ссылкой ? Она увеличивает значение переменной переданной по ссылке и возвращет результат Я ее применял в отчетах для подсчитывания, скажем количества групп, она увеличивает значение, переданное по ссылке. INCREMENT(@p) в каждой строке отчета , где данная функция вставлена, отображается число и увеличивается счетчик. Код на FoxPro упомянут как комментарий к функции INCREMENT Большинсво данных функций можно написать на FoxPro, тексты многих прилагаются в файле St_denis.prg , но скорость работы конечно отличается в сотни раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 06:59 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004 можно обойтись и без goto, просто код функций сравнительно небольшой и с goto получается покомпактней. Ну да бог с ним, если так надо, то пусть будет. Работает - не трож Игорь2004Непонятно, чем вызвано неудовольствие ? Тем что декларируется вывод сообщений на русском - а он реализован, мягко говоря, не до конца Игорь2004Ошибок там нет. Код: plaintext 1.
Игорь2004в приведенных Вами примерах количество знаков после запятой будет определятся установкой set decimal to А смысл ? Игорь, я не в упрек, только вот сделали бы проги какие-нить более нужные что ли. Сетевые фукции для FPD, FPW из числа пингов компов, мапления дисков, опроса NetFileEnum, NetSessionEnum, NetFileClose. Сканирования изображений из-под висты, запись Сидюков подней же, а то приходится пользоватся сторонними фукнциями, к примеру запись болванки из под фоксе не фурычит, а под VBS на ура. Чтение серйниых номеров процессора, винта, флешек - без админских прав, да малил ли чего еще, потому как вижу, что Ваша неуёмная энерия в части переписывания функций на Сях, есть, тольо ее направить в нужное русло. Ну вот хотя бы для FPD, FPW выкидаывание списка Browse, в Excel и OO - с миниамальным форматированием, с учетом заголовков полей и форматов. Для Visual не очень актуально, но тоже было бы не плохо, если бы экспорт шел с учетом спецификафии Biff8 хотя бы. Вот это было бы дело ! А так же отправки мыла прямо из FPD(W), формирования PDF с русскими нормальными буквами без использвания PDF Creator. ЗЫ. Мне собсно все равно, от фокса я ушел и не пишу на нем, так что мне это не актуально, но помню основные вопросы и потребности народа на форумах ! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 08:35 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
piva Игорь, я не в упрек, только вот сделали бы проги какие-нить более нужные что ли. Сетевые фукции для FPD, FPW из числа пингов компов, мапления дисков, опроса NetFileEnum, NetSessionEnum, NetFileClose. Сканирования изображений из-под висты, запись Сидюков подней же, а то приходится пользоватся сторонними фукнциями, к примеру запись болванки из под фоксе не фурычит, а под VBS на ура. Чтение серйниых номеров процессора, винта, флешек - без админских прав, да малил ли чего еще, потому как вижу, что Ваша неуёмная энерия в части переписывания функций на Сях, есть, тольо ее направить в нужное русло. Ну вот хотя бы для FPD, FPW выкидаывание списка Browse, в Excel и OO - с миниамальным форматированием, с учетом заголовков полей и форматов. Для Visual не очень актуально, но тоже было бы не плохо, если бы экспорт шел с учетом спецификафии Biff8 хотя бы. Вот это было бы дело ! А так же отправки мыла прямо из FPD(W), формирования PDF с русскими нормальными буквами без использвания PDF Creator. ЗЫ. Мне собсно все равно, от фокса я ушел и не пишу на нем, так что мне это не актуально, но помню основные вопросы и потребности народа на форумах ! Piva на 1С ушел, ему теперь фокс нужен, как забавная игрушка. А мне лично очень импонирует библиотека Игоря. И не степенью необходимости её компонентов (а что понадобится завтра ?), а желанием сделать некоторые вещи _как надо_, а не как в фоксе сделано. К примеру, функции работы с массивами в фоксе выглядят бледно даже на фоне аналогичных старинных библ времен DOS. Да и для работы с текстовыми данными инструментов явно не хватает. Приходится на коленке лепить фоксовые UDF, быстродействие которых смехотворно. Давно уже руки чешутся взяться за С, но руки связаны (фоксом, работой). И, по-моему, глупо ставить автору в упрек то, что он сделал не совсем то, что надо на потребу широкой публике (болванки писать, диски мапить etc.). Вы-же не будете ему предлагать переписывать половину фокса (или другого инструмента) на С. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 11:15 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
reware А мне лично очень импонирует библиотека Игоря. И не степенью необходимости её компонентов (а что понадобится завтра ?), а желанием сделать некоторые вещи _как надо_, а не как в фоксе сделано. rewareВы-же не будете ему предлагать переписывать половину фокса (или другого инструмента) на С. Очень последовательно Если вещь нужная, то кто спорит-то ? Ну нужна и нужна, больше программ нужных и не очень. Возможно Вы и правы. Значит с этими проблемами я так и не столнулся ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 12:18 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
>Игорь2004, 20.04.2009, 06:59 [7085346] Интересный подход. Право здорово. Жаль что не знал ранее, очень бы пригодились для написания хранимых процедур. С уважением, Владимир. p.s. для того, чтобы "выжать" из 1Сv7.7 все, пришлось перейти к 1С++ (OLEDB FoxPro Provider), и далее - к хранимым процедурам. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 12:23 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
По поводу Set Decimals и моей функции nprecision В документации сказано авторSpecifies the number of decimal places displayed in numeric expressions.фактически же FoxPro сохраняет в момент вычисления количество знаков, после запятой, в соответсвии с установкой Set Decimals действующей в момент вычисления. Моя функция абсолютно корректна и не бесполезна, она возвращает количество знаков после запятой которое хранится в выражении Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
авторТем что декларируется вывод сообщений на русском - а он реализован, мягко говоря, не до концаЯ оставил без изменения те сообщения, которые присутствуют в заимствованном из FoxTools коде. авторСетевые фукции для FPD, FPW из числа пингов компов, мапления дисков, опроса NetFileEnum, NetSessionEnum, NetFileClose. Я делаю кое-что из данного списка (ping, map drive), но только для VFP. Не думаю, что стоит тратить время на работу из под FPD, FPW. авторСканирования изображений из-под висты, запись Сидюков подней же, а то приходится пользоватся сторонними фукнциями, к примеру запись болванки из под фоксе не фурычит, а под VBS на ура. Чтение серйниых номеров процессора, винта, флешек - без админских прав, да малил ли чего еще, потому как вижу, что Ваша неуёмная энерия в части переписывания функций на Сях, есть, тольо ее направить в нужное русло. Ну вот хотя бы для FPD, FPW выкидаывание списка Browse, в Excel и OO - с миниамальным форматированием, с учетом заголовков полей и форматов. Для Visual не очень актуально, но тоже было бы не плохо, если бы экспорт шел с учетом спецификафии Biff8 хотя бы. Вот это было бы дело ! , формирования PDF с русскими нормальными буквами без использвания PDF Creator. До этого у меня руки никогда не дойдут авторА так же отправки мыла прямо из FPD(W) Я делал трюк, позволяющий отправить EMAil из FPD, но он довольно сложный. авторИгорь, я не в упрек, только вот сделали бы проги какие-нить более нужные что ли. Я попытался как-то структурировать функции, они работают с массивами, словами, кому-то может и окажется полезным именно то, что я сделал. Все это требует значительных усилий. Как я уже упоминал, функции не содержат ошибок. Достаточно сказать, что те две функции, который я только что добавил, на два порядка сложнее любой встроенной функции FoxPro. Скажем только тестирование по граничным условиям требуeт 50 000 000 вызовов с разными сочетаниями параметров и значениями параметров. Я думаю, что это последнее, что я напишу для FoxPro. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 18:05 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Небольшое замечание. SET DECIMALS - это настройка отображения количества знаков после запятой. А сколько в числе будет хранится значащих цифр этой настройкой не контролируется. Именно это и сказано в документации! SET DECIMALS - это настройка интерфейса, а не рассчета. На точность расчета никак, никоим образом, не влияет. Хотя, при определенных условиях, результат расчета может отображаться как округление результирующего значения. Но, опять же, это вопрос отображения, а не хранения. Более того, SET DECIMALS даже не гарантирует, что именно указанное количество знаков и будет отображаться. Есть куча условий, когда эта настройка игнорируется. Т.е. SET DECIMALS что-то, как-то преобразует только и исключительно в момент отображения этого чего-то. При этом никак не изменяя сохраненное значение. Некий специфический способ форматирования данных. Ну, как отображение ведущих нулей. PS: В версии FP2.x была такая настройка SET PRECISION. Вот она как раз и задавала точность расчета. Но в старших версиях FoxPro - игнорируется. Оставлена для совместимости. А точность расчета всегда 16 значащих цифр. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 18:43 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004 Моя функция абсолютно корректна и не бесполезна, она возвращает количество знаков после запятой которое хранится в выражении Игорь я не спорю - если в этом есть именно НЕОБХОДИМАЯ инфорамция, но как-то приянто устнанавливать Set Decimals в начале проги и его не дергать, а если передергивание Set deciamls идет по ходу программы, то или в программе что-то не то или правильного результатата не будет, хотя тестить чес слово лениво авторСетевые фукции для FPD, FPW из числа пингов компов, мапления дисков, опроса NetFileEnum, NetSessionEnum, NetFileClose. авторЯ делаю кое-что из данного списка (ping, map drive), но только для VFP. Не думаю, что стоит тратить время на работу из под FPD, FPW. А вот это как раз зря, потому что для FPW еще можно как-то через зад использовать Win16Api то для FPD ваще тока через NET функции DOS я когда-то это делал- но это все кануло в прошлое а FPD прог про стране и по миру еще очень много, для FPW возможно но сложнее не все делкарации есть в Win16, для VFP это только pure winapi - единственно возможно более корректное выделение памяти и читабельное чтение получаемых структур. для UrlDownloadToFile можно было бы указать объект кторый может отработать таймаут или прервать функцию - тоже знаете ли востребованная функция :) Игорь2004Я делал трюк, позволяющий отправить EMAil из FPD, но он довольно сложный. Дык никто и не торопит - что бы сделать нормально ! Игорь2004 Как я уже упоминал, функции не содержат ошибок. Ошибок - может быть и нет - (но я до сих пор боюсь такой формулировки или это самонаденянность или это осуществиом с рядом допущений и не иначе) Игорь2004 Скажем только тестирование по граничным условиям требуeт 50 000 000 вызовов с разными сочетаниями параметров и значениями параметров. Это или алогрим кривой или его можно оптимизировать по другому, или это тот крайний случай когда только так и не иначе - хотя в последнем сомневаюсь. Я даже из 1С - выжимаю все что ОНО(ОНА-ОН ) может. Да щас пишу медленне чем мой нач, но работает в 10-ки раз быстре его кода. Так что на оптимизацию у меня порой уходит до 2/3 времени на разработку - можно конечно подставить костыли на Сях и Асме - но пока не понадобилось - вечные тормоза не мои а сторонних сикульных серверов типа MySQL или MSSQL с такими проектированиями баз (жаль прихдилось юзать чужие а не свои ) как вропчем и тормоза фоксовского репорта, потому что даже в 2.6 FPW он достаточно медленный и костыли ему не помогут не говоря уже о ReportListener да его с графичесокой обработкой в самом Listener c вращениями и извращениями В остальном больше спорить не в моготу, если началь проявляться народ кому это надо, дай им бог в помщь вашии фунцкии, а дальше что ? с 2006 года перелопачивать одну и ту же библу ? Да я бы с тоски подох от такого саппорта Может все-таки отвелечетесь от ваших жизенных пролем и воспарите над собой ? Я пытался, тока денег захотелось больше чем свободы творчества, голод знаете ли не тетка А если есть время и желание, почему нужно стоять на одном месте ? а новые подходы, а новые знания ? ... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 18:47 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to ВладимирМ Вы правы, более точно, FoxPro запоминает, сколько знаков отоображать для переменной в соответствии с SET DECIMALS в момент присвоения. Моя функция это и покажет. to piva авторЭто или алогрим кривой или его можно оптимизировать по другому, или это тот крайний случай когда только так и не иначе - хотя в последнем сомневаюсь.О каком алгоритме идет речь, об алгоритме тестирования ? Как можно провести тестирование по граничным условия не вызывая все возможные комбинации параметров и значений параметров? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 19:08 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004О каком алгоритме идет речь, об алгоритме тестирования ? всякое тестирование относится к уже полученному, пусть и горькому опыту, если это просто тестирование быстродействия, то опять же в любых боевых условиях все может поменяться вплоть до наоборот, когда тривиальный код на фоксе будет быстрее функций на сях ;) ЗЫ - использование массиов в итерациях по 50 млн записей - это нонсенс или я не о том ? А если это "большие" куски текста то тем более Игорь - давай не будем цапаться. Если есть желание пнуть меня последним, то пусть это право останется за тобой, я могу тут же покаяться и принести извинения если это нанесло тебе какой-то ущерб, я думал тебя сподвигнуть на более интересные фунции ... видимо я ошибся, извини. Далее продолжать дискуссию не вижу смысла, это как слепой с глухим ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 19:18 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторЗЫ - использование массиов в итерациях по 50 млн записей - это нонсенс или я не о том ? А если это "большие" куски текста то тем более Вам знакомо понятие тестирование по граничным условиям "Boundary testing" ? http://en.wikipedia.org/wiki/Boundary_testing это значит, например, для строковых параметров, передача пустого параметра, для необязательного параметра нужно тестировать случай когда параметр не передан и т.д. В моем случае перебор всех возможных вариантов это около 50 миллионов вызовов. Речь идет о двух вновь добавленных функциях. 1 параметр может передаваться как по ссылке так и по значению 2 параметр может передаваться как массив по ссылке так и по значению строковая переменная 3 параметр может передаваться как массив по ссылке так и по значению строковая переменная (причем параметр необязателный) и так далее, каждую возможную ситуацию нужно вызвать с разными значениями ( пустой, непустой, значение по умолчанию) При большом количестве параметров тестирование по граничным условиям чрезвычайно усложняется. Я думаю, что в конце концов, Вы станете евангелистом моей библиотеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 19:35 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004Я думаю, что в конце концов, Вы станете евангелистом моей библиотеки. Побойтесь бога, да никогда в жизни Для решения работы с текстами мне хватило ATC\RATC + STUFF причем на это уходило 5% времены выполнения, остальное падало на ввод\вывод который мне не подконтролен (в том числе и на UrlDownloadToFile) + закидоны IE7 по сравнению с IE6 (о чем я упоминал на Foxclub) +косяки мемо полей от которых пришлось срочно избавлятся переводя все во внешние файлы и причем это работало ГОРАЗДО быстрее даже с IE7 Бог в помощь, как говорится ! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 19:43 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
pivaДля решения работы с текстами мне хватило ATC\RATC + STUFF причем на это уходило 5% времены выполнения, остальное падало на ввод\вывод который мне не подконтролен (в том числе и на UrlDownloadToFile) + закидоны IE7 по сравнению с IE6 (о чем я упоминал на Foxclub) +косяки мемо полей от которых пришлось срочно избавлятся переводя все во внешние файлы и причем это работало ГОРАЗДО быстрее даже с IE7 Не знаю, как вам хватало ATC и STUFF (и SUBSTR, и STRTRAN иже с ними). Это дикие торомоза на больших обьемах текста. И не надо лукавить, именно из-за этих "косяков мемо-полей" вы и перешли от работы со строкой в памяти к работе с перемещением указателя по файлу, что действительно реализовано в VFP гораздо грамотнее и быстрее. И, по-моему, автору не следует ударяться в бесчисленные ответвления, куда можно направить расширение библиотеки. Не надо сюда до кучи лепить различные UrlDownload, DiskMapper, CDWriter, DVDViewer и прочую ерунду. Достаточно уже выбранного направления, чтобы получить полноценный продукт, которого, по большому счету, так и нет в природе - библиотеки доп.функций работы с массивами и строками на С. Я, конечно, извиняюсь, но по набору строковых функций (а уж тем более фукнций обработки массивов) фокс сильно уступает даже досовским ветеранам семейства Clipper, с которого я начинал до его кончины. Это уже не говоря о фоксовской трактовке массива, как такового. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 20:21 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Да, в общем, я больше не собираюсь писать для FoxPro, осталось только опубликовать изменения на UniversalThread и CodePlex. Я немного возился c Clipper, но особенного внимания не обращал на такие детали. Каждый элемент массива может хранить любой тип данных, что увеличивает гибкость и усложняет обработку. Но как правило не нужно хранить разные типы данных в одном столбце. В Clipper вроде как существует еще большая гибкость, и можно хранить другой массив в элементе массива. Какие функции для работы с массивами были в Clipper, причем аналога нет в FoxPro ? Какие функции для работы со строками были в в Clipper, причем аналога нет в FoxPro ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 20:42 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
to Piva Совершенно напрасно Вы не хотите быть евангелистом моей библиотеки. Вы могли бы оставить о себе запись в http://fox.wikis.com/wc.dll?Wiki~VisualFoxProWiki в раздел Персоналии. Я там к примеру есть. Я рекомендовал бы вставить в автоописание следующую строку. Piva is a well-known evangelist of the St_denis library. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 21:01 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004Piva is a well-known evangelist of the St_denis library. Луше я останусь ортодоксальным атеистом, который ничего не принимает на веру, а все перепроверяет и переписывает под себя Так было, так есть и так, надеюсь, будет в т.ч. и на 1С Хотя начиналось с EXEC2, REXX, NETURAL, PL1, DBASE .... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 21:08 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004 Какие функции для работы с массивами были в Clipper, причем аналога нет в FoxPro ? Какие функции для работы со строками были в в Clipper, причем аналога нет в FoxPro ? Думаю, это не для данного форума. Если хотите, я могу кинуть вам на e-mail Norton Guide с описанием стандартных функций Clipper 5.01, его официальной библиотеки доп. функций Clipper Tools II и одной из многих доп. библиотек Nanfor.lib (она даже с исходниками на MS C 5.0, ASM и PRG). Выберете сами, там уж больно много. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2009, 21:38 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Библиотека St_Denis продолжает свое победное шествие по миру, включая Россию. В версии 2.1 добавленa функция STRFILTEREX() STRFILTEREX() Удаляет все символы из первой строки или memo поля, за исключением строк, содержащихся во втором параметре массиве строк Обладает очень большими возможностями по сравнению с функцией STRFILTER(). STRFILTEREX (cSearched, cArExpressionSought | cExpressionSough [, nArStartOccurrence | nStartOccurrence] [, nArNumberOfOccurrences | nNumberOfOccurrences] [, nArFlags | nFlags], [ArReport]) Тип возвращаемого значения символьный Параметры cSearched исходная строка, в которой функция STRFILTEREX() будет оставлять найденные строки, удаляя остальные символы. cArExpressionSought массив строк или cExpressionSought строка, каждая из строк будет разыскиваться и, впоследствие, оставляться в cSearched. Если вторым параметром является не массив, а строка cExpressionSought, то данная функция НЕ будет работать так же, как функция STRFILTER(), она будет разыскивать, для того чтобы затем оставить, строку cExpressionSought целиком, а не каждый символ из строки cExpressionSought в отдельности как STRFILTER(). nArStartOccurrence числовой массив или nStartOccurrence число, данный параметр определяет, с какого вхождения соответствующей строки массива cArExpressionSought в cSearched будет начато сохранение найденной строки. Если количество строк в массиве nArStartOccurrence превышает количество строк в массиве cArExpressionSought , то лишние строки массива nArStartOccurrence игнорируются. Если количество строк в массиве nArStartOccurrence меньше количества строк в массиве cArExpressionSought, то лишние строки из массива cArExpressionSought будут оставляться, начиная с первого вхождения каждой строки. Например, если nStartOccurrence равно 4, сохранение начнется с четвертого вхождения каждой строки массива cArExpressionSought в строке cSearched, а первые три вхождения строк будут удалены. Другой пример, если первая строка массива nArStartOccurrence равна 4, сохранение начнется с четвертого вхождения первой строки массива cArExpressionSought в строке cSearched, а первые три вхождения первой строки массива cArExpressionSought будут удалены. По умолчанию сохранение начинается с первого вхождения каждой строки, если параметр nStartOccurrence не был указан, либо равен -1. Если третьим параметром является не массив, а число nStartOccurrence, то каждое вхождение каждой строки массива cArExpressionSought будет оставляться, начиная с вхождения номер nStartOccurrence. . nArNumberOfOccurrences числовой массив или nNumberOfOccurrences число, данный параметр определяет количество вхождений каждой строки массива cArExpressionSought в строке cSearched, которое будет оставлено. Если параметр не был указан, то все вхождения каждой строки из массива cArExpressionSought в строке cSearched, начиная с соответствующего вхождения, будут оставлены. Если количество строк в массиве nArNumberOfOccurrences превышает количество строк в массиве cArExpressionSought , то лишние строки массива nArNumberOfOccurrences игнорируются. Если количество строк в массиве nArNumberOfOccurrences меньше количества строк в массиве cArExpressionSought, то лишние строки из массива cArExpressionSought будут оставлены все, начиная с соответствующего вхождения каждой строки. Рассмотрим случай, когда четвертым параметром является не массив, а число nNumberOfOccurrences. В таком случае, каждое вхождение строки массива cArExpressionSought будет сохраняться nNumberOfOccurrences раз, начиная с соответствующего вхождения. nArFlags числовой массив или nFlags число Определяет поиск для последующего сохранения в соответствии со следующими значениями: ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘- nFlags, либо строка из массива nArFlags Описание 0 (по умолчанию) Поиск чувствителен к регистру 1 Поиск НЕ чувствителен к регистру ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘- Если количество строк в массиве nArFlags превышает количество строк в массиве cArExpressionSought , то лишние строки массива nArFlags игнорируются. Если количество строк в массиве nArFlags меньше количества строк в массиве cArExpressionSought, то лишние строки из массива cArExpressionSought будут разыскиваться в соответствии со значением 0 по умолчанию. Если пятым параметром является не массив, а число nFlags, то каждое вхождение строки массива cArExpressionSought будет разыскиваться в соответствии с флагом nFlags. ArReport – символьный тип – имя создаваемого функцией глобального двумерного массива, содержащего следующие значения первый столбец, числовой тип – позиция в строке cSearched, с которой начиналась оставленная функцией строка второй столбец, числовой тип – какая именно строка из массива cArExpressionSought была найдена Таким образом, массив ArReport содержит отчет о проделанной функцией STRFILTEREX() работе. Общее количество строк в массиве ArReport равно общему количеству найденных и замененных строк. Если ничего не было найдено, массив ArReport не будет создан. Примечания: Сохранение начинается с nStartOccurrence -ой по счету реализации и производится nNumberOfOccurrences раз. Если не задано nStartOccurrence, подразумевается сохранение с первой реализации. Отсутствие nNumberOfOccurrences подразумевает сохранение всех реализаций. Передайте -1 для необязательных параметров, если, скажем, нужно всего лишь передать параметр nFlags, не указывая явно предыдущие необязательные параметры. Примеры: Код: 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.
Иногда функция StrfilterEx работает быстрее, чем функция Strfilter Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вы можете загрузить обновленную русскую версию данной библиотеки по адресу ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.zip либо можно загрузить 5 файлов меньшего размера в формате 7z ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.001 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.002 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.003 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.004 ftp://ftp-developpez.com/nikiforov/udfs/st_denis_russian.7z.005 Поздравляю всех с Новым годом ! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2009, 00:13 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004Библиотека St_Denis продолжает свое победное шествие по миру, включая Россию. Отличная библиотека, Игорь. Однако недавно не смог полноценно воспользоваться ее функций GETALLWORDS(). авторGETALLWORDS() Помещает в глобальный массив все слова из строки или memo поля, возвращает максимальную длину слова из строки, если в строке нет слов, возвращает 0. Во многом похожа на встроенную функцию Visual FoxPro ALINES(), но в отличие от нее возвращает массив другой структуры Все так и есть, но в отличии от ALINES() эта функция не снабжена флагами для версии VFP 9. Т.е. нет возможности разобрать строку по словам, включая или не включая разделители слов из строки lcDelimiters :( Было бы здорово добавить такую возможность в GETALLWORDS(). Тогда ALINES() уже совсем отдыхает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2009, 01:49 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторТ.е. нет возможности разобрать строку по словам, включая или не включая разделители слов из строки lcDelimiters Это можно сделать по другому Код: 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.
Написать функцию подобную Alines(), но с большими возможностями, разумеется, можно, но потребует немало времени (для меня примерно месяц). Мало кто может писать быстро и без ошибок. Я знаю только одного такого человека. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2009, 21:54 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004, У меня вопрос, вот скачал st_denis_russian.7z.001 st_denis_russian.7z.002 st_denis_russian.7z.003 st_denis_russian.7z.004 st_denis_russian.7z.005 распаковал st_denis_russian.zip а он при проверке Winrar или 7zip без разницы битый. И где можно прочитать как самостоятельно скомпилировать вашу FLL. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2009, 22:58 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторУ меня вопрос, вот скачал st_denis_russian.7z.001 st_denis_russian.7z.002 st_denis_russian.7z.003 st_denis_russian.7z.004 st_denis_russian.7z.005 распаковал st_denis_russian.zip а он при проверке Winrar или 7zip без разницы битый. Только что сам скачал, распаковал с помощью 7zip , получил st_denis_russian.zip, распаковал st_denis_russian.zip (архивировал также с помощью 7zip версия 4.65) - все абсолютно нормально. Код: plaintext
Там пошагово с картинками описывается как самому сделать любую FLL библиотеку. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2009, 23:31 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
А можете добавить в библу функции RCUT()/LCUT() которые, как видно из названия, будут отрезать слева или справа указанное кол-во символов и возвращать получаемую строку (т.е. без отрезанного, т.е. это не LEFT/RIGHT - они отрезанное возвращают). Да, это можно сделать стандартными функциями LEFT/RIGHT/SUBSTR/LEN, я создал себе такие функции - так бывает в ряде случаев удобнее, чем каждый раз ваять через несколько функций. Вот пример: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2009, 12:39 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторА можете добавить в библу функции RCUT()/LCUT() Могу, но не буду, это очень простые функции, Вы их сами можете добавить, поскольку исходный код есть. Вероятно, Вы подразумевали ? Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2009, 16:49 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Я подумал раз Вы хотите популяризировать свою библу, так надо добавить в нее по-больше полезных функций, которых в вфп нет и которые будут в ней работать быстрее чем UDF-аналог. В том числе предложил RCUT, могу предложить еще несколько, например, можно добавить ряд функций для работы со временем. К примеру: EXTRACTTIME(п1,п2) функция выделения времени из DateTime-параметра, по п2 решается в каком виде - string ("08:15") или int в секундах от полуночи. TIMEADDS(п1,п2) принимающая DateTime или стринговое время и параметр в секундах, который надо добавить и аналог TIMEADDМ(п1,п2) для добавления минут, MIXDATETIME(п1,п2) которая будет выдавать на выходе DateTime, полученный из даты от первого параметра(DateTime,Date) и времени из второго (DateTime, string ("8:15"), int в секундах от полуночи)... Кстати по работе с полями в вфп ощущается нехватка некоторых функций, например функции FNUMBER(п1,п2) принимающая 2 параметра - имя искомого поля и опционально алиас таблицы в которой поле ищется. Результат - номер поля в текущей или в указанной таблице или 0 - если не найдено. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2010, 00:52 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
авторВ том числе предложил RCUT, могу предложить еще несколько, например, можно добавить ряд функций для работы со временем. К примеру: EXTRACTTIME(п1,п2) функция выделения времени из DateTime-параметра, по п2 решается в каком виде - string ("08:15") или int в секундах от полуночи. TIMEADDS(п1,п2) принимающая DateTime или стринговое время и параметр в секундах, который надо добавить и аналог TIMEADDМ(п1,п2) для добавления минут, MIXDATETIME(п1,п2) которая будет выдавать на выходе DateTime, полученный из даты от первого параметра(DateTime,Date) и времени из второго (DateTime, string ("8:15"), int в секундах от полуночи)... Я подозреваю, что большинство из вышеописанного можно сделать с помощью встроенных функций FoxPro. авторКстати по работе с полями в вфп ощущается нехватка некоторых функций, например функции FNUMBER(п1,п2) принимающая 2 параметра - имя искомого поля и опционально алиас таблицы в которой поле ищется. Результат - номер поля в текущей или в указанной таблице или 0 - если не найдено. Смотрите FIELDNUM() Код: 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.
Сейчас меня больше заботит преобразование SQL запросов Visual FoxPro , (поскольку я переношу приложение в котором вместо базы данных Visual FoxPro будет использована база данных SQL Server, имеются сотни SQL запросов Visual FoxPro ) в SQL запросы SQL Server, я многое могу сделать в том числе с помощью своей библиотеки, но скажем автоматически конвертировать iif( ... , ..., ...) в case when ... then ... else ... end я не могу, нужно писать специальный скрипт. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 19:34 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Скачал, хотел попробовать. У меня VFP 9.0 а там нету.. тока 8 и ниже.. Или я не туда смотрю? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2012, 06:07 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
MaestroEv, лежит просто в корневой папке. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2012, 09:18 |
|
[Объявление] Библиотека пользовательских функции FoxPro на C
|
|||
---|---|---|---|
#18+
Игорь2004, ничего себе ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 14:02 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1583430]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
117ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 230ms |
0 / 0 |