Slet linje

Tags:    c++ esbjerg fredericia frederikshavn horsen

<< < 12 > >>
Jeg har en kode som skal slette en linje i en fil, det gør den ved at jeg skriver hele indholdet af filen til den igen, men uden den linje som ikke skal være der! nu er problemet så bare at den sidste linje kommer til at stå to gange, da der jo bliver en linje mindre at skrive, fx:

Fil før ændring:
-----------------------
linje 1
linje 2
linje 3
linje 4
linje 5
-----------------------

Fil efter ændring:
-----------------------
linje 1
linje 2
linje 4
linje 5
linje 5
-----------------------

Hvis jeg så går ind og skriver en blank linje i stedet for den sidste, bliver vil den jo stadig blive talt med med/læst ind da der er lavet et new line engang:

Fil efter ændring:
-----------------------
linje 1
linje 2
linje 4
linje 5

-----------------------

Hvordan kan jeg komme uden om det? håber i forstår problemet, kan godt forstå det er lidt forsvært
//Søren



15 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Kom lige til at se jeg har været opmærksom på det, har en xx--; efter while'en er færdig, så den trækker den sidste fra... så det er ikke det... detsværre
//Søren

Hvis du kører mit eksempel fra 03-12-04 21:12, fjerner den så ikke en linie uden at lave to af den sidste ?

Må jeg se hele koden, eller nok til at kunne provokere fejlen ?

Din kode laver også en tom linje i bunden af filen...

Det er en del af et stører program, og jeg har sådan set ikke andre koder som berøre problemet end det jeg har skrevet, prøv selv at kører din kode, og så kan du se at der vil komme en tom linje i bunden af din txt fil...
//Søren



Eftersom det sidste der bliver skrevet er en "\\n" (et linie skift) vil der være en tom linie til slut på filen. Du kan undgå denne ved at checke om det er den sidste linie der udskrives og undlade "\\n" i dette tilfælde.



Hmm, det kan der jo være noget om... Det lader til at problemet var at jeg ikke fik tømt min char før den fik læst filen ind igen, og derfor havde den den sidste linje til at stå inu :$

men tak for hjælpen, nogle der skal have points?
//Søren



Jeg samler ikke på point.
Da jeg er den eneste der har deltaget i tråden bør du selv lave et svar som du derpå accepterer, så tråden kan blive lukket. Gør det samme med dine andre åbne spørgsmål.



Jeg samler ikke på point.
Da jeg er den eneste der har deltaget i tråden bør du selv lave et svar som du derpå accepterer, så tråden kan blive lukket. Gør det samme med dine andre åbne spørgsmål.


Okay, men et tak for hjælpen skal du i hvertfal have!
Jeg har tømt charen med et[x][+] = '\\0'; ved ikke om det er den bedste måde men det virker trods alt...
//Søren



<< < 12 > >>
t