Zitat:
Jede Datei, die ich einlese, ist Textbasiert.
nein. mit meinem aufruf
fhd=open(dateiname,"rb");
habe ich eine binär datei lesend geöffnet - das b im aufruf ist der indikator.
Zitat:
Wenn man ein solche Datei mit einem Texteditor einliest, soll nicht ein Text kommen, sondern irgendein Kauderwelsch, fast sowas was rauskommt, wenn man versucht ein *.doc mit Editor zu öffnen.
naja - dann speicherst du eben in diese datei (dann natürlich schreibend öffnen) einfach deine strings oder einzelne zeichen/werte. zeichen/werte wäre dann mit einem texteditor so nicht wirklich zu lesen, wenn die werte ausserhalb der ascii tabelle für normale buchstaben liegen.
die strings sind natürlich weiterhin zu lesen, denn c strings sind im ansi c normalerweise im ascii format. wenn du die strings vorher in utf-16 oder utf-32 oder einen anderen, nicht trivialen code (utf ist hier triviel, da zeichen, die keine sonderzeichen sonderzeichen sind dem ascii code entsprechen) umwandelst, wird ein eifacher texteditor auch hier nichts mehr lesen können. dafür gibts natürlich bibliotheken.
Zitat:
Was ist ein ID3-Tag?
id3 tagZitat:
Was ist ein data aligment?
data alignmentZitat:
Was ist mit Codec gemeint?
codecZitat:
Hat denn nicht jede Datei eine Datenstruktur?
da hast du natürlich recht - strengnenommen schon. ich wollte jedoch zwischen inhalt und form unterscheiden.
so ist bei mir also inhalt=datenstruktur und form=format.
das ist natürlich nicht richtig, aber es erschien mir im kontext passend.
so also zum format:
die anordnung und übergeordnete bedeutung von daten innerhalb einer datei.
so z.b. definierst du am anfang deines "formates" 5 felder (byte): das erste für das magicbyte des formates, das 2. für die versionsnummer, das 3 reserviert für spätere verwendung, das 4. die länge des payloads - des nutzbereiches - der eigentlichen daten.. nenn es wie du willst und das 5. feld für die art des payload.
danach folgen eben diese daten und danach noch als anhängsel eine prüfsumme mit was weiß ich vielleicht 4 byte.
so das wäre also ein format (es ist ein dummes format, da nachträgliche änderungen schwierig, feste felder, feste feldgrößen und cecksumme am ende ist auch an dummheit nicht zu übertreffen) . es sagt in so fern nicht über die nutzdaten aus, es dient nur der verwaltung. es ist auch nicht selbsterklärend, sondern man muss "wissen" was die einzelnen felder bedeuten. deshalb siehst du auch nur quatsch, wenn du wie du sagst eine .doc datei öffnest - der texteditor weiß NICHTS über das format.
eine dateiendung ist irrelevant, kann aber gerne nach tagesform vergeben werden.
zur datenstruktur:
die enthaltennen nutzdaten können nun mithilfe der im "format" angegebenen metainformationen (bei uns zb. feld 5 und checksumme) interpretiert werden. so z.b. könne es ein binärbaum sein, oder ein feld, eine liste oder nur ein hash.. es könnte aber auch ein mpeg4 codierter film sein, und feld 5 sagt es ist mit divx codiert - dann brauchst du also zum verarbeiten der nutzdaten einen divx decoder, oder encoder - kurz codec.
all das hab ich mir jetz ausgedacht um dir zu zeigen: du kannst dir auch allen möglichen quatsch ausdenken bzgl. eines formates (meinetwegen mit der endung .tbyte), aber eine datenstruktur wirst du eher nicht "erfinden", zumindest keine zweckmäßige.. da suchst du dir halt was aus, was es schon gibt. wenn es eben einfache c strings im ascii format sind, ist das doch nicht schlimm, nur weil ein texteditor das lesen könnte..