BG Development


  Reply to this topicStart new topicStart Poll

> Delphi стара програмка
sadefa
Публикувано на: 23-03-2017, 00:13
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 23.03.17



Здравейте.

Преди известно време ми попадна една програмка писна на Delphi. При стартиране става лудница от error-ове - Invalid floating point.... Странното е, че програмата се е ползвала активно педи 10-тина години, но поради една или друга причина е изоставена, а сега не тръгва.

Порових се по сървърите и намерих сорс кода, писан от колегите ми (аз съм електроинженер). Всичко си изглежда ОК с дефиниранията на променливите. Някакви идеи? Пробвал съм compatability mode и всякакви други начини за пускане на вече компилираното exe, включително и на 32bit PC. Ако пусна през Delphi става още по-зле. Ако някой има ентусиазъм да помогне мога да му изпратя сорса.

Поздрави!
PMEmail Poster
Top
enf
Публикувано на: 23-03-2017, 08:39
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 55
Регистриран на: 01.08.14



QUOTE
Ако пусна през Delphi става още по-зле.


Колко по-зле може да стане ? icon_smile.gif Като ти рейзне ексепшъна, не виждаш ли как се е стигнало до него през call stack-a ?

Иначе публикувай кода да го видим. Аз евентуално бих го погледнал.

Това мнение е било редактирано от enf на 23-03-2017, 08:40
PMEmail Poster
Top
ici
Публикувано на: 23-03-2017, 09:27
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 19077
Регистриран на: 06.06.04



Програмата сигурно чете през сериен канал и се опитва да използва байтовете директно като float неподравнени и се получaва NaN. Трябва байт по байт да се копира във float и тогава да се използва. - просто предполагам.


--------------------
Facebook is a bit like checking your underwear after a fart.
Most likely there's nothing new and if there is it's probably shit.
PMEmail PosterUsers Website
Top
akrachev
Публикувано на: 23-03-2017, 09:33
Quote Post



Име: акрачев
Група: Потребител
Ранг: Почетен член

Мнения: 1216
Регистриран на: 27.11.09



Пратих ти лично съобщение.

Има проблем със старите програми на Delphi, трябва да се пробва да се прекомпилиран на нова версия на Delphi или Lazarus (да пусне някой vizacc HelpMaker примерно ако не вярва). А VB6 напук върви.


--------------------
PMEmail PosterUsers Website
Top
Golden Gega
Публикувано на: 23-03-2017, 16:41
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2189
Регистриран на: 04.06.10



Един от възможните варианти е ако се подават външни текстови файлове, които да се парсват до float. И по-точно ако файловете са били ANSI, а сега например unicode.
PMEmail Poster
Top
sadefa
Публикувано на: 23-03-2017, 20:48
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 23.03.17



QUOTE (Golden Gega @ 23-03-2017, 16:41)
Един от възможните варианти е ако се подават външни текстови файлове, които да се парсват до float. И по-точно ако файловете са били ANSI, а сега например unicode.

Това звучи като възможна причина ... Някакви идеи как да се справя с това?

На поискалите на ЛС съм пуснал линкове за сваляне.

Това мнение е било редактирано от sadefa на 23-03-2017, 20:49
PMEmail Poster
Top
akrachev
Публикувано на: 24-03-2017, 08:57
Quote Post



Име: акрачев
Група: Потребител
Ранг: Почетен член

Мнения: 1216
Регистриран на: 27.11.09



Проблема наистина е в четенето от файла. Входните параметри са String, а в кода се използват като Double. (Под Delphi 7 не се компилира, явно някоя предишна весрия на Delhi го е приемала така)

Има две решения:

- Навсякъде където имаш от тези променливи (fb, gc май бяха най често срещаните) ги слагаш в:
StrToFloat(fb)


- Втория вариант е, правиш ги в декларацията на Double и добавяш едни временни string, които след изчитане от файла конвертираш веднага в StrToFloat.

(А и менютата трябва да се оправятicon_smile.gif


--------------------
PMEmail PosterUsers Website
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0