Hallo, ich habe mit einem C-ähnlichen Programm mit FWrite eine Datei erzeugt wo 20 Messwerte drinnen stehen sollen. Jetzt wollte ich mit einemC- Programm den Inhalrt auslesen und habe lauter kryptische zeichnen bekommen. Ich habe die Datei angehängt. Weiß von Euch jemand wie man die Datei aufmachen kann und damit die Messwertenoch unverändert drinnenstehen oder gibts ein C- Programm welches irgendwelche Zahlen nicht in den ASCII- Code umwandelt Vielen Dank für Eure hilfe lg
Das ist ein recht einfaches Binärformat, wie dieser Hexdump zeigt: 00000000 09 23 04 C3 22 FB 04 C3 D2 FD 05 C3 06 CB 00 C3 00000010 9E 74 09 C3 4C E4 01 C3 67 A7 02 C3 39 B4 08 C3 00000020 9B E4 02 C3 2C C2 05 C3 27 1A 04 C3 95 1D 00 C3 00000030 98 80 0A C3 F2 00 02 C3 C8 B5 FE C2 78 89 08 C3 00000040 6F 49 00 C3 10 E3 06 C3 9C DD FF C2 A1 03 08 C3 Anscheinend ist jeder der Werte ein 32-Bit-Floating-Point-Wert, Du musst die Werte nur in dieser Form einlesen. Hier mal die ersten drei Werte: -132.13 -132.98 -133.99 Haut das hin?
Ja das haut hin -Super!!!! Ich bräuchte noch ein C- Programm, welches mir die werte in *.cvs- format ausgibt. Ist das möglich und gibts da so ein Programm. Vielen Dank lg Eder
Das ist nicht schwer. Datei aufmachen FILE* datei; float wert; datei = fopen("dateiname", "r"); if (!datei) { // Fehlerbehandlung } float-Werte in Schleife aus Datei lesen: while (fread(&wert, sizeof (float), 1, datei) == sizeof (float)) { // wert wie auch immer ausgeben printf("Wert %f\n", wert); } Datei schließen fclose(datei);
Hallo , Noch eine kurze Frage: ich hab jetzt den Code geschrieben und zwar:#include <stdio.h> #include <stdlib.h> FILE* dateimesswerte; float wert; int main(void) { dateimesswerte = fopen("F:\\Messwert1", "r"); if (!dateimesswerte) { printf("Fehler im System"); } /* float-Werte in Schleife aus Datei lesen:*/ while (fread(&wert, sizeof (float), 1, dateimesswerte) == sizeof (float)) { // wert wie auch immer ausgeben printf("Wert: %f\n", wert); } fclose(dateimesswerte); } Ich compilier das Programm mit Dev-C++ und führe dann die .exe Datei im Command- Fenster aus aber es wird nichts ausgegeben. Hättest du noch einen tipp was Falsch ist. vielen Dank!!!!! lg
"nichts ausgegeben" => landet das Programm denn in der Fehlerbehandlung (Deine Textmeldung "Fehler im System") ? Bau dir mal vor, in und nach der While_Schleife noch ein paar printf() rein damit du siehst was da passiert
Hallo, Ich habe keine Fehlermeldung bzw. es wird nicht "Fehler im System" ausgegeben. Es wird das .exe Programm ausgegeben aber es wird nichts ausgegeben aber in der auszugebenden Datei müßte was sein. Was kanns da haben? Vielen Dank für Eure Hilfe. lg
> dateimesswerte = fopen("F:\\Messwert1", "r");
Sollte das am Ende nicht "rb" sein?
hallo, Ich habs geschafft und möchte mich sehr herzlich bei euch bedanken für die sehr sehr konstruktiven beiträge. Das ist wirklich ein super Forum. Vielen dank lg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.