Goos Geschrieben 8. August 2005 Geschrieben 8. August 2005 Also was du in deimem Code da machen willst versteh ich nichtmal ansatzweise Bei deinem itoa hast als Radix wohl 10 oder 16 vermut ich mal. Wieso brauchst aber das itoa, wenn du doch eh schon einen Character hast? Vielleicht solltest versuchen etwas uebergeordneter zu beschreiben, was du machem willst Goos Zitieren
Cos Geschrieben 8. August 2005 Autor Geschrieben 8. August 2005 ich fühle mich so doof. keiner versteht mich, aber ich ´versuchs mal zu erklären. ich denke ich mach es zu kompliziert. //Chunk Size auslesen if (j == 0x437 && value == 0x21d ) // Readout der Datei (XML-Datei). Programm das die Chunk Size erreicht ist { for (unsigned int iii = 0; iii < a-(b+bb+1); iii++) // Die For-Schleife bringt das fgetc zum aktuellen Punkt durch die Schleifenzähler a , b, bb c = fgetc(file); //Nimmt den Wert der in dem XML-File steht, die erste Zahl bb = 0; //Nullen des Schleifenzähler for( ;c != '_' //Wenn das _ erreicht ist dann ist die Ausgabe der ChunkSize beendet { b = a; fprintf(head, "%c", c);//Schreiben der ersten Zahl in die Datei Head c = fgetc(file);//Nächsten char einlesen bb++; } } [/code] Und nun ist die Zahl die gelesen wird eine variable Zahl in ihren Stellen, also sie könnte 400 000 sein oder auch 4 000 000 also wollte ich sie in ein 10-stellen array schreiben und zusammen addieren lassen das dann die komplette Zahl in einer ausgabe steht. Also out[10] = {4,8,6,1,8,8} diese soll dann 486188 sein und später als Ascii in eine andere Datei geschrieben werden. Quasi so " ". Hoffe das war bissl besser erklärt. Zitieren
Goos Geschrieben 8. August 2005 Geschrieben 8. August 2005 ich fühle mich so doof. keiner versteht mich, aber ich ´versuchs mal zu erklären. ich denke ich mach es zu kompliziert. Jau, denk ich auch Wieso nimmst denn nicht deine XML-Klassen? Damit wirds echt etwas einfacher (is zumindest meine Meinung) Wenn dein Auslesen allerdings funktioniert, dann -> ok warum nicht Und nun ist die Zahl die gelesen wird eine variable Zahl in ihren Stellen, also sie könnte 400 000 sein oder auch 4 000 000 also wollte ich sie in ein 10-stellen array schreiben und zusammen addieren lassen das dann die komplette Zahl in einer ausgabe steht. Also out[10] = {4,8,6,1,8,8} diese soll dann 486188 sein und später als Ascii in eine andere Datei geschrieben werden. Quasi so " ". Hoffe das war bissl besser erklärt. In jedem Fall hast dann mal dein out[10] Array gefuellt. Dein 4,8,6,1,8,8 darin is dann doch ansich schon genug ASCII, aber ich vermute mal, dass du da jetzt genau rueckwaertsrechen willst und den Wert deshalb als Zahl haben magst. Dafuer kannst dann gerne atoi nehmen. Dein itoa macht genau das Gegenteil und wandelt Integer nach String. Goos Zitieren
Guybrush Threepwood Geschrieben 8. August 2005 Geschrieben 8. August 2005 ich fühle mich so doof. keiner versteht mich, aber ich ´versuchs mal zu erklären. ich denke ich mach es zu kompliziert. Das liegt aber auch daran das deine Codefragmente einen ziemlich wirren und ekligen Programmierstil zeigen. Du solltest auf jeden Fall davon abkommen deine Variablen bb oder iii zu nennen. Du wirst zwar in den meisten Programmen einfache Zählvariablen i oder j oder so finden aber soblad die weiter genutzt wird bzw. mehrere an einer Stelle, wird es sehr unübersichtlich Also out[10] = {4,8,6,1,8,8} diese soll dann 486188 sein und später als Ascii in eine andere Datei geschrieben werden. Quasi so " ". Hoffe das war bissl besser erklärt. Was verstehst du unter "als Ascii schreiben"? Dein Beispiel würde bedeuten das Ascii Zeichen für einen Wert in die Datei zu schreiben. Also für den Wert 65 ein 'A', allerdings enthält die Asciitabelle bei weitem keine 486188 Zeichen sondern "nur" 255. Zitieren
Cos Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 @ Guybrush Du hast Recht dass das mit den iii ziemlich ekelig ist, das wird später auch noch geändert, das hier ist alles ja noch im Entwicklunsstadium, iii wird später Valuecounter oder so ähnlich, da muss ich mir noch was passendes überlegen. Das Ziel dieser Zahl 416886 ist sie blockweise sprich, 41 68 86 in hex zu wandeln und dann in eine Datei zu schreiben, das sie dann so aussieht wie wenn man sie eine datei im editor öffnet. Dieser Teil wird dann in eine andere Datei an den Anfang geschrieben. deshalb brauche ich sie als eine Ascii reihe. Momentan liegt sie so vor: RIFF6144036WAVEfmt 161248000192000416cue 520000000000000000000000000000000000000000000000000000000100data6143932 und ausehen soll sie dann so: RIFFÀ] WAVEfmt €Â» î cue 4 data¼¿] Wobei zu berücksichtigen ist das zum Beispiel die zahl 6144036 nach dem Riff als little endian geschrieben wird... Erläuterung 6144036 = 5D C0 24 - 8 (nötiger Rechenalgorithmus) = 5D C0 1C --> 1C C0 5D 00 und das ergibt dann als Ascii À] . und das versuche ich zu machen. frag bitte nicht wieso und welcher sinn dahinter steckt, das würde ewig dauern das halbwegs plausibel zu erklären Zitieren
Cos Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 Also das mit den Zahlen auslesen habe ich klären können. nun muss ich aber die Hex-Zahl 00 07 6b 24 ausgeben. Und zwar würde ich sie gerne Byteweise spirch 00 --> 07 --> 6b --> k 24 --> $ ausgeben. Das würde ja auch klappen wenn ich die Zahl 00 07 6b 24 in ein 4-Byte-Array schreiben könnte. Weiß jemand wie das geht? Also es soll dann result[0] = 00 ; result[1] = 07 ; result[2] 6b ; result[3] = 24 sein. Dann kann ich sie mit frpintf eizeln ausgeben. Leider funktioniert es nicht mit result[4] = 00 07 6b 24... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.