Ergebnis 1 bis 2 von 2

Thema: C++ Datei Byteweise einlesen: Klasse gesucht!

  1. #1

    Standard C++ Datei Byteweise einlesen: Klasse gesucht!

    Ich bin zzt. dabei, in C++ ein simples Programm zu schreiben, das Dateien mittels Passwort ver- und entschlüsseln kann.

    Nun suche ich eine Möglichkeit, eine Datei einzulesen. Ich muss auch angeben können, in welchem Bereich die Datei eingelesen wird. (z.B. Byte 0-255, 256-511, etc.)
    Weiterhin muss ich die Bytes in z.B. ein Char-Array schreiben können. Soweit ich weiß, gibt es dafür Funktionen in den jeweiligen Klassen.

    Gleichzeitig muss das alles auch in die andere Richtung fuktionieren: Vom Char-Array zum Datei-Objekt zur Datei

    Ich habe bereits intensiv gegoogle'd, konnte aber nichts finden, was mit explizit weiterhilft.
    Ich weiß, dass ich eine Klasse wie z.B. fstream oder FILE benutzen kann.

    Ich würde mich freuen, wenn mir jemand anhand einer geeigneten Klasse mithilfe von Beispielen die Syntax der von mir benötigten Funktionen erklärt.

    Vielen Dank schonmal im Vorraus!
    "Counterstrike" ist ein Machwerk des Teufels und gehört verboten.

  2. #2
    €r!k
    Avatar von €r!k

    Standard AW: C++ Datei Byteweise einlesen: Klasse gesucht!

    Bau dir doch selbst eine Klasse.
    Als Member-Variable gibst du ganz klassisch ein z.B. FILE *stream an.

    Zum öffnen bauste die Funktion, kannst die auch als Constructor nehmen:
    Code:
    bool OpenFile(const char *fileName)
    {
      if ((stream=fopen(fileName, "rt")) == 0)
        return false;
    }
    Zum lesen deiner beliebigen Bytes:
    Code:
    bool WriteFromTo(const long offset, const long count, char *array)
    {
      if (fseek(stream, offset, 0)==-1)
        return false;
    
      array=new char[count];
      char c;
      for(long i=0; i<count; i++)
        if ((c=fgetc(stream))!=EOF)
          array[i]=c;
        else
          return true;
    }
    Das ließt dir jetzt in dein Array count Bytes ein. Dabei ist hier vorausgesetzt, dass du das Array vorher zwar angelegt hast, aber ohne ihm Speicher zuzuweisen!
    Der Weg in die andere Richtung funktioniert ähnlich mit fputc. Kannst du dir ja mal selbst überlegen. Zur Erklärung der Funktionen gibt es bei Google sicher die ein oder andere Dokumentation.
    Du darfst auch nicht vergessen die Datei irgendwann mit fclose zu schließen.
    Der Code kann übrigens Fehler enthalten, habe schon bald ein Jahr lang kein C mehr geschrieben.

    Übrigens ein wenig aufpassen mit diesem Klassenzeug. Es wird zwar als toll gepriesen, führt aber einiges an zusätzlichem Speicheraufwand mit sich herum und verlangsamt daher (natürlich nur bei großen Programmen spürbar).
    Geändert von €r!k (06.01.2014 um 05:13 Uhr)

  3. Folgender Benutzer sagt Danke zu €r!k für den nützlichen Beitrag:


Ähnliche Themen

  1. .ico Datei
    Von Frostdead im Forum Digital Arts
    Antworten: 3
    Letzter Beitrag: 24.11.2009, 19:20
  2. Antworten: 13
    Letzter Beitrag: 28.02.2009, 10:33
  3. Elisabeth Kampfkreuzer der Klasse I
    Von Narsiph im Forum Contraptions
    Antworten: 13
    Letzter Beitrag: 08.07.2008, 01:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •