Avatar billede sarid Nybegynder
22. april 2002 - 17:51 Der er 3 kommentarer og
1 løsning

Filer

Jeg har en fil, der inderholder følgende:

tekst1
tekst2
tekst3

Hvordan kan man slet eksempelvis 'tekst2'? så resultatet bliver:

tekst1
tekst3

Og hvordan kan man ændre 'tekst2' til at være 'tekst0' så at resultatet bliver:

tekst1
tekst0
tekst3


På forhånd tak!!
Avatar billede laffe Nybegynder
22. april 2002 - 18:15 #1
Jeg går ud fra at det er en tekst fil du har.

Slet "tekst2" kunne gøres ved at:

Indlæse den original fil linie for linie. Hver gang du læsaer en linie ind, så skriver du den samme linie over i en ny fil. dette gør du for hele filen, foruden den linie du vil slette.

At ændre en linie forgår efter samme princip.
Avatar billede dkn Nybegynder
22. april 2002 - 18:15 #2
Du kan bruge:
stringreplace('Din string med text', 'tekst2', 'tekst0', [rfReplaceAll]);

Funktion som erstater alle, substrings i en string. I det tilfælde vil alle steder som der står tekst2 blive lavet om til tekst0.
Avatar billede sarid Nybegynder
22. april 2002 - 18:21 #3
Jeg læser alle linier ind i en TStringList og derefter laver en Rewrite og indlæser TStringListens indhold. Tak :-)
Avatar billede dkn Nybegynder
22. april 2002 - 18:22 #4
ang spørgsmål 1.
Hvis du ved hvilken linie den ligger på, kan du jo loade den ind i en stringlist og så bare bruge dens delete function.

Ellers lavede jeg lige en procedure:

procedure TForm1.SletLinie(Fil, SearchText: string; casesens: boolean);
var
st:tstringlist;
I:integer;
begin
st:=tstringlist.Create;
st.LoadFromFile(Fil);
for I := st.Count-1 downto 0 do
begin
if casesens then
begin
if st.Strings[I] = SearchText then
    st.Delete(I);
end else
if pos(SearchText, st.Strings[I]) > 0 then
  st.Delete(I);
end;
st.Free;
end;

//Sample
SletLinie('C:\Minfil.txt', 'tekst2', true);

casesens lavede jeg lige hvis du er helt sikker på hvad det er som skal slettes. Hvis du ikke er skal du bare sætte den til false, så sletter den alle de linier som indeholder din Searchtext
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