Данные Visual Studio C ++ из файла CSV в переменные массивы - PullRequest
1 голос
/ 28 августа 2011

По сути, я хочу сделать простую функцию для более крупного проекта, на самом деле это будет файл заголовка, который обрабатывает весь мой инвентарь.Любой, кто, я просто хочу, чтобы он мог читать / извлекать / вводить данные из файла формата .csv ... Или я могу даже сделать .txt, если это проще сделать эту функцию, пока я могуоткройте его в MS Excel, отредактируйте элементы и добавьте новые элементы; при запуске функции откроется файл «Example.csv», и, например, функция будет искать ячейку в столбце 1 - «sSwordName» ивытащить данные в строке СЛЕДУЮЩЕЙ за этой ячейкой, полностью исключая этот первый столбец во всех входных данных ... Он сгруппирует их, или все, что может понадобиться, чтобы назначить их этой переменной.Пожалуйста, посмотрите Code.h (Комментарии), чтобы увидеть мои вопросы о моем исходном коде.

Code.h -

#include "stdafx.h"
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <vector>
using namespace std;

char sSwordName[100][25] = {};
int sSwordLvlR[100] = {};

vector<string> split_at_commas(const string & row)
{
    vector<string> res;
    istringstream buf(row);
    string s;
    while (getline(buf, s, ','))
        res.push_back(s);
    return res;
    system("pause");
}

/* Question 1: Where & How do I properly add 'ifstream wInv("Example.csv");' in order to Load the CSV file it is reading? */
/* Question 2: Line 38 & 46. */
/* Question 3: Line 39 & 47 */

int main()
{
    int i = 1;

    string line;
    string row;
    vector<string> values = split_at_commas(line);
    if (values[0] == "sSwordName")
    {
        for(int i = 1; i < values.size(); ++i);
        {
            /*int i error: Object must have a pointer-to-object type*/ 
            sSwordName[100][25][i - 1] = /*How do I convert string to char?*/(vector[i]);
        }
    }
    else if (values[1] == "sSwordLvlR")
    {
        for(int i = 1; i < values.size(); ++i);
        {
            /*int i error: Object must have a pointer-to-object type*/
            sSwordLvlR[i - 1] = /*How do I Convert string to int?*/(vector[i]);
        }
    }
}
/* Question 4: Is there anything else that is wrong in this? If so, how would I fix it */

Example.csv -

sSwordName,Wooden Shortsword,Bronze Shortsword,Iron Shortsword,Steel Shortsword,Titanium Shortsword
    sSwordLvlR,1,3,5,6,10

ПодробнееИнформация о CSV:

sSwordName,Wooden Shortsword,Bronze Shortsword,Iron Shortsword,Steel Shortsword,Titanium Shortsword
sSwordLvlR,1,3,5,6,10

^ Это НЕ ЕДИНСТВЕННЫЙ способ форматирования, для удобства я могу сделать что-то подобное (ниже, E2.csv).Если проще сделать функцию, функцию.;

sSwordName,"Wooden Shortsword","Bronze Shortsword","Iron Shortsword","Steel Shortsword","Titanium Shortsword"
sSwordLvlR,"1,","3,","5,","6,","10,"

Я могу даже отформатировать ее таким образом;

sSwordName,"{"Wooden Shortsword","Bronze Shortsword","Iron Shortsword","Steel Shortsword","Titanium Shortsword"};
sSwordLvlR,"{1,3,5,6,10};"

Еще раз, я очень признателен за любую помощь,Я благодарю вас в Advanced! -Leaum

...