Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » fstream Zeilen löschen

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
02.04.2004, 08:26 Uhr
~Gast
Gast


Ich benutze einen einfachen fstream um in eine Textdatei zu schreiben bzw. diese auszulesen. In der Datei gibt es Datensätze die durch eine +++++++++
Zeile getrennt sind. Gibt es ne Möglichkeit einen Datensatz so zu löschen, das die darauf folgenden nach "oben" gerückt werden und somit keine Lücke entsteht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.04.2004, 17:29 Uhr
lubU



ja du kannst alle datensätze einlesen bis zu dem der gelöscht werden soll.
die dann in ner tempdatei speichern. dann alle datensätze nach dem gelöschten scannen und dahinter schreiben.
dann remove("alteDatei"); rename("tmpdatei", "alteDatei")
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.12.2004, 18:49 Uhr
~fabian
Gast


Gibt es dafür auch ein Codebeispiel?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.12.2004, 11:34 Uhr
typecast
aka loddab
(Operator)



C++:
std::ifstream inFile(derDateiname.c_str());
std::ofstream outFile(derTemporaereDateiname.c_str());

while (std::getline(inFile, line) {
   if (line != "++++++++")  // oder wenn das die einzigen Zeilen sind, die ein + als ersten Buchstaben haben auch if (line[0] != '+')
         outFile << line;
  }
}

remove(derDateiname.c_str());
rename(derTemporaereDateiname.c_str(), derDateiname.c_str());



HTH. Ist allerdings ungetestet.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 09.12.2004 um 11:34 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.12.2004, 09:56 Uhr
ARM-Tec



Hi Leute,

habe auch noch ne oder zwei andere Fragen die aber zum Thema passt.

Gibt´s da ganze auch ohne temp. Datei und umbenennen???

Wie tausche ich dann ein bestimmtes Zeichen in einer bestimmten Zeile aus, natürlich auch ohne temp. Dateien und umbenennen???

Beispiel:

vorher ist es so!!!

Zeile1 Achsvertärker@VD600@1§1
Zeile2 Achsvertärker@VD600@2§1
Zeile3 Achsvertärker@VD600@3§1

danach soll es so sein!!!

Zeile1 Achsvertärker@VD600@1§1
Zeile2 Achsvertärker@VD600@2§4
Zeile3 Achsvertärker@VD600@3§1

am Schluß soll die Zeile die die 4 am Ende hat gelöscht werden!!!

Zeile1 Achsvertärker@VD600@1§1
Zeile3 Achsvertärker@VD600@3§1


Werkann hier zu was sagen oder helfen?? Bitte melden!!!
 
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: