Aus txt Dateien Texte auslesen und Absätze neu speichern
-
Hallo ,
ich habe hier mehrere tausend .txt Dateien in denen Texte sind.
Nun muss ich jede einzelne txt öffnen und den vorhanden Text möglichst Absatzweise in jeweils
einer eigenen neuen .txt speichern.Wichtig wäre mir , wie man das anhand einer Datei ordentlich hinbekommt.
Beispiel:
beispiel.txtWährend die oben angeführte Definition eines Textes als „abgegrenzte schriftliche oder potentiell zu verschriftlichende Äußerung“ im Alltag meist ausreichend ist, führt eine genauere, wissenschaftliche Betrachtung zu komplexeren Definitions- und Beschreibungsversuchen.
Die Eigenschaft des „Text-Seins“ bezeichnet man als Textualität, die sprachwissenschaftliche Untersuchung von Texten ist die Textlinguistik. Diese Disziplin stellt verschiedene Textualitätskriterien zur Verfügung. Robert-Alain de Beaugrande und Wolfgang Ulrich Dressler stellten 1981 eine Reihe solcher Kriterien vor:
Ergebnis sollte sein:
beispiel1.txt
Während die oben angeführte Definition eines Textes als „abgegrenzte schriftliche oder potentiell zu verschriftlichende Äußerung“ im Alltag meist ausreichend ist, führt eine genauere, wissenschaftliche Betrachtung zu komplexeren Definitions- und Beschreibungsversuchen.beispiel2.txt
Die Eigenschaft des „Text-Seins“ bezeichnet man als Textualität, die sprachwissenschaftliche Untersuchung von Texten ist die Textlinguistik. Diese Disziplin stellt verschiedene Textualitätskriterien zur Verfügung. Robert-Alain de Beaugrande und Wolfgang Ulrich Dressler stellten 1981 eine Reihe solcher Kriterien vor:Die Länge Dateien ist stark unterschiedlich....
Hoffe mir kann da jemand helfen ... wäre dringend ^^P.S. bin heute den ganzen Tag online und habe den Thread im Auge falls jemand Fragen zu der Problematik hat.
-
Guck dir Stringstreams an.
-
ich bin absoluter neuling und könnte schon etwas ausführlichere hilfe gebrauchen ...
falls jemand die zeit findet und es nicht aufwendig sein sollte , wäre ich auch für einen kleinen quellcode extrem dankbar !
-
Das sollte dein Problem lösen.
#include <iostream> #include <string> #include <fstream> #include <sstream> void splitFile(const std::string& filename) throw(std::string); int main() { try { splitFile(std::string("example.txt")); } catch ( const std::string& str ) { std::cerr << str << std::endl; } return 0; } void splitFile(const std::string& filename) throw(std::string) { std::ifstream inputFile; inputFile.open(filename.c_str(), std::ios::in); if ( !inputFile ) throw std::string("Couldn't open input file \"" + filename + "\""); int index = 1; std::stringstream convert; while ( !inputFile.eof() ) { std::string row; std::getline(inputFile, row); if ( !row.empty() ) { std::string newFile = filename; convert << index++; std::string strIndex; convert >> strIndex; newFile.insert(newFile.size()-4, strIndex); convert.clear(); std::ofstream outputFile; outputFile.open(newFile.c_str(), std::ios::out); if ( !outputFile ) { inputFile.close(); throw std::string("Couldn't open output file \"" + newFile + "\""); } do { outputFile << row; row.clear(); std::getline(inputFile, row); } while ( !row.empty() ); outputFile.close(); } } inputFile.close(); }Ein Absatz in der Quelldatei muss mindestens eine Leerzeile haben damit der Algorithmus funktioniert.
-
wow !
danke für deine hilfe !
jetzt muss ich nur noch rausbekommen wie ich die textdateien
automatisch nacheinander öffne und so bearbeite.ich habe eine .txt datei in der alle pfade hinterlegt werden.
(verzeichnisse.txt)Beispiel:
C:\verzeichnis1\text1.txt
C:\verzeichnis5\text5.txt
D:\verzeichnis10\text16.txt
usw.die gesamtanzahl der zu bearbeitenden files habe ich auch. habe nen tool das mit die pfade wegschreibt (wie im Bsp.) und dann mitzählt wie viele es sind.
gibt es eine möglichkeit das alles dann zu automatisieren ?
die geteilten files sollten dann jeweils im ursprungs verzeichnis gespeichert werden... und den namen der datei enthalten ... (text1.txt --> text1a.txt , text1b.txt usw)nochmal danke das du dir schon soviel mühe gemacht hast !
-
Schreib dir doch einfach eine Funktion, welche die Datei mit den Dateinamen öffnet sich jede Zeile in einer Schleife einzeln holt und in einen String speichert. Den String übergibst du dann einfach an die splitFile Funktion.
Das vorgehen kannst du meiner splitFile Funktion entnehmen. Probiers erstmal selbst, falls du garnicht weiter kommst könnt ich dir nochmal unter die Arme greifen, aber etwas Eigeninitiative würde sicher nicht schaden
-
hast ja recht ! ^^
ich probiere mal ein wenig herum ! danke für den tip !
falls ich es nicht auf die reihe bekomme melde ich mich noch mal !
danke dir nochmal !