|
перенести код foxpro 2.6 в delphi
|
|||
---|---|---|---|
#18+
помогите написать функцию преобразование строки x в строку y строка X : 2012BXDD строка Y : 201299905 есть часть кода в фоксе которая это делает мне нужно написать функцию аналог этого кода в delphi код автор #define cvt_p2 36 #define cvt_p3 1296 #define cvt_p4 46656 * akcvt45 * FUNCTION akcvt45 PARAMETERS cAK4 PRIVATE n IF ISDIGIT(LEFT(cAK4,1)) RETURN '0' + cAK4 ELSE n = 10000 + ( ; (ASC(UPPER(SUBSTR(cAK4,1,1))) - ASC('A')) * cvt_p4 + ; cvt8n(UPPER(SUBSTR(cAK4,2,1))) * cvt_p3 + ; cvt8n(UPPER(SUBSTR(cAK4,3,1))) * cvt_p2 + ; cvt8n(UPPER(SUBSTR(cAK4,4,1))) ; ) RETURN PADL(n,5,'0') ENDIF * END FUNCTION akcvt45 *───────────────────────────────────────────────────────────────────── * akcvt89 * FUNCTION akcvt89 PARAMETERS cAK8 RETURN ( ; SUBSTR(cAK8,1,4) + ; akcvt45(SUBSTR(cAK8,5,4)) ; ) * END FUNCTION akcvt89 *───────────────────────────────────────────────────────────────────── * cvt8n * FUNCTION cvt8n PARAMETERS c RETURN IIF( ; ISDIGIT(c), ; ASC(c) - ASC('0'), ; ASC(c) - ASC('A') + 10 ; ) * END FUNCTION cvt8n *-------------------------------------------------------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2012, 10:18 |
|
перенести код foxpro 2.6 в delphi
|
|||
---|---|---|---|
#18+
Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2012, 11:14 |
|
перенести код foxpro 2.6 в delphi
|
|||
---|---|---|---|
#18+
функции я перевел работает, но как-то не так работает числа не сходятся где-то на 60-80 вот листинг кода на дельфи Код: pascal 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.
может кто подскажет где что не так строки должны быть такими на входе: 2012BXDD на выходе: 201299905 а получается на входе: 2012BXDD на выходе: 201299853 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:47 |
|
перенести код foxpro 2.6 в delphi
|
|||
---|---|---|---|
#18+
Код: pascal 1. 2. 3. 4. 5. 6.
ЕМНИП в Дельфи есть какая-то функция (fillchar, что ли), позволяющая создать строку определённой длины, состоящую из повторений одного символа. Это к вопросу о скорости работы вашей реализации PADL. И, кстати, тот padl добивал нулями (третий параметр), а ваш почему-то пробелами. Код: pascal 1.
не проще ли использовать функцию выбора подстроки (copy, если не ошибаюсь)? авторможет кто подскажет где что не такС виду всё нормально.Может быть, вы ошиблись при задании констант cvt_p2-cvt_p4? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 06:32 |
|
|
start [/forum/search_topic.php?author=JuliaTr&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 445ms |
total: | 590ms |
0 / 0 |