Zum Inhalt springen

Cos

Mitglieder
  • Gesamte Inhalte

    119
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Cos

  1. Cos

    Whitspace

    char Buffer[4]; char* pBuffer = Buffer; unsigned int outxml; ifstream Header("eingabe.wav", ios::in|ios::binary); ofstream XMLFile("header.xml"); // Erste und zweite Zeile schreiben XMLFile<<"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; XMLFile<<"<RiffWaveHeader>\n"; // RIFF schreiben Header.read(pBuffer, 4); XMLFile.write("<RIFF value=\"", 13); XMLFile.write(pBuffer, 4); XMLFile.write( "\"/>\n",3); // Filesize schreiben outxml = 0; Header.read(pBuffer,4); XMLFile<<("<LengthOfFile value=\""); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; outxml +=8; XMLFile << outxml<< "_byte\"/>\n"; // WAVE schreiben Header.read(pBuffer, 4); XMLFile.write("<WAVE value=\"", 13); XMLFile.write(pBuffer, 4); XMLFile.write("\"/>\n", 3); // Format Chunk schreiben Header.read(pBuffer, 4); XMLFile.write("<FormatChunk value=\"", 21); XMLFile.write(pBuffer, 4); XMLFile.write("\"/>\n", 3); // ChunkSize schreiben Header.read(pBuffer, 4); XMLFile<<("<ChunkSize value=\""); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "_byte\"/>\n"; // Format schreiben Header.read(pBuffer, 2); XMLFile<<("<Format value=\""); outxml = Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< " [1=PCM]\"/>\n"; //Channels schreiben Header.read(pBuffer, 2); XMLFile<<("<Channels value=\""); outxml = Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "_Ch\"/>\n"; //Sample Rate schreiben outxml =0; Header.read(pBuffer, 4); XMLFile<<("<SampleRate value=\""); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "_Hz\"/>\n"; //Bytes per second schreiben Header.read(pBuffer, 4); XMLFile<<("<BytesSecond value=\""); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "_bytes/second\"/>\n"; //Block Align schreiben Header.read(pBuffer, 2); XMLFile<<("<BlockAlign value=\""); outxml = Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "\"/>\n"; //Bits per Sample schreiben Header.read(pBuffer, 2); XMLFile<<("<Bits-per-Sample value=\""); outxml = Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "_bit\"/>\n"; //Data Chunk schreiben Header.read(pBuffer, 4); XMLFile.write("<DATA value=\"", 13); XMLFile.write(pBuffer, 4); XMLFile.write( "\"/>\n",3); //Laenge des Data Chunk Header.read(pBuffer, 4); XMLFile<<("<DataLength value=\""); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "_bytes\"/>\n"; // XML-File abschließen XMLFile<<("</RiffWaveHeader>\n");
  2. Cos

    Whitspace

    sorry fehler...es kommt nicht ff ff 80 bb raus sondern ff ff ba 80...wo kommt das a her anstatt dem b was eigentlich bei bb sein soll
  3. Cos

    Whitspace

    also die Zahlen stimmen im debugger so lange bis er die zeile outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; abgearbeitet hat. Sie stehen dann richtig in den Buffers drin aber im outxml steht dann das falsche... die +=8 gehören zur Deklaration des Headers laut Standard. das gleiche problem habe ich dann auch paar zeilen tiefer bei... XMLFile<<("<SampleRate value=\""); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; XMLFile << outxml<< "_Hz\"/>\n"; Dort sollte raus kommen 80 bb aber er macht draus ff ff 80 bb obwohl ich vorher outxml auf null setze. Laut Buffer stehen in Buffer[3] und Buffer[2] hex00 drin.
  4. Cos

    Whitspace

    Hallo, habe mal ein verständnisfrage Meine quelldatei weißt folgende Hexzahlen auf 00 0d d4 24 und wenn ich diese zahlen mit diesem code auslese outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; outxml +=8; erhalte ich anstatt dd424 , cd424...wieso? es steht im debugger Buffer[0] 0x24 Buffer[1] 0xd4 Buffer[2] 0x0d Buffer[3] 0x00 ??? verstehe ich nicht....
  5. Cos

    Whitspace

    HAMMER!!! Bis jetzt klappt alles. ich kann das erste mal die Samplerate darstellen:-) Das macht laune auf mehr. Ich hoffe ich darf mich bei dir nochmal melden wenn ich es doch nicht schaffe... Danke
  6. Cos

    Whitspace

    aber leider hat sich nix dran geändert. es funktionert zwar aber bei der sample rate kommt der fehler wieder
  7. Cos

    Whitspace

    und das funktioniert auch mit schreiben in eine andere Datei? Das wusste ich nicht. soll dann so aussehen? _itoa(outxml, str, 10); XMLFile<<(str); XMLFile.write("\"/>\n", 3)
  8. Cos

    Whitspace

    was würdest du denn anders machen wenn man besser nicht binär schreiben soll? und wie?
  9. Cos

    Whitspace

    und das ; hinter Buffer[0] sollte natürlich auch nicht da sein..
  10. Cos

    Whitspace

    oh, die letzte Zeile sollte eigentlich so aussehen. outxml = Buffer[0]; * 0x1000000 + Buffer[1] * 0x10000 + Buffer[2] * 0x100 + Buffer[3]; _itoa(outxml, str, 10); XMLFile.write(str,10); das war eben nur ein Test gewesen. Was das mit Webdesign zu tun hat weiß ich auch nicht, aber das hier ist das einzige Unterforum was sich mit XML beschäftigt...glaube ich...wenn nicht entschuldige ich mich für den falschen Post. Aber funktionieren tuts trotzdem nicht...
  11. Cos

    Whitspace

    Hi, also ich habe mittlerweile einige Daten in die XML-Datei schreiben können. Habe den Code auch geändert, das er nun die benötigten Daten in die XML-Datei schreibt. aber jetzt macht er bei folgendem Code Probleme... char Buffer[4]; char* pBuffer = Buffer; char str[10] = {'\0'}; unsigned int outxml; int i; ifstream Header("header.dat", ios::in|ios::binary); ofstream XMLFile("header.xml", ios::out|ios::binary); // Erste und zweite Zeile schreiben XMLFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", 39); XMLFile.write("<RiffWaveHeader>\n", 17); // RIFF schreiben Header.read(pBuffer, 4); XMLFile.write("<RIFF value=\"", 13); XMLFile.write(pBuffer, 4); XMLFile.write("\"/>\n", 3); //FileSize schreiben for (i = 0; i < 10; i++) str = 0; Header.read(pBuffer,4); XMLFile.write("<LengthOfFile value=\"", 21); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; outxml +=8; _itoa(outxml, str, 10); XMLFile.write(str,10); XMLFile.write("\"/>\n", 3); // WAVE schreiben Header.read(pBuffer, 4); XMLFile.write("<WAVE value=\"", 13); XMLFile.write(pBuffer, 4); XMLFile.write("\"/>\n", 3); // Format Chunk schreiben Header.read(pBuffer, 4); XMLFile.write("<FormatChunk value=\"", 21); XMLFile.write(pBuffer, 4); XMLFile.write("\"/>\n", 3); // ChunkSize schreiben for (i = 0; i < 10; i++) str = 0; Header.read(pBuffer, 4); XMLFile.write("<ChunkSize value=\"", 18); outxml = Buffer[3] * 0x1000000 + Buffer[2] * 0x10000 + Buffer[1] * 0x100 + Buffer[0]; _itoa(outxml, str, 10); XMLFile.write(str,10); XMLFile.write("\"/>\n", 3); // Format schreiben for (i = 0; i < 10; i++) str = 0; Header.read(pBuffer, 2); XMLFile.write("<Format value=\"", 16); outxml = Buffer[1] * 0x100 + Buffer[0]; _itoa(outxml, str, 10); XMLFile.write(str,10); XMLFile.write("\"/>\n", 3); //Channels schreiben for (i = 0; i < 10; i++) str = 0; Header.read(pBuffer, 2); XMLFile.write("<Channels value=\"",17); outxml = Buffer[1] * 0x100 + Buffer[0]; _itoa(outxml, str, 10); XMLFile.write(str,10); XMLFile.write("\"/>\n", 3); //HIER KOMMT DER FEHLER!!! Wenn ich diesen Teil Sample Rate weglasse dann geht die Datei, wenn nicht dann bekomme ich den Error Whitespace... //Sample Rate schreiben for (i = 0; i < 10; i++) str = 0; Header.read(pBuffer, 4); XMLFile.write("<SampleRate value=\"",20); outxml = Buffer[0]; //* 0x1000000 + Buffer[1] * 0x10000 + Buffer[2] * 0x100 + Buffer[3]; _itoa(outxml, str, 4); XMLFile.write(str,4); XMLFile.write("\"/>\n", 3); Eine Idee??
  12. Cos

    Auslesen einer Datei

    hi ihr beiden seid meine helden...es klappt mit einer kleinen schleife die den Buffer jedesmal nullt und umbenennen des a in uint hats geklappt. Aber wenn ich noch einmal was fragen darf. Woher kommt der fehler Required white space was missing. Error processing resource 'file:///C:/Dokumente und Einstellungen/.../header.xml'. Line 3, Position 242 <RIFF value="RIFF"/><LengthOfFile value="486188 in der xml-datei? Der fehler kommt erst nach ein paar Daten die ich reingeschrieben habe. Seltsamerweise liest mir C++ die Daten richtig aus, nur die XML-Datei schreibst nicht... Mein XML-Header ist: XMLFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", 39); XMLFile.write("<RiffWaveHeader>\n", 17); Viele Grüße Cos
  13. Cos

    Auslesen einer Datei

    Aber mit deinem Code habe ich ja statische angaben zu den Chars. Ich habe aber ein Array in dem die Daten stehen. Also muss ich was dynamisches haben.
  14. Cos

    Auslesen einer Datei

    Also es sieht folgendermaßen aus. V (ascii) = 56 " (ascii) = 22, [das hattest du üebrsehen] Leerzeichen nicht DAS Leerzeichen, sondern das was bei h00 kommt wenn man es im editor anschaut. Daraus folgt 22 56 00 00 gelesen little endian, ergbit 22050.
  15. Cos

    Auslesen einer Datei

    Das Problem ist das ich in meiner Datei leider nur Ascii-Zeichen habe und keine Hex-Werte. Ich möchte die Ascii-Zeichen, zu je 4 Bytes oder 2 bytes in eine XML-Datei schreiben. aber ich bekomme sie einfach nicht umgewandelt. zb: "V (sind 2 Leerzeichen hinten dran) = Hexadezimal 22 56 00 00 = Int 22050 "kHz". Verstehst du was ich meine...wie wandle ich das? Und warum macht mein XML-File bei einem Leerzeichen schlapp und lässt das wegfallen. Grüße Jens
  16. Cos

    Whitspace

    char Buffer[3]; char* pBuffer = Buffer; ifstream Header("header.dat", ios::in|ios::binary); ofstream XMLFile("header.xml", ios::out|ios::binary); // Erste und zweite Zeile schreiben XMLFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", 39); XMLFile.write("<RiffWaveHeader>\n", 17); // RIFF schreiben Header.read(pBuffer, 4); XMLFile.write("<RIFF value=\"", 13); XMLFile.write(pBuffer, 4); XMLFile.write("\"/>\n", 3); und das nachste pBuffer enthält das besagte Leerzeichen das mir aber leider nicht mehr dargestellt wird. Hast du eine Ahnung
  17. Cos

    Whitspace

    Hallo, ich habe folgendes Problem. Ich möchte eine Datei auslesen und die Zeichenfolge zu je 4 oder 2 byte in eine XML-Datei schreiben. doch leider schreibt mir mein Programm nur die Bytes in die XML datei die auch mit einem zeichen versehen sind. Soll heißen das er für ein Leerzeichen in der Quelldatei nichts in der XML-Datei einfügt. Ich brauche aber dieses Leerzeichen. Die Quelldatei hat folgenden Inhalt. RIFF$k WAVEfmt "V ˆX data k . Das erste Leerzeichen nach dem ersten Quadrat wird schon nicht mehr geschreieben und nach dem zweiten Quadrat kommt der Fehler Required white space was missing. Error processing <RIFF value="RIFF"/><LengthOfFile value="$k kann mir einer helfen? Danke Grüße Cos
  18. Cos

    Auslesen einer Datei

    1 Byte pro Zahl. Big und Little Endian variieren in dem Header, mal so und mal so. Kurz gesagt, ich möchte die Datei so in einer Textdatei stehen haben so wie sie auf der linken( bei den meisten Editoren) Seite, also Hexzahlen dargestellt werden. Cos
  19. Hallo zusammen, ich möchte gerne eine Datei namens Header.dat in der 44 Bytes enthalten sind in eine andere Datei schreiben. Diese Datei soll die 44 Bytes jedoch als pure Hexadezimalzahlen enthalten oder als Dezimal, das ist egal. Kann mir jemand helfen? Danke Grüße Cos

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...