Hallo zusammen,
ich habe leider ein Problem beim Sortieren von bestimmten Inhalten aus Textdateien.
Ich hoffe ihr könnt mir dabei weiterhelfen.
Allgemein soll folgendes passieren: Ich lese mehrere Textdateien (aus einem bestimmten Verzeichnis) ein.
Jede einzelne Textdatei hat dabei jeweils einen bestimmten Inhalt, das so aussehen kann:
Textdatei Nr. 1 hat den Inhalt:
Aa1: Text...
Textdatei Nr. 2 hat den Inhalt:
Aa2: Text...
Textdatei Nr. 3 hat den Inhalt:
Bb1: Text...
...usw...
Wie ihr sicherlich schon bemerkt habt, sind die ersten zwei Buchstaben immer entweder Aa oder Bb und danach kommt eine Zahl. Die Zahl nach den zwei Buchstaben ist eine fortlaufende Zahl (und auch immer an der dritten Stelle), d. h. es könnte wie folgt aussehen: Aa1, Aa2,..,Aa10,..Aa100.
Der Inhalt aller eingehenden Textdateien soll nach dem Schema:
Aa1: Text...
Aa2: Text...
Aa10: Text...
Bb1: Text...
Bb2: Text...
.....usw...
sortiert werden und am Ende in einer neuen Textdatei gepeichert werden.
Mein eigentiches Problem ist dabei die Sortierung anhand der fortlaufenden Zahl.
Zur Veranschaulichung habe ich meine Funktion angehängt.
Als Hinweis für euch; diese Funktion befindet sich in einer while-Schleife und wird so oft ausgeführt bis keine Textdateien im Verzeichnis vorhanden sind.
So würde ich zwar immer die richtige Reihenfolge hinsichtlich der Buchstaben, aber nicht hinsichtlich der fortlaufenden Zahl bekommen.
D.h. falls eine Textdatei mit dem Inhalt Aa3 vor einer Textdatei mit dem Inhalt Aa1 eingelesen wird, so hätte ich als Ergebnis die Reihenfolge Aa3, Aa1 anstatt richtigerweise Aa1, Aa3.
Hat jemand von euch eine Idee wie ich die Funktion so umbauen kann, dass ich am Ende die richtig sortierte Reihenfolge bekomme?
Danke & schöne Feiertage
Kadamu
ich habe leider ein Problem beim Sortieren von bestimmten Inhalten aus Textdateien.
Ich hoffe ihr könnt mir dabei weiterhelfen.
Allgemein soll folgendes passieren: Ich lese mehrere Textdateien (aus einem bestimmten Verzeichnis) ein.
Jede einzelne Textdatei hat dabei jeweils einen bestimmten Inhalt, das so aussehen kann:
Textdatei Nr. 1 hat den Inhalt:
Aa1: Text...
Textdatei Nr. 2 hat den Inhalt:
Aa2: Text...
Textdatei Nr. 3 hat den Inhalt:
Bb1: Text...
...usw...
Wie ihr sicherlich schon bemerkt habt, sind die ersten zwei Buchstaben immer entweder Aa oder Bb und danach kommt eine Zahl. Die Zahl nach den zwei Buchstaben ist eine fortlaufende Zahl (und auch immer an der dritten Stelle), d. h. es könnte wie folgt aussehen: Aa1, Aa2,..,Aa10,..Aa100.
Der Inhalt aller eingehenden Textdateien soll nach dem Schema:
Aa1: Text...
Aa2: Text...
Aa10: Text...
Bb1: Text...
Bb2: Text...
.....usw...
sortiert werden und am Ende in einer neuen Textdatei gepeichert werden.
Mein eigentiches Problem ist dabei die Sortierung anhand der fortlaufenden Zahl.
Zur Veranschaulichung habe ich meine Funktion angehängt.
C++:
// Globale Variablen:
std::string content = "";
std::string contentAa = "";
std::string contentBb = "";
...
...
int searchAfterChar(std::string inputFile)
{
// "startsWith" is a function that returns all occurences of given characters in a text
if (startsWith(inputFile, "Aa")){
if (contentAa != ""){
found = contentAa.find(inputFile);
if (found = std::string::npos){
contentAa = contentAa + inputFile + "\n";
}
else{
cout << "Just tell me if I am here" << endl;
}
}
else{
contentAa = contentAa + inputFile + "\n";
}
}
else if (startsWith(inputFile, "Bb")){
if (contentBb != ""){
found = contentBb.find(inputFile);
if (found = std::string::npos){
contentBb = contentBb + inputFile + "\n";
}
else{
cout << "Just tell me if I am here" << endl;
}
}
else{
contentBb = contentBb + inputFile + "\n";
}
}
content = contentAa + contentBb;
return 0;
}
...
...
So würde ich zwar immer die richtige Reihenfolge hinsichtlich der Buchstaben, aber nicht hinsichtlich der fortlaufenden Zahl bekommen.
D.h. falls eine Textdatei mit dem Inhalt Aa3 vor einer Textdatei mit dem Inhalt Aa1 eingelesen wird, so hätte ich als Ergebnis die Reihenfolge Aa3, Aa1 anstatt richtigerweise Aa1, Aa3.
Hat jemand von euch eine Idee wie ich die Funktion so umbauen kann, dass ich am Ende die richtig sortierte Reihenfolge bekomme?
Danke & schöne Feiertage
Kadamu