Avatar billede jct Nybegynder
01. december 2004 - 14:58 Der er 9 kommentarer og
1 løsning

Slette flere linier i notes.ini

Jeg har tidligere fået hjælp til at slette en enkelt linie i notes.ini, men har nu behov for at slette flere linier f.eks.

AddInMenus=NCMenu
EXTMGR_ADDINS=NCExtMgrClient

Jeg har selvfølgelig prøvet at rette i det tidligere script, men kun med problemer til følge.
Avatar billede tofte Juniormester
01. december 2004 - 15:18 #1
kan du ikke  lige smide det du har. Der er jo ingen grund til at starte forfra hvis der findes noget alleredd
Avatar billede jct Nybegynder
01. december 2004 - 16:18 #2
Hermed det script jeg modtog, og som kan slette en linie:

' Dette system kan godt udbygges, så det kan kaldes med f.eks.:
' fjern.vbs "Userinterface=UK"
'
' hvor fjern.vbs er navnet på filen, og "Userinterface=UK" er den linie der skal fjernes.
'
' I mit eksempel hedder filen "data.ini", og er placeret i samme mappe som scriptet.
' data.ini indeholder:
' [Notes]
' Userinterface=UK
' Directory=C:\Lotus\Notes\Data
' KitType=1

Option Explicit ' ALLE variabler skal defineres/dimmes!
Dim fso, f, indhold, tmp ' definer/dim variabler

Set fso = CreateObject("Scripting.FileSystemObject") ' Opret Filsystem objektet

''''''''''''''''''''' Læs fra fil:
Set f = fso.OpenTextFile("data.ini",1) ' indstil fil til læsning

' Læs linie for linie indtil slutningen af filen
Do While not f.AtEndOfStream ' forstær indtil slutning af filen
  tmp = f.Readline ' put den nuværende linie i variablen "tmp"
 
  ' Hvis linien ikke er "Userinterface=UK", put den i variablen "indhold", plus linie skift
  if tmp <> "Userinterface=UK" then indhold = indhold & tmp & vbCrLF
Loop

msgbox indhold ' vis indholdet af variablen "indhold"
f.close


''''''''''''''''''''' Skriv til fil:
Set f = fso.CreateTextFile("data.ini", True) '

' Hvis du vil fjerne den tomme linie nederest i filen, fjern ' tegne:
' indhold = Left(indhold, len(indhold) - 2)

f.Write(indhold) ' indholdet af variablen "indhold" skrives til filen
f.Close ' objektet lukkes

set f = nothing
set fso = nothing
Avatar billede tofte Juniormester
01. december 2004 - 16:30 #3
det nemmeste er at ændre linien
if tmp <> "Userinterface=UK" then indhold = indhold & tmp & vbCrLF

til
if (tmp <> "det der skal slettes") OR (tmp <> "det der også skal slettes") then indhold = indhold & tmp & vbCrLF

Ovenstående kan udvides til mange linier
if (tmp <> "...") OR (tmp <> "...") OR (tmp <> "...") then ....
Avatar billede jct Nybegynder
02. december 2004 - 09:35 #4
Jeg har nu testet flere gange, og må desværre konstatere at den ikke sletter linierne. Der kommer ingen fejl, der sker blot intet.
Avatar billede tofte Juniormester
02. december 2004 - 09:55 #5
min fejl. der skal stå AND imellem istedet. Du kan med fordel bruge trim foran tmp, sletter den også linien hvis der måtte være et mellemrum efter, så prøv at skrive

if (Trim(tmp) <> "EXTMGR_ADDINS=NCExtMgrClient") AND (Trim(tmp) <> "AddInMenus=NCMenu") then indhold = indhold & tmp & vbCrLF
Avatar billede jct Nybegynder
02. december 2004 - 10:38 #6
Yes det virker, Tak for hjælpen.
Avatar billede jct Nybegynder
02. december 2004 - 10:39 #7
Øhh! fik du dine point??
Avatar billede tofte Juniormester
02. december 2004 - 10:48 #8
ja, og tak
Avatar billede jct Nybegynder
03. december 2004 - 12:55 #9
Hej Tofte

Et lille tillægsspørgsmål, kan man lave det så den kun retter hvis filen notes.ini findes? jeg oplever at scriptet fryser hvis filen ikke findes.
Avatar billede tofte Juniormester
03. december 2004 - 13:43 #10
Jo, du kan tilføje
if fso.fileexists("data.ini") then
ovenover
Set f = fso.OpenTextFile("data.ini",1) ' indstil fil til læsning


og end if oven over
set fso = nothing i bunden
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