Hallo,
zurzeit stellt sich mir folgendes Problem: Ich habe eine Datei, an deren Ende ich springen muss, um (meistens) bestimmte acht Zeichen zu entfernen.
Man kann sich die Datei vorstellen, wie ein XML-Dokument
<begin>
<tag>Inhalt</tag>
</begin>
Nun möchte ich zwischen die Zeile "<tag>Inhalt</tag>" und "</begin>" noch eine weitere anhängen, sodass es vielleicht entsprechend so aussieht:
<begin>
<tag>Inhalt</tag>
<tag2>Inhalt2</tag2>
</begin>
Was ich nun mache ist folgendes:
- Einlese der Datei in einen String (mOldContent)
- mOldContent->remove(mOldContent->lastIndexOf("</begin>"), 8);
- mOldContent->append(*mNewContent);
- mOldContent->append("</begin>");
Das funktioniert auch recht einfach, nur kann es sein, dass (JA! Kunde...) die Datei bis zu 50MB groß wird. Und wer weiß wie groß noch.... Das Einlesen in einen String würde in dem Szenario also zuviel Zeit brauchen - unsinnig Zeit, wie ich finde.
Gibt es nun irgendeine Möglichkeit der "low level" Dateioperationen, wo der Inhalt nicht erst komplett in einen String geschrieben wird und ich später mittels String-Matching mir mein gewünschten Teilstring heraussuche und damit hantiere, sondern die Datei direkt durchsuche, und entsprechend manipuliere?
Ich arbeite mit folgenden Utensillien: WinXP, Qt 3.11, Visual Studio 2008.
Falls jemand Fragen oder Vorschläge hat, bitte her damit!
LG Tom
zurzeit stellt sich mir folgendes Problem: Ich habe eine Datei, an deren Ende ich springen muss, um (meistens) bestimmte acht Zeichen zu entfernen.
Man kann sich die Datei vorstellen, wie ein XML-Dokument
<begin>
<tag>Inhalt</tag>
</begin>
Nun möchte ich zwischen die Zeile "<tag>Inhalt</tag>" und "</begin>" noch eine weitere anhängen, sodass es vielleicht entsprechend so aussieht:
<begin>
<tag>Inhalt</tag>
<tag2>Inhalt2</tag2>
</begin>
Was ich nun mache ist folgendes:
- Einlese der Datei in einen String (mOldContent)
- mOldContent->remove(mOldContent->lastIndexOf("</begin>"), 8);
- mOldContent->append(*mNewContent);
- mOldContent->append("</begin>");
Das funktioniert auch recht einfach, nur kann es sein, dass (JA! Kunde...) die Datei bis zu 50MB groß wird. Und wer weiß wie groß noch.... Das Einlesen in einen String würde in dem Szenario also zuviel Zeit brauchen - unsinnig Zeit, wie ich finde.
Gibt es nun irgendeine Möglichkeit der "low level" Dateioperationen, wo der Inhalt nicht erst komplett in einen String geschrieben wird und ich später mittels String-Matching mir mein gewünschten Teilstring heraussuche und damit hantiere, sondern die Datei direkt durchsuche, und entsprechend manipuliere?
Ich arbeite mit folgenden Utensillien: WinXP, Qt 3.11, Visual Studio 2008.
Falls jemand Fragen oder Vorschläge hat, bitte her damit!
LG Tom
Comment