Avatar billede duper Nybegynder
19. december 2001 - 01:28 Der er 2 kommentarer og
1 løsning

Gemning af data i fil

Hej!

I starten af mit program indlæser jeg nogle data fra en fil. Nogle af disse indlæste data, kan blive slettet undervejs. Når jeg så vil gemme de resterende data i samme fil overskriver den de første linier, hvilket også er fint. Problemet er nu når der er slettet nogle data, vil ikke alle de gamel data i filen så blive overskrevet. Dette resulterer i at der stadig findes nogle gamle/slettet data i filen, som så indlæses næste.

Et eksempel:
Hvis jeg har følgende data i en fil:
Børge
Inger
Allan
Ulla

Jeg indlæser til hukommelsen og sletter der Inger og Allan og skriver de resterende navne til filen.

Min fil ser således ud bagefter:
Børge
Ulla
Allan
Ulla

Hvor jeg kun ville have haft at den skulle indeholde Børge og Ulla.

Jeg søger altså en måde hvorpå jeg kan slette alt indhold i filen, inden der skrives til den.

--- Min Kode er således opbygget---
fstream Ud;
Ud.open(Filnavn);
for (int i=0;i<AntalElementer;i++)
Ud << array[i];

Håber jeg har fået udtrykt mig præcist nok :0)
/Sune
Ud.close;




Avatar billede chries Nybegynder
19. december 2001 - 08:04 #1
åben den med ios::out, derved trunkeres filen (= indhold slettes):

indlæs fil...

fstream Ud;
Ud.open(Filnavn, ios::out ); // <-----------
for (int i=0;i<AntalElementer;i++)
Ud << array[i];
Ud.close;


Avatar billede chries Nybegynder
19. december 2001 - 08:08 #2
Default for fstream er ios::out|ios::in og derved slettes filen ikke. (dokumentation siger hvis både ios::out|ios::in er specifieret slettes indholdet ikke)
Avatar billede duper Nybegynder
19. december 2001 - 09:43 #3
Det hjalp  :0)
Takker mange gange
/sune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester