Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » datei einlesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
01.02.2006, 22:18 Uhr
Antialc



LOL

Habs mir mal im Hex angeschaut. Das Ergebnis war schon irgendwie lustig. Ganz am Anfang der Datei steht ein FF FE. Das sollte schon mal nicht sein.
Und dann steht nach JEDEM Byte(Zeichen) ein 00 (HEX).

Das mit dem Zeilenumbruch erklär ich mir so.
Ein Zeilenumbruch ist ja ein 0D0A. So steht es jedenfalls bei einer "korekten" Textdatei.
Bei dieser heißt es dann durch diese lustige Formatierung 0D 00 0A 00. Ich denke damit kommt die Konsole net zurecht.

Weis net ob des dann noch mit binär einlesen geht, bzw. ob des dann funzt. Eine Alternative von mir wäre einfach alles in ein char Array zu kloppen und dann jedes zweite Byte zu kicken (bzw. Jedes zweite Zeichen nur einzulesen)^^. Holzhammermethode, müsst aber funktionieren .
--
Microsoft Visual C++.NET Version 7
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
01.02.2006, 23:21 Uhr
Bruder Leif
dances with systems
(Operator)


Das klingt für mich nach 16-Bit-Unicode. 0xfeff ist vielleicht eine Kennung, nach dem Motto "ach übrigens, ich bin eine xyz-Datei". Poste doch mal einen Ausschnitt aus dem Ding, vielleicht meldet sich plötzlich einer, der sowas schon mal gesehen hat...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
02.02.2006, 02:45 Uhr
Hans
Library Walker
(Operator)



Zitat von Antialc:
LOL

Habs mir mal im Hex angeschaut. Das Ergebnis war schon irgendwie lustig. Ganz am Anfang der Datei steht ein FF FE. Das sollte schon mal nicht sein.
Und dann steht nach JEDEM Byte(Zeichen) ein 00 (HEX).

Das mit dem Zeilenumbruch erklär ich mir so.
Ein Zeilenumbruch ist ja ein 0D0A. So steht es jedenfalls bei einer "korekten" Textdatei.
Bei dieser heißt es dann durch diese lustige Formatierung 0D 00 0A 00. Ich denke damit kommt die Konsole net zurecht.

Weis net ob des dann noch mit binär einlesen geht, bzw. ob des dann funzt. Eine Alternative von mir wäre einfach alles in ein char Array zu kloppen und dann jedes zweite Byte zu kicken (bzw. Jedes zweite Zeichen nur einzulesen)^^. Holzhammermethode, müsst aber funktionieren .


Hi,

da hab ich mit meiner Vermutung von 16-Bit-Zeichen ja gar nicht so sehr daneben gelegen. Das sieht mir nämlich auch sehr stark nach einem 16-Bit Zeichensatz aus. Ob es Unicode oder etwas anderes ist, musst Du noch weiter erforschen. Da schliesse ich mich dem Bruder Leif an, und empfehle, hier mal einen Hexdump aus einer betreffenden Datei zu posten. Am besten vom Anfang, so die ersten 256 bis 512 Bytes. Damit lassen sich die meissten Dateiformate bereits identifizieren.
Übrigens: die vielen Nullbytes in der Datei haben nichts mit Formatierungen zu tun, wenn es sich um 16-Bit-Zeichen handelt. Es ist nur so, das der Standard ASCII Zeichensatz meisst auch in den ersten 256 Zeichen eines 16-Bit Zeichensatzes enthalten ist. Da man die oberen 8 Bit dabei aber nicht braucht, haben sie den Wert Null.

Was Deine Holzhammermethode betrift: Das wird für die Konsolenausgabe wohl funktionieren, aber wenn du die Datei so änderst und wieder abspeicherst, wird sie das erzeugende Programm nicht mehr lesen können. Ach ja, und dann würde ich noch testen, ob das jeweils zweite Byte auch tatsächlich ein Nullbyte ist, sonst kommt bei Deiner Ausgabe sehr wahrscheinlich auch wieder nur Schrott heraus.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 02.02.2006 um 02:57 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: