Hej udviklere,
jeg sidder med et program der skal konvertere en datafil til en anden. Begge er tekstfiler, blot med hvert sit format.
Formatet er nogenlunde sådan her:
"Mariehøne", 2 , 10
"Mariehøne", 3 , 10
"Mariehøne", 3 , 11
"Edderkop", 3 , 10
etc..
Output skal være en separat datafil for hver art. Da inputfilen er ret stor (ca. 1 million linier), foretrækker jeg at læse 1 art af gangen, oprette en datafil, så læse den næste art etc.
Problemet er hvordan jeg kan finde ud af hver art er afsluttet? Jeg bruger std::getline() - men jeg har allerede læst en linie før jeg ved at den første hører til i næste gennemløb. Jeg har rodet lidt med noget kode:
while (getline(temp_line,data_file)){
Species species; // evt en klasse til at holde info
species.name = findName(temp_line);
species.loadParameters(); //læser fx. 2 og 10 ind
do{
getline(temp_line,datafile);
name_temp = findName(temp_line);
if (name_temp == species_name) species.loadParameters();
} while (name_temp == species.name);
species.printFile();
}
Men problemet er at jeg så mister en datapost. Nogen ideer?
Indlæg senest redigeret d. 11.09.2007 12:36 af Bruger #8249