Just nu i M3-nätverket
Gå till innehåll

Filtrera innehållet i en fil med delimiters


JEK

Rekommendera Poster

Hej Jag har en fil som ser ut så här:

 

<blabla

bla bla

> blalba

#B

[tab]AB1020

[tab],

[tab]90AB40

[tab],

#E

>blablalba

blablabla

 

 

 

Det jag vill göra är:

1. Kapa bort raden med " #B " samt ALLT innehåll innan den raden.

2. Kapa bort raden med " #E " samt ALLT innehåll efter den raden.

3. Det jag nu vill göra är att ta bort eventuella tabbar och mellanslag.

4. Sedan vill jag att filen filtreras upp så den ser ut så här:

 

AB1020,90AB40,

 

 

Dvs att all användbar data är placerad på en lång rad.

 

Jag har sökt runt som en dåre och lyckats bränna en himla massor av tid. Jag tror detta är enkelt men jag är ingen höjdare på scripting. Därför överlåter jag detta till någon som vet hur det fungerar.

Länk till kommentar
Dela på andra webbplatser

Scriptet är tänkt att köras native på en windowsmaskin.

Då mha kommandoraden: cscript script.vbs

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Är inte så förtjust i vbscript, but here goes

 

Set re = New RegExp
With re
.Pattern = "(.*#([^\#]+)(#E.*)"
.IgnoreCase = True
.Global = True
End With

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\test.txt", 1)
Set f2 = fso.OpenTextFile("c:\nyfil.txt", 2,True)
Data=f.ReadAll
Data=Replace(Data,chr(9),"")
Data=Replace(Data," ","")
Data=Replace(Data,chr(13),"")
Data=Replace(Data,chr(10),"")
Data2=re.Replace(Data,"$2")
f2.WriteLine Data2
f.Close
f2.Close

Länk till kommentar
Dela på andra webbplatser

Funkar perfekt. Dock märker jag att av någon anledning så bryter den raden mitt i.

Kan dock förklaras med att jag har ett antal tusen värden.

 

Frågan är om man kanske skulle placera värdena rad per rad dvs:

 

AB1020

90AB40

 

och på så vis låta radbrytningen vara en delimiter sedan när filen ska läsas in.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...