C - csv-Datei auslesen

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C - csv-Datei auslesen

Beitrag von nufan » Fr Jan 22, 2010 2:40 pm

Sieht doch gut aus :)
stampuhh hat geschrieben:

Code: Alles auswählen

start = fread(string, pos, 1, file);
Du liest so zwar die richtige Anzahl an Zeichen, aus Gründen der Lesbarkeit würde ich es aber so schreiben:

Code: Alles auswählen

start = fread (string, sizeof (char), pos + 1, file);
stampuhh hat geschrieben:

Code: Alles auswählen

chomp(string); //Setzt das Nullbyte ans Ende und entfernt Zeilenumbruch
"chomp" weiß wie viele Zeichen im String sind?

Ansonsten solltest du nur noch nach dem Bearbeiten der Daten den reservierten Speicher wieder freigeben.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: C - csv-Datei auslesen

Beitrag von stampuhh » Fr Jan 22, 2010 6:16 pm

Das hier habe ich nicht ganz verstanden?

Code: Alles auswählen

start = fread (string, sizeof (char), pos + 1, file);
Also n Blöcke der Größe "1" lesen statt einem Block der Größe n?
"chomp" weiß wie viele Zeichen im String sind?

Ansonsten solltest du nur noch nach dem Bearbeiten der Daten den reservierten Speicher wieder freigeben.
Danke für den Hinweis. Beides geändert ;)

gruß stampuhh
NachDenkSeiten.de

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C - csv-Datei auslesen

Beitrag von nufan » Fr Jan 22, 2010 6:25 pm

stampuhh hat geschrieben:Das hier habe ich nicht ganz verstanden?

Code: Alles auswählen

start = fread (string, sizeof (char), pos + 1, file);
Also n Blöcke der Größe "1" lesen statt einem Block der Größe n?
Hier die Signatur von fread:
#include <stdio.h>
size_t fread (const void * ptr, size_t size, size_t count, FILE * stream );

ptr: Zeiger auf den Speicherbereich, in dem die gelesenen Daten gespeichert werden sollen.
size: Die Größe in Bytes eines einzelnen Blocks.
count: Anzahl der Elemente, die gelesen werden.
stream: Zeiger auf den Stream, aus dem gelesen wird.
Return Value: Die Anzahl der erfolgreich gelesenen Elemente.
Ist eine rein formale Sache. So wie du das schreibst liest du ein einziges Element mit Größe n aus der Datei, was auch funktioniert. Eigentlich liest du aber n einzelne Zeichen der Größe sizeof (char) aus der Datei.
Das + 1 brauchst du aber nicht, da hab ich was verwechselt...

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: C - csv-Datei auslesen

Beitrag von stampuhh » Fr Jan 22, 2010 6:29 pm

Ja dann hatte ich den Eintrag falsch interpretiert ;)

Ich hatte mir gedacht, dass ich ja nur einen Block einlese...nämlich den Inhalt der Datei. Aber stimmt schon, das mit den Zeichen ist besser. Wird gleich geändert.

gruß stampuhh
NachDenkSeiten.de

Antworten