[...]



  • [...]


  • Mod

    Wieso immer diese Buffer? Lies doch direkt in die Variablen, wo das Ergebnis hinein soll.

    Nehmen wir einmal an std::string enthält die aktuelle Zeile. Mit string:c_str() bekomme ich die C-Repräsentation. Mit der Array-Syntax kann ich nun wunderbar auf die einzelnen Bytes zugreifen. Gibt es hier noch schönere Alternativen?

    😕 Indem du c_str einfach weg lässt? string hat doch einen operator[].

    Kann ich das auch irgendwie direkt nach uint32_t casten?

    Vielleicht. Kommt eben drauf an, wie ein uint32_t intern aussieht. Auf vielen üblichen Systemen (x86) wird ein 32-Bit Integer intern ein anderes Layout haben, als das was du hier in deiner Zeichenkettenrepräsentation benutzt.



  • Hallo Elementus,

    Elementus schrieb:

    Ich lese mit std::getline eine Datei zeilenweise ein und speichere das Ergebnis als std::string in einem Vektor. Später möchte ich diese Zeilen dann verarbeiten, d.h. jede Zeile Byte für Byte durchgehen und mit den ausgelesenen Daten etwas tun.

    "Einlesen" bedeutet, dass man eine Folge von Zeichen aus einer Datei oder sonst wo her in einen Wert innerhalb seines Programms verwandelt, mit dem man auch was anfangen kann. Zum Beispiel eine Variable vom Typ 'int' oder ein Objekt.
    Das was Du machst, ist kein 'Einlesen' sondern das Kopieren von Zeichen aus einer Datei in Zeichen im Speicher. Damit hast Du nichts gewonnen.

    Liegen die Daten in einem binären Format vor? - dann wäre getline nicht nur ungünstig, sondern schlicht fehlerhaft. Oder liegen die Datei in 'lesbarer' Form vor - kannst Du sie mit einem einfachen Texteditor sehen? Dann wiederum wäre das Byte-weise zusammensetzen falsch.

    Wie sieht das Format in Deiner Datei aus und welche Werte - also Variablen - benötigst Du in Deinem Programm?

    Gruß
    Werner



  • [...]



  • Elementus schrieb:

    @Werner Salomon: Was spricht denn gegen das Kopieren der Zeichen in den Speicher um diese dann anschließend weiterzuverarbeiten?

    Was spricht dagegen die Einkäufe vom Supermarkt aus der Tasche zunächst in eine Kiste zu packen, um sie anschließend in die richtigen Fächer einzuräumen?



  • Elementus schrieb:

    @Werner Salomon: Was spricht denn gegen das Kopieren der Zeichen in den Speicher um diese dann anschließend weiterzuverarbeiten?

    Es ist schlicht unnötig.

    Poste doch mal einen Ausschnitt aus der Datei und erzähl' uns, was Du davon benötigst. Bzw. wie sieht so ein 'Datensatz' aus?


Anmelden zum Antworten