Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Bug ?! Kategorie: Programmierung (von Jörg - 10.12.2004 8:27)
Als Antwort auf Re: Bug ?! von Hansi - 9.12.2004 14:26

Hi Hansi.

Hat natürlich was der Ansatz mit Byte und Long Variablen.
Ist bestimmt sicherer erst mit: tempvar = (getchar(faktor, 8) - 48);

(ev. besser noch:
tempbyte = (getchar(faktor, 8) - 48);
tempvar = tempbyte; und weiterrechnen)

die Typ-Konvertierung durchzuführen und dann zu rechnen.

Unlogisch ist dabei eigentlich nur der Effekt, dass es 7x klappt und 1x nur bei Byte-Wert 48 - 51.

Jörg



>
> Hallo Jörg,
>
> die Funktion getchart() liefert Dir Integer / Byte zurück und Deine Berechnungen nutzen
> den Typ long.
>
> Ã?bergebe vor Deinen Berechnungen den Wert von getchar() an eine long-Variable und
> rechne damit weiter oder la� von getchar() ein Typ long zurück geben, dann sollte es
> klappen.
>
> GruÃ? Hansi
>  
>
> > Effekte, welche 5h Fehlersuche zur Folge haben:
> >
> > --------------------------------------------------------------------------
> >
> > function getchar(byte s[], int position) returns byte
> > {
> >  return s[position];
> > }
> >
> > function para3(long kafaktor) returns long
> > {
> >  string faktor;
> >  long tempvar;
> >
> >  faktor = "K-Fa:00000000";
> >
> > // ... Benutzereingabe des K-Faktors
> >
> >  kafaktor = 10000000 * (getchar(faktor, 5) - 48);
> >  tempvar = 1000000 * (getchar(faktor, 6) - 48);
> >  kafaktor = kafaktor + tempvar;
> >  tempvar = 100000 * (getchar(faktor, 7) - 48);
> >  kafaktor = kafaktor + tempvar;
> >  
> >  tempvar = (getchar(faktor, 8) - 48);
> >  tempvar = tempvar * 10000;
> > // funktioniert immer
> >
> > // tempvar = 10000 * (getchar(faktor, 8) - 48);
> > // funktioniert nicht, wenn (getchar(faktor, 8) - 48) einen Wert > 3 liefert
> > // --- ??? ---
> >
> >  kafaktor = kafaktor + tempvar;
> >  tempvar = 1000 * (getchar(faktor,9) - 48);
> >  kafaktor = kafaktor + tempvar;
> >  tempvar = 100 * (getchar(faktor,10) - 48);
> >  kafaktor = kafaktor + tempvar;
> >  tempvar = 10 * (getchar(faktor,11) - 48);
> >  kafaktor = kafaktor + tempvar;
> >  tempvar = (getchar(faktor,12) - 48);
> >  kafaktor = kafaktor + tempvar;
> >
> >  return kafaktor;
> > }
> >
> > -------------------------------------------------------------
> >
> > Jemand 'ne logische Erklärung dafür?
> >
> > Ein fast wahnsinnig gewordener
> > Jörg


    Antwort schreiben


Antworten:

Re: Bug ?! (von Hansi - 10.12.2004 9:43)
    Re: Bug ?! (von Jörg - 10.12.2004 10:13)
        Re: Bug ?! - kein Bug ! (von André H. - 19.12.2004 14:21)
        Re: Bug ?! (von Hansi - 10.12.2004 12:32)
            Re: Bug ?! (von Jörg - 13.12.2004 10:05)
                Re: Bug ?! (von Thomas - 14.12.2004 14:36)
        Re: Bug ?! (von krassos - 10.12.2004 11:22)