Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » letzte zeile einer .txt auslesen

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 <
000
28.02.2008, 16:55 Uhr
~tatakop
Gast


hallo zusammen,
kann mir jemand sagen wir man die letzte bzw. eine bestimmt zeile aus einer txt datei lesen und dann in einer variablen speichern kann??
danke im voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.02.2008, 18:19 Uhr
mischa
Fragender


Hallo,
naja lies dir die Datei zeilenweise ein und speichere es in einen std::vector oder so und lese dir das letzte Element des vectors in eine andere Variable. Eine von vielen Möglichkeiten.
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.02.2008, 21:11 Uhr
öni



Hallo,
speichere die erste Zeile in eine Variable. Dann überprüfe ob du am Ende der Datei bist. Dann speichere die nächste Zeile in die selbe Variable (überschreiben). Überprüfe ob du am Ende bist. Und das solange bist du am Ende bist. Wenn das der Fall ist musst du nur noch die Variable ausgeben.
Das wäre eine andere Möglichkeit. Dann musst du nicht wissen wieviele Elemente deine Datei enthält und muss kein Vector benutzen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.02.2008, 14:32 Uhr
Kest
saint


Hi!

Wenn C++, dann könnstete so was in die Richtung machen:

C++:
#include <iostream>
#include <fstream>
#include <string>
#include <map>


typedef std::map<unsigned,std::ifstream::pos_type> MT;

void Lines(std::ifstream& file, MT& mp){
    if(file.is_open()){
        mp[1] = file.tellg();
        std::string s;
        for(unsigned i=2; std::getline(file, s); i++)
            mp[i] = file.tellg();
        file.clear();
        mp.erase(mp.size());
    }
}



int main()
{
    std::ifstream file("/*Dateiname*/", std::ios_base::binary);
    MT zeile;
    Lines(file, zeile);

    std::cout << "insgesamt Zeilen: " << zeile.size() << std::endl;
    
    //letzte Zeile
    file.seekg(zeile[zeile.size()]);
    std::string s;
    std::getline(file, s);
    file.clear();
    std::cout << "letzte Zeile: " << s << std::endl;

    //vorletzte Zeile
    file.seekg(zeile[zeile.size()-1]);
    std::getline(file, s);
    std::cout << "vorletzte Zeile: " << s;
    
    //erste Zeile
    file.seekg(zeile[1]);
    std::getline(file, s);
    std::cout << "erste Zeile: " << s << std::endl;
}

--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.

Dieser Post wurde am 29.02.2008 um 14:33 Uhr von Kest editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: