Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » txt.Dateien Lesen, kopieren, speichern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]
020
28.11.2012, 20:49 Uhr
chicko




C++:

ifstream in("Quelle.txt");
string Zeile;

while (getline(in, Zeile))




damit funktioniert ja generell das zeilenweise lesen

aber mir gelingt es nicht den bogen so meiner vorherigen frage zu spannen

bzw. stell ich mich da gerade sehr blöd an antscheinend^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
28.11.2012, 20:57 Uhr
~f.-th.
Gast


Ob wir Freunde werden weiss ich nicht.

Aber warum machst du nicht das was man dir schreibt?

C++:
ifstream in("Quelle.txt");
string Zeile;

getline(in, Zeile);
// Zeile prüfen oder verwerfen
getline(in, Zeile);  // die 2.Zeile - wo ist da das Problem?
// Zeile prüfen oder verwerfen



Kannst das natürlich auch im Schleifchen verpacken.

---
Edit: cpp-Tags korrigiert. (Da hattest da einen / vergessen.)

Dieser Post wurde am 29.11.2012 um 01:01 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
28.11.2012, 21:03 Uhr
chicko



ich hab ich da schon verstanden aber mein problem ist:

ich weiß ja nicht den namen der zeile und ich muss ihn ja angeben in der getline() funktion
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
28.11.2012, 21:53 Uhr
~f.-th.
Gast


Zeige die ersten 3 Zeilen deiner Datei, die du lesen willst.
Falls du das Format deiner Datei zu viel bearbeitest ...
Davon ist abhängig wie der einfach oder auch nicht der Quelltext wird.

Welches Problem hast du mit den Namen?

C++:
ifstream in("Quelle.txt");
string Zeile;

getline(in, Zeile);
// Zeile prüfen oder verwerfen
// Beispiel: kopiere Zeile in Inhalt[0]
getline(in, Zeile); // die 2.Zeile - wo ist da das Problem?
// Zeile prüfen oder verwerfen
// Beispiel: kopiere Zeile in Inhalt[1]



Das geht natürlich mit aktuellen C++ Mitteln auch noch anders. Aber für Einsteiger ...?

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
29.11.2012, 09:53 Uhr
chicko



Hallo hier mal ein Auszug meiner Datei


C++:

[Objekt] <- bleibt gleich
Reifen <- ändert sich immer
[Beschreibung]<- bleibt gleich
Winter<- ändert sich immer
[Name]<- bleibt gleich
Goodyear<- ändert sich immer
.
.
.
.
.
Daten, die sich nicht verändern
Daten, die sich nicht verändern

Daten, die sich nicht verändern
.
.
.




jede zeile die sich ändert besteht im Prinzip nur aus einem Wort

Die Wörter, welche sich ändern will ich lesen und weiterverwenden

Würde auch sagen, dass wir die Sache erstmal einfach halten, wenn die Sache mal läuft dann will ichs natürlich noch verbessern
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
29.11.2012, 10:11 Uhr
~f.-th.
Gast


Ich hab das ja schon geschrieben. In dem Fall ist getline nicht die erste Wahl.

Aber, wenn ihr das so wollt, macht mal schön. Kann ja sein das ihr zu Übungszwecken zu getline vergattert worden seid?

Lese mal alle Beiträge noch mal durch, die der Nick Masskrug begonnen hat.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
29.11.2012, 11:48 Uhr
chicko



ich will halt momentan ein wenig mit der getline() funktion herumspielen.

ich hab

jetzt mit deinem Code von gerade eben eigentlich genau das was ich will.

habe den inhalt von den 2 zeilen und will diesen inhalt nun als namen für meine Kopierte Datei nehmen


ABER!

C++:
#include <string>
#include <iostream>                            
#include <fstream>                              
#include <windows.h>
#include <stdio.h>

using namespace std;

int main(void)
{
  ifstream Quelldatei("D:\\SCRIPT.txt", ios_base::in);
   if (!Quelldatei)                            
    cerr << "Fehler! - Skript-Datei kann nicht geoeffnet werden\n";  
   else
   {    string line;

        getline(Quelldatei, line);
        getline(Quelldatei, line);

        string line2;

        getline(Quelldatei, line2);
        getline(Quelldatei, line2);


        ofstream Zieldatei(line + line2);   // <- hier Format und Speicherort angeben      
                                        
        char c;                                  
        while (Quelldatei.get(c))
        {              
        Zieldatei.put(c);  

        }
      
    }
  
    return 0;
    system("pause");
    return 0;
}



ABER!

jetzt kommts


ich will, dass das ganze wieder eine txt-Datei wird und in einem bestimmten Ort gespeichert wird.

Jetzt meine Frage:

kann ich in dem ofstream mein Problem irgendwie beheben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
29.11.2012, 12:41 Uhr
~f.-th.
Gast



Zitat von chicko:
ich will halt momentan ein wenig mit der getline() funktion herumspielen.

ich hab

