AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi problem bei simpler rechenfunktion...
Thema durchsuchen
Ansicht
Themen-Optionen

problem bei simpler rechenfunktion...

Ein Thema von arest · begonnen am 5. Nov 2007 · letzter Beitrag vom 6. Nov 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: problem bei simpler rechenfunktion...

  Alt 5. Nov 2007, 13:41
Zitat von divBy0:
Aber wenn c = 0 ist, dann wäre das Ergebnis der Division 0. Das dürfte aber keinen Fehler auslösen.

Eigentlich kann nur die genaue Fehlermeldung / Fehlerbeschreibung weiterhelfen.
Ok Verlesen hast recht, er teilt ja durch 133... Mein Fehler...

Nunja ohne Fehlermeldung stochern wir trotzdem in Gemüsebeet

Bye Christian
Christian
  Mit Zitat antworten Zitat
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#12

Re: problem bei simpler rechenfunktion...

  Alt 5. Nov 2007, 22:54
ahso, ja klar, sorry für den fehler meinerseits... der fehler ist kein fehler direkt im code sondern ein runtime error... er lautet wie folgt:

"Im Projekt Project1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: "" ist kein gültiger Integerwert'. Prozeß wurde angehalten. Mit einzelnen Anweisungen oder Start folgen."

das mit trunc hat nix dran geändert... ich poste euch hier mal kurz den code, den ich komplett habe... er ist umstädnlich aber ich dachte, der fehler könnte durch zu viele klammern und all den kram kommen! so far

Delphi-Quellcode:
e
lse begin
           //spielvorgabe:=(StrToInt(LabeledEdit4.Text*(StrToInt(LabeledEdit3.Text) div 131)- StrToInt(LabeledEdit2.Text)+StrToInt(LabeledEdit1.Text);
           a:=StrToInt(lauf.Daten.platzpar);
           b:=StrToInt(LabeledEdit2.Text);
           c:=StrToInt(LabeledEdit3.Text);
           d:=StrToInt(LabeledEdit4.Text);
           x:=trunc(c div 133);
           y:=trunc(d * x);
           z:=trunc(y - b);
           spielvorgabe:=trunc(z + a);
           Memo1.Lines.Text:=('Spielvorgabe:'+#13+'( HCP x (Slope / 133) - CR + Par )'+#13+#13+IntToStr(spielvorgabe));
        end;
der rest des codes is unwichtig, thanx
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: problem bei simpler rechenfunktion...

  Alt 5. Nov 2007, 22:58
Die Lösung liegt doch auf der Hand, eins der Umwandlungen
Delphi-Quellcode:
a := StrToInt( lauf.Daten.platzpar );
b := StrToInt( LabeledEdit2.Text );
c := StrToInt( LabeledEdit3.Text );
d := StrToInt( LabeledEdit4.Text );
geht schief, da eines der Strings nix enthält und nix ist kein Integer

Einfach mal Haltepunkte setzen und schauen...


spontan tip ih mal auf: lauf.Daten.platzpar...

Bye Christian
Christian
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#14

Re: problem bei simpler rechenfunktion...

  Alt 5. Nov 2007, 23:00
ganz einfach, erst mal prüfen ob etwas im string eingegeben wurde und dann prüfen ob es sich um eine gültige zahl handelt (VAL). erst wenn beides in ordnung ist, kannste dann rechnen... <HTH>
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#15

Re: problem bei simpler rechenfunktion...

  Alt 6. Nov 2007, 06:23
Hi
Ganz genau... Im Editfeld steht kein Zahlenwert. Vermutlich hast du die Vorbesetzung der Eigenschaft Text im Objektinspektor (fast immer der Name des Editfeldes) nicht mit 0 überschrieben und deine Berechnung wird in irgendeinem Ereignis aufgerufen, oder du rufst die Berechnung in Create der Form auf.
Edit Vergeßt diesen Beitrag. Die Fehlermeldung deutet auf einen leeren String.
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: problem bei simpler rechenfunktion...

  Alt 6. Nov 2007, 06:47
-Nimm TryStrToInt() oder Val() statt StrToInt()
-überprüfe vorher auf Richtigkeit, der Eingabe
-nimm nen MaskEdit, ...
Markus Kinzler
  Mit Zitat antworten Zitat
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#17

Re: problem bei simpler rechenfunktion...

  Alt 6. Nov 2007, 17:56
also danke erstmal an eure vielen ratschläge, aber leider haben sie mir nicht weitergeholfen... ich habe es spaßeshalber mal extern meines bisherigen programms (komplett neue alles..) ausprobiert! ich wandle lediglich die eingaben aus den 4 feldern in integerwerte um, dann verrechne ich sie wie angegeben und will dies als eine integer variable gespeichert kriegen. dann hab ich euren tipp mit round(..) angewandt, da ansonsten logischerweise nix richtiges zustandekommen kann... aber auch dabei ist nix richtiges rausgekommen! als ergebnis speichert er mir immer eine 1 ab, was allerdings absolut nicht hinkommt! ich werde euch nun einmal ein beispiel geben:

Feld1: 72
Feld2: 69
Feld3: 121
Feld4: 28

diese 4 werde sind in den feldern und werden korrekt in integer umgewandelt. jetzt sollen die werte wie folgt verrechnet werden:

(Feld4 * (Feld3 div 133)) - Feld2 + Feld1

die klammern sind nur dazu da, um jegliche fehlerquellen auszuschließen! trotzdem dass ich es eigentlich richtig geklammert habe und alles, kriege ich kein richtiges ergebnis raus! KOTZ :X meine bitte daher:

wie löst ihr dieses problem?! und wenn eure lösung eine komplett andere ist, als mein herangehen, dann bin ich auch glücklich, solange es funktioniert!! HELP PLS
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: problem bei simpler rechenfunktion...

  Alt 6. Nov 2007, 18:02
Was kommt raus und welches Ergebnis erwartest du?
Markus Kinzler
  Mit Zitat antworten Zitat
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#19

Re: problem bei simpler rechenfunktion...

  Alt 6. Nov 2007, 18:05
wie ich oben geschrieben habe, spuckt er mir als ergebnis eine 1 aus... wenn man nach meinen angaben rechnen würde, müsste eigentlich 28,4736...rauskommen, wegen round funktion dann halt nur noch 28! aber nix dergleichen findet da statt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: problem bei simpler rechenfunktion...

  Alt 6. Nov 2007, 18:11
Du weisst aber das 121 DIV 133 0 ergibt?
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 22:59 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