Avatar billede Slettet bruger
03. august 2005 - 14:17 Der er 14 kommentarer og
1 løsning

FSO Læse alt på nær linier med visse ord

Kan man med FSO læse en tekstfil men udelade de linier der starter med bestemte ord:

Jeg skal undgå ordet "AM," og "UM,"

Min kode ser ud som følger:

Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("../NN/fil.log")
Set f = fso.OpenTextFile(filespec,1)

Do While not f.AtEndOfStream
Linie = f.ReadLine
arrM = Split(Linie,"|")
If not isNumeric(Left(arrM(2), 2)) AND ### her er problemet ### Then
response.write(arrM(2))
response.write("<br>")
end if
Loop
f.Close
Avatar billede softspot Forsker
03. august 2005 - 14:22 #1
If not isNumeric(Left(arrM(2), 2)) AND Left(arrM(0),2) <> "UM" AND Left(arrM(0),2) <> "AM" Then
Avatar billede softspot Forsker
03. august 2005 - 14:23 #2
eller bare

If not isNumeric(Left(arrM(2), 2)) AND Left(Linie,2) <> "UM" AND Left(Linie,2) <> "AM" Then
Avatar billede Slettet bruger
03. august 2005 - 14:27 #3
undersøger den så ikke bare om nr. 2 tegn er M?
Avatar billede musicchart.dk Nybegynder
03. august 2005 - 14:32 #4
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("fil.log")
Set f = fso.OpenTextFile(filespec,1)

Do While not f.AtEndOfStream
    Linie = f.ReadLine
    arrM = Split(Linie,"|")
   
    For i = 0 to UBound(arrM)
        If not isNumeric(Left(arrM(i), 2)) AND Left(Linie,2) <> "UM" AND Left(Linie,2) <> "AM" Then
            response.write(arrM(i))
            response.write("<br>")
        end if
    Next
Loop
f.Close
%>
Avatar billede musicchart.dk Nybegynder
03. august 2005 - 14:32 #5
Husk selvf. lige at ændre:
  filespec = Server.Mappath("fil.log")
til
  filespec = Server.Mappath("../NN/fil.log")
Avatar billede softspot Forsker
03. august 2005 - 14:41 #6
jean >> Nope, den tager de 2 første tegn fra strengen.
Avatar billede softspot Forsker
03. august 2005 - 14:45 #7
musicchart.dk >> Nej, det skal ikke være et loop i et loop, arrM(2) tager det tredie indeks i det array der kommer ud af split-funktionen. Jeg vil tro det er fordi hver linie i log-filen er delt op i sektioner adskilt af pipe (|) og hver linie har en kommando i starten som angiver hvilken type log der er tale om... eller hvad jean?
Avatar billede Slettet bruger
03. august 2005 - 14:48 #8
softspot -> korrektomundo

men sjovt nok filtrerer den ikke UM og AM fra selvom jeg bruger:

If not isNumeric(Left(arrM(2), 2)) AND Left(Linie,2) <> "UM" AND Left(Linie,2) <> "AM" Then
Avatar billede musicchart.dk Nybegynder
03. august 2005 - 14:48 #9
ah... ok - det er jo ikke nemt at gætte.
Så bare glem min kommentar :o)
Avatar billede Slettet bruger
03. august 2005 - 14:49 #10
men hør hov...jeg tror det er fordi første tegn er mellemrum....
Avatar billede Slettet bruger
03. august 2005 - 14:52 #11
fedt nok det var bare det...

smid et svar softspot :-)
Avatar billede softspot Forsker
03. august 2005 - 14:53 #12
Så kan du bruge

linie = LTrim(linie)

inden din split-kommando - det skulle fjerne spaces i starten af strengen...
Avatar billede softspot Forsker
03. august 2005 - 14:54 #13
Hvis det er svar du vil have... så her :)
Avatar billede Slettet bruger
03. august 2005 - 15:08 #14
tak for hjælpen :-)
Avatar billede softspot Forsker
03. august 2005 - 15:17 #15
tak for point :)
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