PDA

Visualizza la versione completa : [C++]manipolazione file


ennekappa
28-03-2008, 13:50
Salve,
sto cercando di modificare un file di testo cancellando una riga ed inserendone altre ma non ne vengo fuori.
Non ho molta esperienza con il C++.
L'idea era questa:

if(exist("prova.xml")){
*apre il file "prova.xml"*
*cancella l'ultima riga*
*concatena al file itube.xml un testo*
*chiude il file*
}
else{
*crea il file normalmente*
//giÓ fatto
}
E' fattibile?
Grazie 10^3 :)

oregon
28-03-2008, 14:31
Se usi un file di testo, devi aprire l'originale in lettura e un altro file in scrittura.

A questo punto leggi dal primo e scrivi nel secondo le righe che ti interessano.

Poi chiudi tutti i file, elimini l'originale e rinomini il nuovo file.

ennekappa
28-03-2008, 14:39
Ok, fino a qui c'ero.
Ma come faccio a cancellare l'ultima riga?

oregon
28-03-2008, 14:51
No ... non ci sei ...

Non devi "cancellare" le righe ... non le devi riscrivere nel secondo file ...

ennekappa
28-03-2008, 16:03
Ok, ma come faccio a dire quali righe mi interessano?
Lo pseudocodice lo so, il problema Ŕ che non trovo come si fa con ifstream e ofstream.
Come faccio a fermarmi prima dell'ultima riga?

ennekappa
28-03-2008, 16:07
ifstream in("itubes.xml");
//se esiste giÓ
if(?come vedo se esiste?){
ofstream out("finale.xml");
string s;
while(getline(in, s)||?come vedo che sono arrivato all'ultima riga?)
out << s << "\n";
out<<"TESTO DA AGGIUNGERE"<<std::endl;
out.close();
}

ennekappa
29-03-2008, 14:09
Nessuna idea?

oregon
29-03-2008, 14:43
Leggi sempre due righe e scrivi solamente la precedente.

Loading