odczytanie pliku .csv za pomocą dataGirdView w c++/cli

0

Witam. Chciałbym w swoim programie odczytać pliki .csv po przez dataGirdView. Znalazłem kod do tego. Jednak jest ona napisany w c#. Mało znam c# a w c++/cli dopiero zaczynam, jednak udało mi się część kodu przepisać do c++. Niestety z dalszą częścią mam problem. Może ktoś miałby pomysł jak wygląda odpowiednik reszty kodu C# w C++/cli? Za pomoc byłbym wdzięczny.

kod C#:

 
private void LoadBooks()
{

	string delimiter = ",";
	string tableName = "BooksTable";
	string fileName = "databas.csv";

	DataSet dataset = new DataSet();
	StreamReader sr = new StreamReader(fileName);

	dataset.Tables.Add(tableName);
	dataset.Tables[tableName].Columns.Add("produkt");
	dataset.Tables[tableName].Columns.Add("price");
	string allData = sr.ReadToEnd();

	//---- dotąd przepisałem na c++

	//string[] rows = allData.split("\r".ToCharArray());


	
	string[] rows = allData.Split("\r\n".ToCharArray());

	foreach(string r in rows)
	{
	string[] items = r.Split(delimiter.ToCharArray());
	dataset.Tables[tableName].Rows.Add(items);
	}
	this.dataGirdView1.DataSource = dataset.Tables[0].DefaultView;
	
}

To ja zamieniłem na c++/cli

 
	String ^delmiter = ",";
	String ^tableName = "BooksTable";
        String^ fileName = "databas.csv";
	


	
	DataSet ^dataset;
	dataset = gcnew DataSet();
	StreamReader ^sr = gcnew System::IO::StreamReader(fileName);

	dataset->Tables->Add(tableName);
	dataset->Tables[tableName]->Columns->Add("produkt");
	dataset->Tables[tableName]->Columns->Add("price");

	String ^allData = sr->ReadToEnd();

0

poradziłem sobie w ten sposób :

 

private: void LoadBooks()
{
	String ^delimiter = ";";
	String ^delimiter2 = "-";
	String ^tableName = "BooksTable";
    	String^ fileName = ("wyniki.csv");
	


	
	DataSet ^dataset;
	dataset = gcnew DataSet();
	StreamReader ^sr = gcnew System::IO::StreamReader(fileName);

	dataset->Tables->Add(tableName);
	dataset->Tables[tableName]->Columns->Add("produkt");
	dataset->Tables[tableName]->Columns->Add("price");
	dataset->Tables[tableName]->Columns->Add("pricq");
	dataset->Tables[tableName]->Columns->Add("pricf");
	dataset->Tables[tableName]->Columns->Add("prics");

	String ^allData = sr->ReadToEnd();


	array<String^> ^rows =  allData->Split(delimiter2->ToCharArray());

	for(int i = 0; i<rows->Length; i++)
	{	
	String ^r = rows[i];
	array<String^> ^items = r->Split(delimiter->ToCharArray());
	dataset->Tables[tableName]->Rows->Add(items);

	}
	
	this->dataGridView1->DataSource = dataset->Tables[0]->DefaultView;
	
}
0

w C++/CLI też jest foreach, tylko pisze się osobno:

for each (String ^s in rows)
0

aha, dzięki wielkie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1