![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| graham |
|
|||
|
Unregistered |
У меня есть исходники программы под дос, на TP.
Надо мне ее сделать под форточки, есстественно взялся я это делать в Делфях. Прога делает рассчеты и выводит таблицу.. Вывожу через TStringGrid. Короче проблема в том что результаты не совпадают Что может быть? Что-то может не так сделал? |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Ошибка в 17й строке
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Что значит ошибка в 17-й строке?
Кажется Вы ошиблись... Местом ответа. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Да нет, не ошибся он.....
Попробую объяснить...... Я задам Вам такой же вопрос, какой задали Вы. У меня не хочет работает моя программа, почему? -------------------- |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Я думал может при переносе из турбопаскаля в делфи есть различия в типах переменных или еще в чем.
Спрашивать что неправильно в моей программе я и не собирался. |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Различия есть. Но их много, и все они очень мелкие, помнить наизусть их никто не будет (например, real в Delphi=double, а когда-то был = single). Так что вопрос стоит конкретизировать.
|
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Вот мне и надо, опишите плиз отличия типов турбопаскаля от типов делфи.
|
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Вы так и не поняли. Знаете, мы не экстрасенсы, и не знаем, что же именно у Вас там происходит. Опишите поконкретнее свою проблему, и если это возможно, запостите кусок кода, который вызывает у Вас сомнения, или генерирует ошибку.
-------------------- |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Ну вы блин даёте различия рассказать - даже перечисление займёт не один килобайт, даже типы перечислить мне в лом, так как отличиям имя легион. Ни кто вам сей титанический труд делать не будет, вам лень привести строку кода с ошибкой и написать название ошибки, но вы считаете, что кому-то будет не лень писать для вас список отличий... Не требуйте от других выполнения Вашей работы! - надо выяснить - приведите кусок кода, скажите какую ошибку даёт компиллятор и тут вам помогут.
Наверное легче перечислить что не изменилось. Так вот не изменились следующие вещи: Конструкции: while... do repeat ...Until if case Типы: byte word boolean record Вроде бы и всё, всё остальное в той или иной степени изменилось.... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Vit, у товарища graham всё компилится нормально, насколько я понял, но этому никто не рад, потому что где-то логика программы балуется антикроссплатформенностью (красивое слово, правда? |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Да вот December понял. Прога компилится нормально. Смотрите в чем весь смысл, есть у меня прога, которая была откомпилена в turbopascal'e и вроде замечательно работает. Есть некоторые нуедобства того что она всетаки досовская. Мне надо сдалать чтобы она работала в виндах.
Я надеялся что простым способом переноса все получится. Но не тут то было. Взял одну функцию перенес. Конечно там с ней еще штук 5 функций и продседур. Убрал все выводы и прочую дребедень что относится к выводу и вводу в досе, а вместо этого вывод сделал в StringGrid. Вот. Не вижу смысла кидать часть или еще чего от когда. Пока может и так сможете помочь?! |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Ну хорошо.
Предположим, проблема - со строками. Возможно, я не прав, но по-моему, некоторые варианты строк в Дельфийской реализации не содержат длины по адресу строка[0] (а по адресу строка[0]-4 или что-то в этом роде), тогда как под досом строка[0] использовалась налево и направо. Хочешь ещё? Тогда хоть укажи с чем связана ошибка - числа, картинки или чем характеризуется. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Да я тоже понял, только помочь не смогу - слишком много поменялось, если б вы перешли с Дельфи 5 на Дельфи 6 я бы с ходу мог сказать с 90% вероятностей какие грабли могут быть, а так, это вопрос из серии чем отличается рояль от унитаза... Опубликованный код позволил бы хотябы примерно понять какие функции, объекты и ресурсы языка Вы используете, ну не хотите - как хотите... Ждите доброго волшебника который вам скажет - чувак смени integer на double и у тебя всё заработает! Такой большой, а в чудеса до сих пор верит...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Код помещать? Он довольно большой.
Рассчет идет в числах, вывод тоже... Но ошибки не при выводе а при рассчетах самих. Может хотябы посоветуете где можно почитать?! |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Где почитать? Берёшь все версии Дельфи (с первой по твою текущую), открываешь в справках раздел What's new и внимательно читаешь.
Если серьёзно: искать практически бессмысленно, лучше оттрассируй у себя места (пара процедур), где рождается ошибка, и выкладывай именно их (процедуры). |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
В том то и дело я не знаю где именно рождается ошибка. Могу сравнить только конечные результаты.
Видать прийдется ковыряться покрупной ;))) Исходники все на другом компе, дорваться не могу, завтра с утра продолжу, тогда может какой-нибудь кусок, самый подозрительный, закину сюда. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Закинь прямо сюда, ковыряться конечно никто не будет, но можно будет пробежать свежим взглядом, может прийдут мысли о подозрительных местах...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Вот почти все где могут быть ошибки. Или даже все.
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Graham, странно, но я запускал твою прогу и в TP и в Delphi - результаты абсолютно совпадают. Видимо ты допустил грубую ошибку при переносе из TP в Delphi.
Попробуй выложить DOS-версию... P.S.: когда выкладываешь текст программы, пользуйся тэгами
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Bodya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 13.6.2003 Репутация: нет Всего: нет |
А не проще ли понять алгоритм расчета и переписать самому под делфи? По крайней мере будешь понимать что делаешь и где может возникнуть ошибка рачета.
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
При первом взгляде на код я не вижу ничего что потенциально приводило бы к проблемам. Правда объявлено несколько указателей, но они не используются. Я бы решал таким образом: сделал в коде запись в лог файл, растыкал его во многие места по процедурам с выводом значений переменных. Дальше запустил бы TP и Дельфи - сравнил Лог файлы и локализовал на каком месте значения переменных становятся различными. Или трассанул код одновременно и в TP и в Дельфи - код же очень маленький - тут работы всего минут на 20...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Unregistered |
|
||||
|
Unregistered |
Всмысле выложить девственно чистый код техже функций? Ок сейчас...
Понять алгоритм рассчета не проще, т.к. это только маленькая часть всей программы. |
||||
|
|||||
| Unregistered |
|
|||
|
Unregistered |
Вот практически не тронутый код, если чесно в паскале я практически ничего не понимаю, только могу понять код. У меня есть уже откомпиленая прога и исходники, исходники откомпилировать сам не могу ругается что версия tpcrt.tpu не та..уже даже с нета качал другую. Поправьте плиз этот код чтобы я его мог без проблем откопилитью и посмотреть результаты сам.
|
|||
|
||||
| p0s0l |
|
||||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Ты хоть бы выкладывал РАБОЧИЕ версии, а то, что первая твоя прога (в Delphi) не компилировалась,
что эта... Ну ладно. Ошибку я нашел. Проблема в циклах: если в TP можно в цикле менять переменную цикла, то в Delphi это запрещается:
это бы проехало в TP, но Delphi заругается. Вышеприведенный цикл увеличивает i на 2. А так как в твоей DOS-проге есть такие "плохие" циклы, ты их заменил на while. Ты сделал правильно, что заменил на while, но ты забыл про увеличение i. Вот один из циклов, который был в TP:
Ты просто его заменил на:
но вместо inc(i) надо inc(i, 2)... Надеюсь ты найдешь этот цикл, он находится в процедуре tabfreq. Чуть повыше есть еще один практически идентичный цикл:
Хотя в этот цикл программа ниразу не приходила ... -------------------- С уважением, г-н Посол. |
||||||||
|
|||||||||
| Unregistered |
|
|||
|
Unregistered |
Да циклы найду...они моя головная боль.
Только не понял почему инкрементировать надо на 2, а не на 1. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
p0s0l, кинь плиз ,то что ты компилил в паскале и то что ты компилил в делфи, на мыло [email protected]
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Потому что сам цикл for реализует инкрементацию на 1, да еще и в теле цикла была на 1. Того 1+1=2 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Я не могу в ТР ничего откомпилировать...
при попытке откомпилить выдает ошибку 116, на первой строчке if ... then, в функции atan2. Маркер мигает под "t"hen. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
В твоей последней проге была тьма ошибок (в основном не хватало переменных), но с аТаном все нормально было... А переделанные проги я тебе кинул.
-------------------- С уважением, г-н Посол. |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
Возможно при записи в таблицу идёт неправильное преобразование численного типа в строковый...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
p0s0l, спасибо огромное.
С меня пиво Только вот в ТР у меня так и не компилится... 116 ошибка и все. прописываю {$N+} ошибка - деление на 0. А в делфи все нормально, только я не понял почему ты исправил на inc(i,2). Ты и в первый раз, когда компилировал так менял? Мне еще 5 функций переносить... как узнать где надо инкрементировать на 2?! |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Если Inc(i) в цикле нет, то инкрементируй на 1.
Если в цикле (for) стоит Inc(i) или Inc(i, 1), то инкрементируй на 2. В общем случае: если в цикле (for) стоит Inc(i, x), то инкрементируй на x+1. Выше: i - это переменная цикла (for i := ...) -------------------- С уважением, г-н Посол. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
И кстати: что это за ошибка 116 ? Чо пишет ?
P.S.: пиво пришли мне на почту -------------------- С уважением, г-н Посол. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Такую замену надо делать тогда, когда я с (for) на (while) меняю?
Или при переносе из ТР в Делфи? Ошибка 116 забыл уже что-то связано с процессорами 8087.. А ты что не в ТР компилил? В нем можно в хелпе глянуть что эта ошибка значит и как исправить, только как я уже говорил после исправления - деление на ноль выскакиввает Вот посмотрел что это значит: "Must be in mod 8087 to compile this" Ты в чем компилил код ТР? |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Я так-то компилил в BP, но не думаю, что BP и TP так сильно отличаются, скорее тут дело в настройках компилятора, а ошибок у меня никаких не возникало, кроме отсутствия объявления переменных. Ну и там еще с файлом была какая-то ерунда - пришлось убрать (WriteLn(fq, ...))
Это сообщение отредактировал(а) p0s0l - 22.8.2003, 18:27 -------------------- С уважением, г-н Посол. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Кстати, деление на 0 когда выскакивает ? Если в самом начале проги, еще до всяких там вычислений - то это из-за модуля Crt. Если так, то тебе надо его пропатчить, или я могу выслать нормальную версию. А лучше просто убери Crt из Uses, и если компилятор будет ругаться на какие-нибудь функции (ReadKey, ClrScr) - временно попробуй их закоментировать.
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Да ну ладно...не нужно оно мне в паскале главное чтобы в делфи заработало...
Что у меня плохо получается... Вот со второй функцией провозился.. что-то она у меня выеживается... Столько заменить пришлось... вот например как заменить надо было for i:=nrr +1 downto 3 do begin ..... end; i:=nrr; while i>=3 do begin .... dec(i) end; Так? У меня что-то зацикливается и все... в нескольких местах. Геморно... Завтра на свежую голову попробую еще раз. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
так, только не i:=nrr, а i:=nrr+1, да и зачем такой for заменять на while ? оставь как было...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Да у меня там гон какой-то был поэтому и заменял.
Лать позже буду разбиратья. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
наткнулся на такое:
как это можно заменить? Или в Делфе можно пропустить вообще? |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
p0s0l, посмотри я тебе письмо послал, если не сложно
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
mark не имеет аналога на Delphi, в TP этой командой можно было запомнить текущее состояние heap
и потом одним Release'ом освобить всю память, которую выделяли после mark... Можешь ли ты мне кинуть еще tpcrt.tpu (а еще лучше tpcrt.pas) ? А то там больно сильно привязано к этому модулю... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Сейчас посмотрю и кину, мне он в делфи разве пригодится?
Я думал это как стандартная библиотека паскаля и уже ненужная фича в Делфи. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Посмотрел сам код, новой версии tpcrt, вроде он никапли не может пригодиться в Делфе, он же только для разных выводов на экран... и еще что-то со звуком видел, или ты хочешь откомпилить саму прогу чтобы посмотреть что она из себя представляет?
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Да. А то непонятно, что за прога вообще. Я так понял, это ТАУ ? Просто для начала можно было бы заменить функции из tpcrt дельфинскими, чтобы проблема осталась только в алгоритме, а не в выводе на экран. -------------------- С уважением, г-н Посол. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
да это есть гребаное ТАУ
ты как-что кидай на мыло или тут что пиши...если вдруг у меня у самого что родится я крикну, если у тебя что выйдет буду очень рад помощи |
|||
|
||||
| -=::BlackCat::=- |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 12.7.2003 Где: растёт анаша? Репутация: 1 Всего: 6 |
Blin interesnaja skazka bila, no bez konca
-------------------- -=::BlackCat::=- такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать?? гррр, админ, форум косячит |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
С концом... Дальше мы по мылу переписывались... Вот только хоть убей, вспомнить никак не могу, довёл он дело до конца или нет... -------------------- С уважением, г-н Посол. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |