AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Problem "ungültige Gleitkomma-Opertion"

Problem "ungültige Gleitkomma-Opertion"

Ein Thema von yogie · begonnen am 5. Mai 2011 · letzter Beitrag vom 6. Mai 2011
Antwort Antwort
Seite 1 von 2  1 2   
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#1

Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 15:18
Hallo zusammen,

meine Frage bezieht sich auf einen Fehler „Ungülige Gleitkomma-Operation“; (d.i. Nummer 207 laut Delphi-Hilfe).

Dieser Fehler tritt sporadisch in einem online Meßprogramm auf, zeigt eine (nicht von mir erzeugte) Message und hält das Programm an.

Das Programm empfängt über eine seriellle Schnittstelle einen String mit Daten (Semikolon als Trenner, CR LF als Ende-Zeichen). Der String wird zerlegt und die Teile dann in Float-Variablen gewandelt. Diese Wandlung ist in try excepts eingebettet.

Frage 1 : Gibt es eine Möglichkeit die Anzeige der Message und damit den Programmhalt zu unterbinden? Dann sind zwar die Daten verloren, es geht aber wenigsten weiter.

Frage 2 : Mir gelingt es nicht, durch eine erzwungene Manipulation der hereinkommenden Daten diese Fehlermeldung zu erzwingen. Welcher Umstand erzeugt diese Meldung?
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 15:27
Wenn du das Parsen des Strings innerhalb von einem try-except-Block erledigst und auch passend auf den Fehler reagierst, dann sollte das nicht das Problem sein und zum Programmende führen. Der Fehler liegt somit außerhalb dieses try-except-Blocks. Und ab hier kann dir nun keiner mehr helfen, da wir keinen Code sehen.

Was machst du sonst noch mit den Daten? (also außerhalb des try-excepts)
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 15:31
erster Verdächtiger Division durch 0 ?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 16:24
http://www.youtube.com/watch?v=_N37AEYPCj4
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 16:46
Wahrscheinlich nicht all zu einfach den Effekt zu coden, aber richtig witzig war es imho nun nicht
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#6

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 17:41
also erstmal danke für die Antworten.

Die Angelegenheit ist durchaus komplex, verschiedene Typen
von sendenden Geräten, unterschiedliche Anzahl von Daten usw...

Ich vermute ja auch, daß es nicht mit der Wandlung string zu single
zu tun hat.

Mir geht es darum in einem Test erstmal diesen speziellen Fehler in
einem eigenständigen Programm zu erzeugen und dann zu schauen was man
machen kann. Bisher habe ich es nicht geschafft den betreffenden Fehler zu erzeugen.

Weiter suche ich sowas wie einen Compiler-Schalter mit dem man
die Ausgabe der message unterdrücken kann. So in der Art wie man
ja auch die Bereichprüfung abschalten kann.
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 17:46
Wie sieht denn deine Fehlerbehandlung aus? Mit einer richtigen try-except Verwendung sollte man das in den Griff bekommen können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 17:58
Weiter suche ich sowas wie einen Compiler-Schalter mit dem man
die Ausgabe der message unterdrücken kann. So in der Art wie man
ja auch die Bereichprüfung abschalten kann.
Äh? Wozu denn das? Sowas wie "ich will keine Fehler" sehen wäre eher ungeschickt, da es ja ein Problem innerhalb des Programms ist, welches ja behoben werden sollte. Ein "was ich nicht sehe, ist nicht da" wäre hier sehr sehr ungeschickt.

Daher musst du nach der Stelle suchen, an der der Fehler auftritt. Und diese liegt, wie oben schon erwähnt außerhalb deiner bisherigen try-except-Blöcke -- außer du machst ein raise; innerhalb des except-Parts.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 18:45
Wozu erfolgt denn die Umwandlung in einem try..except Block?
Delphi-Referenz durchsuchenTryStrToFloat wäre die bessere Alternative, da die Exception-Behandlung durchaus sparsam eingesetzt werden sollte (schon aufgrund der Performance-Verluste).

Delphi-Quellcode:
ValOk := True;
ValOk := ValOk and TryStrToFloat( S1, V1 );
ValOk := ValOk and TryStrToFloat( S2, V1 );
...
ValOk := ValOk and TryStrToFloat( S9, V9 );

If ValOk then
  try
    // Berechnungen mit den Zahlen durchführen
  except
    ShowMessage( 'Fehler Berechnung: Auch das hier gehört in ein Log!' );
  end
else
  ShowMessage( 'Fehler Import: Man könnte jetzt auch ein Log schreiben!' );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

AW: Problem "ungültige Gleitkomma-Opertion"

  Alt 5. Mai 2011, 19:04
Hallo,

der Fehler tritt auch auf, wenn Gleitkommawerte mittels Trunc oder Round in ganzzahlige Werte (z.B. für die Anzeige in einem Chart) umgewandelt werden und dabei der Integer-Bereich verlassen wird.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz