Icon Ressource

Ressource [C] CSV Parser 1.4

german

Aktives Mitglied
devCommunity-Experte
german erstellte eine neue Ressource:

[C] CSV Parser - Deserialisierung von 'char'- oder 'wchar_t'-basierten CSV Daten in ein Objekt.

Einfache CSV Daten zu parsen, ist nicht besonders kompliziert. Mit "einfach" meine ich, dass es keine Separatoren, Zeilenumbrüche oder Anführungszeichen in den Datenfeldern gibt. In diesem Fall reicht zeilenweises Lesen und anschließendes Sequenzieren. Dafür benötigt man keine gesonderte Library, fgets und strtok sind oft ausreichend um solche Daten zu verarbeiten.

Es gibt bereits eine ganze Reihe von CSV Parsern. Nicht ganz so viele sind in C geschrieben...

Erfahre mehr über diese Ressource...
 
german aktualisierte [C] CSV Parser mit einem neuen Updateeintrag:

Neuformatierung numerischer Werte

  • Konvertierung von Dezimaltrennzeichen und Tausendertrennzeichen aus dem lokalen in das von C erwartete Format.
  • Vereinfachte numerische Konvertierung durch Zusammenfassung von Neuformatierung und Aufruf der passenden Konvertierungsfunktion.
  • Fehlende const Deklaration für Headernamen ergänzt.
  • Weitere explizite Type-Casts hinzugefügt.

Lese den Rest der Aktualisierung...
 
german aktualisierte [C] CSV Parser mit einem neuen Updateeintrag:

Additional die kleinste Anzahl an Datenfeldern ermitteln

Solange lediglich die gtößte Anzahl an Datenfeldern bekannt ist, ist es nicht möglich zu wissen, ob die Anzahl in jedem Datensatz gleich ist. Das erzeugt ggf. einen Mehraufwand beim Zugriff auf tabulare Daten. Um das zu vermeiden, ist es nun durch nur einen Vergleich zwischen dem minFields und maxFields Member möglich festzustellen ob es nötig ist die Anzahl für jeden Datensatz erneut zu prüfen.

Lese den Rest der Aktualisierung...
 
german aktualisierte [C] CSV Parser mit einem neuen Updateeintrag:

Überarbeitung des 'field_to_num' Macros

Ut supra - Vereinfachung der Macro Definition von field_to_num.

Darüber hinaus:
Auch wenn die Lib in C und für C geschrieben ist, lässt sie sich auch in einen C++ Code einbinden. Um in diesem Fall ein Minimum an RAII gewährleisten zu können, ist das csv_deleter Objekt implementiert, damit der von parse_csv() zurückgegebene Wert in einen Smart Pointer (z.B. std::unique_ptr<csv_t, csv_deleter_t>) gewrappt werden kann. Speicher wird...

Lese den Rest der Aktualisierung...
 
german aktualisierte [C] CSV Parser mit einem neuen Updateeintrag:

'get_by_index()' Funktion hinzu

get_by_index() prüft die Indizes ob sie im gültigen Bereich liegen, bevor der Pointer auf das Datenfeld zurückgegeben wird. Somit ist das Verhalten konsistent zu get_by_name().

Außerdem: mehr const. Das Array von Spaltennamen wird nun bereits durch die parse_csv() Funktion erzeugt, was logischer ist. Somit können Parameter weiterer Funktionen als Pointer auf const deklariert werden, was ebenfalls logischer und...

Lese den Rest der Aktualisierung...
 
Zurück
Oben Unten