untread
Erfahrenes Mitglied
Hi,
hab leider ein Problem mit der Datenkonvertierung:
Ich selektiere HEX Werte aus einer Textdatei und zwar die sel5 und sel6 .
Jetzt wandle ich diese in eine Integer Zahl um.
die Zahl itemp[j] und die Zahl itempkomma[j] sollen zum ergebnis temperatur[j] zusammengefügt werden.
eigentlich sollt das Ergebnis vom Typ float sein jedoch gibt er mir da eine 0 aus wenn ich schreibe
wenn ich temperatur[i] als int definiere dann addiert er mir die Zahl richtig aber ohne Kommastellen.
wäre nett wenn man mich auf den Fehler aufmerksam machen könnte
mit freundlichen Grüßen
Harry
hab leider ein Problem mit der Datenkonvertierung:
Ich selektiere HEX Werte aus einer Textdatei und zwar die sel5 und sel6 .
Jetzt wandle ich diese in eine Integer Zahl um.
die Zahl itemp[j] und die Zahl itempkomma[j] sollen zum ergebnis temperatur[j] zusammengefügt werden.
eigentlich sollt das Ergebnis vom Typ float sein jedoch gibt er mir da eine 0 aus wenn ich schreibe
Code:
temperatur[j] = itemp[i]+itempkomma[j]*1/10000;
wäre nett wenn man mich auf den Fehler aufmerksam machen könnte
mit freundlichen Grüßen
Harry
Code:
// Werte aus Textdatei einlesen
CStdioFile file("datei.txt",CFile::modeRead);
CString temp = _T("");
CString str = _T("");
int j=0;
int max=0;
float temperatur[100];
float gesamt=0;
float durchschnitt=0; // Durchschnittswert
float minimum=100000; // Minmum Wert
float maximum=-100000; // Maximum Wert
int itemp[1000];
int itempkomma[1000];
char ctemp[20];
char ctempkomma[20];
while(file.ReadString(temp) != NULL)
{
int n1 = temp.Find("|",0);
int n2 = temp.Find("|",n1+1);
int n3 = temp.Find("|",n2+1);
int n4 = temp.Find("|",n3+1);
int n5 = temp.Find("|",n4+1);
int n6 = temp.Find("|",n5+1);
int n7 = temp.Find("|",n6+1);
CString sel1 = temp.Mid(n1+1, n2-1);
CString sel2 = temp.Mid(n2+1, n3-(n2+1));
CString sel3 = temp.Mid(n3+1, n4-(n3+1));
CString sel4 = temp.Mid(n4+1, n5-(n4+1));
CString sel5 = temp.Mid(n5+1, n6-(n5+1));
CString sel6 = temp.Mid(n6+1, n7-(n6+1));
sscanf(sel5,"%X",&itemp[j]);
sprintf(ctemp,"%X",itemp[j]);
sscanf(sel6,"%X",&itempkomma[j]);
sprintf(ctempkomma,"%X",itempkomma[j]);
temperatur[j] = itemp[j] + itempkomma[j];
//gesamt = gesamt + temperatur[j];
// Minimum berechnen
if(temperatur[j]<=minimum)
{
minimum=temperatur[j];
}
// Maximum berechnen
if(temperatur[j]>maximum)
{
maximum=temperatur[j];
}
j++;
max=j;
}