jetzt mit deinem Code von gerade eben eigentlich genau das was ich will.

habe den inhalt von den 2 zeilen und will diesen inhalt nun als namen für meine Kopierte Datei nehmen


ABER!

C++:
#include <string>
#include <iostream>                            
#include <fstream>                              
#include <windows.h>  // brauchst du den?
#include <stdio.h>       // C++ hast DU geschrieben!

using namespace std;

int main(void)
{
  ifstream Quelldatei("D:\\SCRIPT.txt", ios_base::in);
   if (!Quelldatei)                            
    cerr << "Fehler! - Skript-Datei kann nicht geoeffnet werden\n";  
   else
   {    string line;

        getline(Quelldatei, line);
        getline(Quelldatei, line);

        string line2;

        getline(Quelldatei, line2);
        getline(Quelldatei, line2);


        ofstream Zieldatei(line + line2);   // <- hier Format und Speicherort angeben      
                                        
        char c;  // was fängst du hier an, inclusive der nächsten 4 zeilen?                                
        while (Quelldatei.get(c))
        {              
        Zieldatei.put(c);  

        }
      
    }
  
    return 0;
    system("pause"); // code wird nie erreicht
    return 0;    // code wird nie erreicht
}



ABER!

jetzt kommts


ich will, dass das ganze wieder eine txt-Datei wird und in einem bestimmten Ort gespeichert wird.

Jetzt meine Frage:

kann ich in dem ofstream mein Problem irgendwie beheben?


Hast du eine Alternative zu ofstream? Schreib mal.

Schick den Kram/Quelltext doch mal durch deinen Compiler und sag dem alle Warnungen ausgeben
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
29.11.2012, 14:58 Uhr
Hans
Library Walker
(Operator)



Zitat von ~f.-th.:
Schick den Kram/Quelltext doch mal durch deinen Compiler und sag dem alle Warnungen ausgeben




Code:
C:\Daten\MinGW\C-Cpp-Forum\istream.cpp||In function 'int main()':|
C:\Daten\MinGW\C-Cpp-Forum\istream.cpp|26|error: no matching function for call to 'std::basic_ofstream<char>::basic_ofstream(std::basic_string<char>)'|
C:\Daten\MinGW\C-Cpp-Forum\istream.cpp|26|note: candidates are:|
c:\programmdateien\mingw\bin\..\lib\gcc\mingw32\4.6.2\include\c++\fstream|629|note: std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*, std::ios_base::openmode) [with _CharT = char, _Traits = std::char_traits<char>, std::ios_base::openmode = std::_Ios_Openmode]|
c:\programmdateien\mingw\bin\..\lib\gcc\mingw32\4.6.2\include\c++\fstream|629|note:   no known conversion for argument 1 from 'std::basic_string<char>' to 'const char*'|
c:\programmdateien\mingw\bin\..\lib\gcc\mingw32\4.6.2\include\c++\fstream|614|note: std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with _CharT = char, _Traits = std::char_traits<char>]|
c:\programmdateien\mingw\bin\..\lib\gcc\mingw32\4.6.2\include\c++\fstream|614|note:   candidate expects 0 arguments, 1 provided|
c:\programmdateien\mingw\bin\..\lib\gcc\mingw32\4.6.2\include\c++\fstream|588|note: std::basic_ofstream<char>::basic_ofstream(const std::basic_ofstream<char>&)|
c:\programmdateien\mingw\bin\..\lib\gcc\mingw32\4.6.2\include\c++\fstream|588|note:   no known conversion for argument 1 from 'std::basic_string<char>' to 'const std::basic_ofstream<char>&'|
||=== Build finished: 8 errors, 0 warnings ===|



--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 29.11.2012 um 15:00 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
01.12.2012, 10:43 Uhr
chicko




C++:

#include <string>
#include <iostream>                            
#include <fstream>                              
#include <windows.h>
#include <stdio.h>

using namespace std;

int main()
{
  ifstream Quelldatei("D:\\SCRIPT.txt", ios_base::in);
   if (!Quelldatei)                            
        cerr << "Fehler! - Skript-Datei kann nicht geoeffnet werden\n";  
   else
   {    string line;

        getline(Quelldatei, line);
        getline(Quelldatei, line);

        string line2;

        getline(Quelldatei, line2);
        getline(Quelldatei, line2);
        
        
        ofstream Zieldatei("D:\\Zielordner\\" + line + line2 + ".txt");   // <- hier Format und Speicherort angeben      
                                        
        char c;                                  
        while (Quelldatei.get(c)) //schreibt Dateiinhalt in neue Datei
        {              
        Zieldatei.put(c);  
        }

    Quelldatei.close(); // schließt den ifstream
    remove("D:\\SCRIPT.txt");

    }
  
    
    //system("pause");
    return 0;
}




also hier mal mein fertiges Programm, es macht was ich will

auch wenns wahrscheinlich billigstes "hausfrauen"-programmieren ist


gibt es verbesserungsvorschläge?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: