Avatar billede ladyhawke Novice
05. oktober 2004 - 10:11 Der er 8 kommentarer og
4 løsninger

find streng og erstat hel linie

Jeg har en tekstfil (egentligt XML, men skal læses som tekstfil i denne sammenhæng), hvor jeg skal finde en bestemt streng (f.eks. "<Code>") i starten af linien og overskrive hele den linie med en ny streng. Hvordan gør jeg det?

Hvis den anførte streng ikke findes skal jeg finde en anden streng i starten af en line (f.eks. "<PreCode>") og indsætte en ny linie lige under denne, uden at ødelægge resten af filen), kan det gøres nogenlunde elegant?
Avatar billede segmose Nybegynder
05. oktober 2004 - 10:16 #1
Det kan ikke rigtigt gøres elegant, du bliver nødtil at løbende kopierer det du ikke retter og rettelserne over i en ny fil, da man ikke bare kan indføje nye tekster i tekstfilen (fx. hvis de er længere).
Avatar billede ladyhawke Novice
05. oktober 2004 - 10:23 #2
det er OK, hvis bare jeg kan gemme resultatet i den oprindelig fil, så der ikke lige pludselig er 30 filer, fordi operationen er udført flere gange
Avatar billede arne_v Ekspert
05. oktober 2004 - 10:31 #3
Det kan du næppe men:

åben gammel fil
åben ny fil med temp navn
kopier med ændringer fra gamme til ny
luk filer
slet gammel file
rename ny fil med temp navn til gammel fil
Avatar billede ladyhawke Novice
05. oktober 2004 - 10:48 #4
det er også helt fint, det er stadig overskueligt for brugerne
Avatar billede ladyhawke Novice
05. oktober 2004 - 11:53 #5
men ovenstående svar siger ikke hvordan jeg finder og erstatter strengen...
Avatar billede arne_v Ekspert
05. oktober 2004 - 12:03 #6
Små filer : læs hele filen op i memory og søg der.

Store filer : læs linier og process løbende.
Avatar billede ladyhawke Novice
05. oktober 2004 - 12:44 #7
ok, filen er ikke så stor så jeg tror jeg kigger på memory read
Avatar billede ladyhawke Novice
07. oktober 2004 - 08:34 #8
har brugt ifstream og ofstream til at håndtere filen med og så bruger jeg getline til at hente en lini ad gangen. På hver lini bruger jeg find(...) og hvis den ønskede substring findes, så overskriver jeg linien med den ønskede tekst

læg svar så deler jeg point
Avatar billede arne_v Ekspert
07. oktober 2004 - 09:10 #9
ok
Avatar billede ladyhawke Novice
07. oktober 2004 - 11:55 #10
segmose>> vil du ikke være med?
Avatar billede segmose Nybegynder
07. oktober 2004 - 12:30 #11
Når du nu presser sådan :)
Avatar billede ladyhawke Novice
13. oktober 2004 - 08:58 #12
Mange tak for hjælpen :o)
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



IT-JOB