Gå til innhold

Trenger hjelp med scripting av fil (VB-script)


Anbefalte innlegg

Hei!

 

Jeg holder på å redigere et login script på jobben. Det skal åpne en tekstfil og erstatte noen bolker med tekst med verdier den henter fra en database, og så kopiere den nye filen fra server til lokal maskin.

 

Det funker fint.

 

Per nå, kjører jeg replace slik:

strNewText = Replace(strNewText, "[aaaaa]", "")

 

Problemet er at jeg ikke klarer å erstatte blank-space, nærmere bestemt linjeskift.

I noen tilfeller ønsker jeg å fjerne den ene linja, og da må jeg jo erstatte den med tom string: "". Men; jeg ønsker også at den tomme linja som blir igjen OG den tomme linja under den igjen skal bli slettet. F eks at dette:

 

--

[aaaaa]

 

[bbbbb]

[ccccc]

[ddddd]

 

skal bli seende slik ut:

 

--

[bbbbb]

[ccccc]

[ddddd]

 

 

Noen som har noen tips til hvordan jeg kan gjøre dette?

Lenke til kommentar
Videoannonse
Annonse

Her har du et lite vbs script som reproduserer ditt eksempel. Så kan du tilpasse det videre selv.

strNewText ="--" & Chr(13) & "[aaaaa]" & Chr(13) & Chr(13) & _
"[bbbbb]" & Chr(13) & "[ccccc]" & Chr(13) & "[ddddd]"
MsgBox(strNewText) 'før
strNewText = replace(strNewText,"[aaaaa]", "")
strNewText = Replace(strNewText, Chr(13) & Chr(13),"")
MsgBox(strNewText) 'etter

Lenke til kommentar
Siden du heter csharp, kan du ikke bare gjøre det i C#?

Mye enklere der.

 

 

Tja, kanskje det hadde vært en mulighet. Tenkte ikke på det siden vi allerede har bøttevis av linjer med kode som kjøres i loginskript, og alt er VB script..så tenkte å fortsette med det.

Måtte eventuelt blitt som en .NET exe-fil som kjøres fra eksisterende skript, eller noe slikt da?

Lenke til kommentar
Her har du et lite vbs script som reproduserer ditt eksempel. Så kan du tilpasse det videre selv.

strNewText ="--" & Chr(13) & "[aaaaa]" & Chr(13) & Chr(13) & _
"[bbbbb]" & Chr(13) & "[ccccc]" & Chr(13) & "[ddddd]"
MsgBox(strNewText) 'før
strNewText = replace(strNewText,"[aaaaa]", "")
strNewText = Replace(strNewText, Chr(13) & Chr(13),"")
MsgBox(strNewText) 'etter

 

 

Hm, har ikke studert dette sååå nøye, men slik det ser ut ved første øyekast så forutsetter dette at strengene "Chr(13)" finnes i selve teksten slik at man kan søke etter dem?

 

I mitt tilfelle har jeg en ren-tekst fil som leses inn og legges i strNewText, og den inneholder ikke noen Chr(13)-strenger, kun "vanlige linjeskift" eller "Enter" om du skjønner...det er disse jeg må søke etter på et eller annet vis...desverre kan jeg ikke legge inn noen Chr(13) eller andre symboler i fila heller, da den brukes uten endringer i noen tilfeller - det er noen If-setninger i skriptet som styrer om disse linjeskiftene skal fjernes eller ikke.

Lenke til kommentar

Har du en txt-fil med vanlige linjeskift (enter) som for eksempel denne laget med notepad:

aaaa
bbbb
cccc
dddd

så får du hele fila som denne:

aaaabbbbccccdddd

dersom du med

readall

leser den inn i minFil og så bruker:

minFil =Replace(minFil,vbcrlf,empty)

Den siste linja viser hvordan du fanger opp og fjerner linjeskift (enter) i txt-filer ved hjelp av vbs script.

Lenke til kommentar
Har du en txt-fil med vanlige linjeskift (enter) som for eksempel denne laget med notepad:

aaaa
bbbb
cccc
dddd

så får du hele fila som denne:

aaaabbbbccccdddd

dersom du med

readall

leser den inn i minFil og så bruker:

minFil =Replace(minFil,vbcrlf,empty)

Den siste linja viser hvordan du fanger opp og fjerner linjeskift (enter) i txt-filer ved hjelp av vbs script.

 

 

Dette fungerte strålende, tusen takk!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...