Сейчас на форуме: Magister Yoda (+5 невидимых) |
eXeL@B —› Основной форум —› FoxPro |
Посл.ответ | Сообщение |
|
Создано: 05 апреля 2009 02:05 · Личное сообщение · #1 Братва, кто хорошо знает FoxPro? Помогите разобрать код пожалста. В принципе код не сложный, но чет нифига не получается разобрать толком алгоритм генерации сериала. Вид сериала - ХХХХХХХХ-YYYYYYYYYY-XXXXXXXX Так вот YYYYYYYYYY есть самое главное, в коде это VAL(ALLTRIM(thisform.text2.value)) - то что в едит контроле tyu1 - это сгенеренный серийник, т.е. его часть (YYYYYYYYYY) Попробовал тупо посчитать на калькуляторе, нифига... Вот код из Рефокса Code:
Помогите разобраться плиз! ----- aLL rIGHTS rEVERSED! |
|
Создано: 05 апреля 2009 09:56 · Поправил: progopis · Личное сообщение · #2 А почему в программировании создал? Это же в общем-то тема основного форума. А вот это что? thisform.text2.value По функциям: ALLTRIM - обрезать пробелы у строки слева и справа. VAL - это получение числа из строки. INT - округление числа до целого. SYS(5) - если верить MSDN'у - основной раздел системы ('C:' я полагаю) При вызове API функции параметры по значению - без префикса. Параметры по ссылке - с префиксом @ Ну так вот получают они серийный номер раздела. Если число меньше 0 прибавляют к нему MAX_LONG+1 Затем вполне очевидные операции. tyu1 = l_sern+1234567 tyu1 = INT((tyu1/3+8754264)/10*1.94 ) |
|
Создано: 05 апреля 2009 12:33 · Личное сообщение · #3 |
|
Создано: 05 апреля 2009 12:47 · Личное сообщение · #4 |
|
Создано: 05 апреля 2009 13:46 · Личное сообщение · #5 |
|
Создано: 05 апреля 2009 18:43 · Личное сообщение · #6 |
|
Создано: 05 апреля 2009 18:56 · Личное сообщение · #7 |
|
Создано: 05 апреля 2009 19:10 · Поправил: progopis · Личное сообщение · #8 Дык 0 допиши ведущий. А вообще ты уверен что проверка обламывается именно на уровне thisform.text2.value ? Просто смотри. У нас есть проверка tyu1=VAL(ALLTRIM(thisform.text2.value)). Допустим tyu1=123456789 и thisform.text2.value="0123456789". С позиций проверки всё ок, так как ведущий 0 обрежется функцией VAL. Вообще лучше поставь последний FoxPro и закинь в него сорсы. Под отладчиком проще будет понять где лаг. |
|
Создано: 05 апреля 2009 19:10 · Поправил: mysterio · Личное сообщение · #9 |
|
Создано: 05 апреля 2009 19:20 · Личное сообщение · #10 |
|
Создано: 05 апреля 2009 20:02 · Личное сообщение · #11 mysterio пишет: Возможно имеет смысл поставить лидирующий 0 Не помогло progopis пишет: А вообще ты уверен что проверка обламывается именно на уровне thisform.text2.value ? Не уверен... если чесно.. Первый параметр VAL(ALLTRIM(thisform.text1.value)) и третий VAL(ALLTRIM(thisform.text3.value)) я так толком и не понял что с ними надо сделать? ----- aLL rIGHTS rEVERSED! |
|
Создано: 05 апреля 2009 22:55 · Личное сообщение · #12 |
|
Создано: 05 апреля 2009 23:23 · Поправил: Ultras · Личное сообщение · #13 Да там и первая и третья части в базе, а середина считается от серийника раздела. Первая: VAL(ALLTRIM(thisform.text1.value))=table_stzatrat2.zat1 Третья: VAL(ALLTRIM(thisform.text3.value))=table_stzatrat2.zat2 Таблицу table_stzatrat2 в студию При расчете второй части вы забываете про проверку на отрицат. код серийника раздела: l_sern = snn IF l_sern<0 l_sern = 4294967296 +l_sern // 429496729 = 0x100000000 ENDIF А чтобы узнать отриц. он или нет надо посмотреть границы числового типа в фоксе. На этом же фоксе можно и скомпилять генератор, рипнув алго, если лень считать ----- .[ rE! p0w4 ]. |
|
Создано: 05 апреля 2009 23:56 · Личное сообщение · #14 Ultras пишет: Таблицу table_stzatrat2 в студию Да без проблем, только где там что искать... х.з. f6b9_05.04.2009_CRACKLAB.rU.tgz - table_stzatrat2.dbf ----- aLL rIGHTS rEVERSED! |
|
Создано: 06 апреля 2009 00:10 · Поправил: progopis · Личное сообщение · #15 Ultras Вообще-то мы учитывали что число 1678166144 > 0. Ultras пишет Первая: VAL(ALLTRIM(thisform.text1.value))=table_stzatrat2.zat1 Ты точно знаешь Visual FoxPro? Code:
Что делает этот код понимаешь? Он перебирает первую часть по базе среди 1000 фиксированных возможных значений. GOTO в FoxPro не тоже самое что, например, в VB. Это оператор управления базой данных. Читаем здесь: DaRKSiDE Что-то база твоя база у меня не хочет открываться. Можешь перевыложить на обменник? |
|
Создано: 06 апреля 2009 00:26 · Личное сообщение · #16 |
|
Создано: 06 апреля 2009 00:37 · Личное сообщение · #17 |
eXeL@B —› Основной форум —› FoxPro |
Эта тема закрыта. Ответы больше не принимаются. |