CSV files inlezen, bewerken en opslaan

Status
Niet open voor verdere reacties.

Vapsor

Nieuwe gebruiker
Lid geworden
23 mrt 2009
Berichten
2
Hoi, ik ben dus bezig aan een vooraadbeheer systeem voor school.
Maar om al mijn objecten op te slaan. Zou ik moeten weten hoe je iets in een CSV file opslaat, het bewerkt en het er in opzoekt: bv voor een gebruiker in te loggen.

Kan iemand mij dus gewoon een snippet tonen, om iets te schrijven naar een CSV file, het te laden en mischien ook zoeken naar een string in een csv file?

ps: ik gebruik de mingw compiler.

en heb deze code nodig voor verschillende classes van mijn programma.

Al vast bedankt ;)
 
Ik ga je geen code voorkauwen aangezien het voor school is, maar je weet toch hoop ik wel dat CSV files gewoon tekstfiles zijn toch?

Je zou dus gewoon zoiets kunnen doen:
Code:
#include <fstream>
#include <iostream>

using namespace std;

int main(void){
    ofstream outfile("c:/test.csv");
    if (outfile.is_open()){
          outfile << "een veld; ander veld; derde veld;";
    }
    return 0;
}
 
Danku voor het snelle antwoord. Dat ge mij geen code gaan geven is normaal hoor, en vindk niet erg. Maar het is nu eenmaal dat we voor dit project syntax nodig hebben die we nog niet gezien hebben.

Ik heb nu op die code wat gegoogeld,en de basis functies uitgeprobeert. Maar kan je in velden van dezelfde kolom opzoek gaan naar een veld dat overeenkomt met een ingevoerde waarde?

met andere worden dus, kan je eigenschappen van string hier ergens op toepassen?
 
Laatst bewerkt:
Om je op gang te helpen, heb je hier een stukje code die een complete csv file uitleest.
Dit doet hij regel voor regel. Iedere regel wordt in een stringstream geladen waarna er met een geneste loop en "getline" ieder woord apart uitgelezen wordt (gescheiden door punt-komma's)

Code:
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>

using namespace std;

int main()
{
    ifstream infile("c:/file.csv");
    if (!infile.is_open() || !infile.good()){
        cout << "geen file open\n";
        return 1;
    }
    string line;
    while (getline(infile,line)){
        stringstream ss(line);
        string word;
        while (getline(ss, word, ';')){
            cout << "| " << word << " |";
        }
        cout << '\n';
    }

    infile.close();
    return 0;
}

Nu zul je zelf nog wat moeten verzinnen om waarden uit dezelfde kolom met elkaar te kunnen vergelijken.
Tip:je zult je uitgelezen data moeten opslaan, dus denk aan vectoren en/of maps. Zelf een 2d array zou in het ergste geval nog kunnen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan