Zum Inhalt springen

Auslesen einer Datei


Cos

Empfohlene Beiträge

Also was du in deimem Code da machen willst versteh ich nichtmal ansatzweise :D

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ 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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...