nur jede 3. Zeile lesen
-
nicht module, sondern modulo.
das ist einer der basisoperatoren
/
*
% (modulo)
-
ich könnte das natürlich auch ganz anders machen
ich lese jetzt zeile aus, erstelle für jedes merkmal eine eigene Temp datei. später öffne ich dann einfach die temp datei, wo die merkmale drin stehen, die der user will und kann somit zeilenweise lesen und hab für jede zeile auch das gewünschte merkmal
-
Kennst du schon CStringArray? Ist ganz einfach zu handhaben.
Modulo gibt dir den Rest:
3%3 = 0
4%3 = 1
5%3 = 2
6%3 = 0
-
Wobei ich da eher CStringList nehmen würde wegen der flexiblen länge
-
Taelan schrieb:
Wobei ich da eher CStringList nehmen würde wegen der flexiblen länge
Die hat CStringArray doch auch.
-
vector und gut
-
@elise Wie genau meinst du das mit Modulo?
Was hat der Operator damit zu tun?@MSS-Software
Lies am Besten die Datei zeilenweise in ein CStringArray und verarbeite nur, wie gesagt jede 3. Zeile.
Du kannst die Datei auch in einen Vector laden, alsostd::vector<CString> MeinVektor;
wobei aber CStringArray viel einfacher zu handhaben ist (wenn man es nicht gewohnt ist, mit Templates und den STL zu arbeiten).
Wenn du größere Textdateien einlesen willst (sagen wir mehrere MB), empfiehlt es sich (meiner Erfahrung nach) nicht die ganze Datei in den Speicher zu laden, sondern jedes Zeichen einzeln auszulesen, dann zu entscheiden, ob eine neue Zeile beginnt (also quasi nach '\n' suchen), und dann nur jede 3. Zeile zu speichern.
Grüße Raphael
-
Rapha schrieb:
Wenn du größere Textdateien einlesen willst (sagen wir mehrere MB), empfiehlt es sich (meiner Erfahrung nach) nicht die ganze Datei in den Speicher zu laden, sondern jedes Zeichen einzeln auszulesen, dann zu entscheiden, ob eine neue Zeile beginnt (also quasi nach '\n' suchen), und dann nur jede 3. Zeile zu speichern.
Spricht etwas gegen CStdioFile? Das kann ganze Zeilen einlesen.
-
Nein, dagegen spricht natürlich nichts. Mein Freund hat mal nen Benchmark über CStdioFile und das selber einlesen (Dateigröße war glaub 50 mb)laufen lassen wobei das selber einlesen schneller ging (da die Daten von CStdioFile ja gespeichert werden). Wenn man selber liest, kann man sich das Speichern sparen (d.h. nur dann speichern, wenn man es braucht).
Normalerweise kann man darauf natürlich verzichten, ich musste mich damals aber durch kilometerlange Logs parsenund da merkt man es schon ziemlich, wenn man alles erstmal zwischenspeichert, obwohl man es nicht braucht
-
Ahja okay - hab wieder was gelernt.
Die internen Abläufe kannte ich noch nicht. Wenn das erstmal komplett in den Speicher gepackt wird, ist das natürlich ab einer gewissen Menge ein echter Nachteil.
-
warum machst du nicht einfach eine while bedingung?