003
18.04.2009, 22:50 Uhr
Hans
Library Walker (Operator)
|
Zitat von ~Jann: |
1. versuche ich es über einen Buffer ->hierbei kann ich immer nur das gleiche einlesen (den Anfang).. also es rückt nicht weiter?
|
Das ist bei dem geposteten Code auch vollkommen korrekt; der ist so geschrieben, das nur die ersten zwei Bytes gelesen werden.
Zitat: |
2. ich lese Zeichenweise(Byteweise denke ich??) -> damit kann ich bilder jedoch nicht einlesen..es bleibt ebenfall immer an der gleichen stelle stehen?? bei text funzt es jedoch und ratter durch!
|
ich kenn mich mit den C++ streams leider nicht wirklich aus, aber ich denke, das eigentliche Problem sind da auch nicht die streams, sondern die Unterscheidung zwischen Textdateien und Binärdateien. Textdateien enthalten dabei nur solche Bytes, denen ASCII-Codes oder Uni-Code-Symbole zugeordnet werden können, sonst nichts. In Binärdateien kann dagegen alles mögliche drin stecken. Da ist man als Entwickler selber für die Interpretation verantwortlich. Im Falle von Bildern muss man wissen, wie Bilddateien aufgebaut sind, und was die einzelnen Bytes zu bedeuten haben. - Oder man ruft fertige Funktionen auf, die einem diese Arbeit abnehmen...
Ein weiteres Problem ist die Art, wie man Daten einliesst. Das kann man Byteweise, Zeilenweise oder auch Blockweise machen. Der Unterschied ist jeweils: Byteweise: Man liesst jedes Byte einzeln, das hat den Vorteil, das man es sofort irgendwie weiter verarbeiten kann, dauert aber auch seine Zeit. Zeilenweise: Ist für spezielle Textdateien sinnvoll, wo man weis, das eine Zeile eine bestimmte Länge nicht überschreitet. Blockweise: Dabei liesst man immer eine festgelegte Anzahl an Bytes in einen Puffer. Anschliessend kann man diesen Datenblock "am Stück" verarbeiten. Wenn man damit fertig ist, holt man sich den nächsten Block.
Welche Art des einlesens dabei am sinnvollsten ist hängt vom jeweiligen Problem ab, d.h. von den Daten, die man verarbeiten will. Im Zweifelsfall hilft da nur ausprobieren, was am schnellsten ist.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |