Zeilenumbrüche mit einlesen (ENTER-Zeichen)
-
Hi ihr Profis, bin zwar ein C++ Neuling, aber habe mir schon für 200 Euro Bücher gekauft und mir fast alle Beiträge des Forums angeschaut, um euch nicht auf die Nerven zu gehen
Habe sogar schon den Buch Verleger kontaktiert wegen meines Problemes, aber der war irgendwie nicht sehr erfreut darüber. 
Ich weis nicht warum ich dieses Problem im Forum noch nicht gefunden habe, da ich glaube, dass ich nicht der einzige sein kann mit diesem Problem.Mein Problem: Ich möchte aus einer WordPad-Datei alle Wörter einzeln einlesen, gegebenenfalls verändern und in einer anderen Text-Datei(WordPad) wieder ausgeben. Das wäre alles kein Problem, wenn in der neuen Text-Datei nicht alles in einer Zeile stehen würde. Ich möchte schon, dass die Zeilenumbrüche mitgelesen werden, oder zumindest irgendwie zu erkennen sind. Ich muss zwar jeden String einzeln einlesen, um diesen gegebenenfalls zu verändern, aber die "Form" der Quelldatei sollte beibehalten werden. Ich muss also ein Zeilenumbruchzeichen lesen, oder erkennen können. Bis jetzt konnte mir damit noch niemand helfen, aber das muss gehen, sämtiche Text-Editoren können das ja schließlich auch.
Hier mein Code, mit dem ich zufrieden bin, bis auf dass er mir keine Zeilenumbrüche mit einliest.
Die ??? stehen für das was ich suche!#include <iostream>
#include <fstream>
#include <string>
#include <cstdio>
using namespace std;
ifstream dat_ein;
ofstream dat_aus;
//
string dateiname1 = "test1.txt"; //Quelltext steht in WordPad
string dateiname2 = "test2.txt"; //zu erstellende Text-Datei(soll in WordPad genauso aussehen!)
string zeichen;
char umbruch = '\n';
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
void datei1_lesen_und_in_Datei2_schreiben(){dat_ein.open(dateiname1.c_str(), ios_base::in);
dat_aus.open(dateiname2.c_str(), ios_base::out);while(zeichen != "END"){dat_ein >> zeichen; //Soll nur bis zum String "End" in der Text-Datei lesen
if(zeichen == "???"){dat_aus <<umbruch;}
dat_aus <<zeichen; dat_aus <<" ";}dat_ein.close();dat_aus.close();}
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
int main(){
datei1_lesen_und_in_Datei2_schreiben();
return 0;}Bitte helft mir, ich weis echt nicht mehr wo ich sonst noch suchen soll, als bei euch, die es wenigstens drauf haben.
Eigentlich ist das doch eine ganz simple Sache oder nicht. Ich denke niemand will, dass ein zwei Seiten langer Original-Text,
danach in einer einzigen Zeile ausgegeben wird. Wenn diese Frage schon mal gestellt wurde, tut es mir leid sie nicht gefunden
zu haben. Bitte habt ein wenig nachsicht mit mir, wir versuchen doch alle nur besser zu werden.Vielen, vielen Dank schon mal im Voraus
euer Barn aus Füssen.
Ps. Bin auch gerne bereit eine Gegenleistung zu erbringen. (z.B. DVDs verschenken oder so, natürlich nur wenn die Hilfe
funktionieren sollte).
-
Hmm bei WordPad-Dateien handelt es sich nicht um einfache Textdateien ... guck dir mal die Dateispezifikation an ... http://www.wotsit.org/download.asp?f=rtf15&sc=227106026 bsw zeigt dir den aufbau ... weiß aber gerade nicht welche rtf version von wordpad benutzt wird...
edit
seh gerade der link den ich dir gegeben hat beinhaltet source ... dann guck selbst mal auf http://www.wotsit.org/list.asp?fc=10 bei rtf danach ...
-
Danke, kann leider nicht sehr viel damit anfangen. Habe mir 4 Dateien runtergeladen, aber es ist erstens alles auf Englisch, und zweitens sind da keine Codes wo ich vieleicht damit arbeiten könnte.
Trotzdem recht hertzlichen dank. Ich würde dir gerne eine DVD schenken, aber ich komm so nicht weiter, da bin ich einfach zu schwach auf der Brust.
-
Ich will keine DVD ... aber werde dir sicherlich keinen RTF-Format-Reader schreiben ... guck dir mal die Reader usw an ... scheinst ja noch nicht so viel Erfahrung darin zu haben... da mach lieber was anderes ^^
-
Hi,
... naja WordPad-Dateien gibt es im Grunde genommen nicht. Man kann aber in WordPad normale Txt Dateien erstellen und auch RTF-Dateien ...
Da es aber sich bei deinen Dateien um *.txt handelt ist dies um ne ganze Ecke einfacher.
Wenn du wirklich alle Wörter haben willst und dabei auch noch erfahren willst wann ein Zeilenumbruch auftritt, fällt mir nur spontan ein dann mit getline() die Zeile zu lesen und die Wörter darin dann zu verarbeiten ...
-
if(zeichen == "???")Ersetze "???" durch "\n". "\n" ist in C/C++ das Zeichen für das Zeilenende.
-
Barn schrieb:
..., aber es ist erstens alles auf Englisch, ...
Ein kostenloser Tipp: Lern Englisch. die C++ Community ist numal in erster Linie international und basiert auf englisch. "nur" deutsch zu können heisst hier einfach vieles erst aus "zweiter Hand" zu bekommen oder gar nicht.
-
Konfusius schrieb:
if(zeichen == "???")Ersetze "???" durch "\n". "\n" ist in C/C++ das Zeichen für das Zeilenende.
Op>> wird niemals ein Zeilenende Zeichen in eine Variable einlesen, da alle Whitespacezeichen übersprungen werden...