mehrere files in c++ matrix einlesen (vector<>)

greenghecco

Grünschnabel
hallo, ich komme leider aus dem tcl bereich. daher hoffe ich ihr könnt mir helfen.:

also ich hab mehrer dateien die folgender massen benannt werden:

datei_0
datei_1
.
.
.
datei_N

in jeder Datei sind "zwei Spalten" mit integer werten, (aber aus TCL kommenden sind diese nur strings) ein beispiel für eine Datei ist:

1 0
4 0
3 1
2 1
7 3
8 4
9 4
13 5
12 5

diese listen mit linker spalten und rechter befinden sich in jeder datei, natürlich mit unterschielichen werten.

diese werte will ich in einem c++ prog in einem anderen ordner einlesen, am besten in
ein dynamisches array , da die anzahl der dateien unterschielich sein kann und auch meistens sind.

im c++ programm will ich denn zb. im vector auf eine dieser listen zugreifen und zb. die ersten 4 werte auslesen können. die rechte spalte wurde numerisch sortiert wie man am beispiel sieht. ich brauche dann halt von der linken spalten die dazugehörigen werte, die sozusagen als identifikationen dienen innheralb des progs.
vielen dank schonmal im vorraus
 
Also theoretisch kriegst du so eine Liste der Dateien raus:

Code:
std::vector<std::string> DateienAuflisten(std::string pfad)
{
	std::vector<std::string> dateien;

	HANDLE fHandle;
	WIN32_FIND_DATA wfd;

	fHandle = FindFirstFile(pfad.c_str(), &wfd);

	do
	{
		if (!((wfd.cFileName[0] == '.') && ((wfd.cFileName[1] == '.' && wfd.cFileName[2] == 0) || wfd.cFileName[1] == 0)))
		{
			if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
			{
				dateien.push_back(wfd.cFileName);
			}
		}
	}
	while (FindNextFile(fHandle, &wfd));	
	FindClose(fHandle);

	return dateien;
}

Und dann noch das Einlesen einer einzelnen Datei:

Code:
struct Wertepaar
{
	int zahl1;
	int zahl2;
};

std::vector<Wertepaar*> DateiEinlesen(std::string dateiname)
{
	std::vector<Wertepaar*> inhalt;
	std::ifstream datei;

	datei.open(dateiname.c_str(), std::ios::in);

	if (datei.good())
	{
		datei.seekg(0L, std::ios::beg);

		while (!datei.eof())
		{
			Wertepaar *w = new Wertepaar();

			datei >> w->zahl1 >> w->zahl2;
			inhalt.push_back(w);
		}
	}

	return inhalt;
}

Und die includes:

Code:
#include <iostream>
#include <fstream>
#include <vector>
#include <windows.h>
 
Zurück