24. maj 2004 - 14:10Der er
21 kommentarer og 2 løsninger
Sjekke array
Det hender at jeg får en feilmeldig med:
Subscript out of range: '[number: 0]'
, hvordan kan jeg forhindre dette? Dvs sjekke filen for feil? Gi en error melding om hva som er feil eventuelt hvilken linje????
Fil som skal sjekkes kan se slik ut! 22;BP86045;3;37;1;2003;2.2;0;1;181;43;07.11.2003;JA;07.11.2003 22;BP86046;3;37;1;2003;2.2;0;1;181;43;07.11.2003;JA;07.11.2003 22;BP86179;3;37;1;2003;2.2;0;1;181;43;07.11.2003;JA;07.11.2003 22;BP86180;3;37;1;2003;2.2;0;1;181;43;07.11.2003;JA;07.11.2003
<% Filespec = strPath Set F = FSO.OpenTextFile(Filespec,1)
error = ""
'---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - START '---------------------------------------------------------------------------------------------------------------------------------------- function CheckRegNr(inputstreng) dim regcon set regcon = new RegExp regcon.ignoreCase = true regcon.Global = true regcon.pattern = "^([a-zæøå]{2}\d{5})$" CheckRegNr = regcon.test(inputstreng) end function '---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - SLUTT '----------------------------------------------------------------------------------------------------------------------------------------
strMinus30dager = date()
i = 1 iNew = 0 Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";")
'Henter data fra txtfil strEier = Trim(filArr(0)) strRegnr = UCASE(Trim(filArr(1))) strFabrikat = Trim(filArr(2)) strModell = Trim(filArr(3)) strType = Trim(filArr(4)) strArsmodell = Trim(filArr(5)) strMotor = Trim(Replace(filArr(6),".","," ))'Fjerner punktum og setter inn et komma. strListePris = Trim(filArr(7)) strPremie = Trim(filArr(8))'Denne hentes automatisk ut fra systemet, det er kun en premie. strAvdeling = Trim(filArr(9)) strRegAv = Trim(filArr(10))'Denne kan godt settes til fast siden den ikke skal tukles med strGjelderFra = Trim(Replace(filArr(11),".","/" )) strAktiv = Trim(filArr(12)) strSiOppForsikringFra = Trim(Replace(filArr(13),".","/" ))
'---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - START '---------------------------------------------------------------------------------------------------------------------------------------- strFeilLinje = " - Feilen var på linje <b>" & i & "</b> der regnr var <b>" & strRegnr & "</b>!<br>"
If Isnumeric(strEier) = False Then error = error & "- Eier må være nummer! Innholdert i eier er <b>" & strEier & "</b>" & strFeilLinje End if
If Len(strRegnr) <> 7 Then error = error & "- Regnr må ha en lengde på 7! Innholdet i regnr er <b>" & strRegnr & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If not CheckRegNr(strRegnr) Then error = error & "- Regnr må ha 2 bokstaver så 5 tall! Innholdet i regnr er <b>" & strRegnr & "</b>" & strFeilLinje End if
If Isnumeric(strFabrikat) = False Then error = error & "- Fabrikat må være nummer! Innholdert i fabrikat er <b>" & strFabrikat & "</b>" & strFeilLinje End if
If Isnumeric(strModell) = False Then error = error & "- Modell må være nummer! Innholdert i modell er <b>" & strModell & "</b>" & strFeilLinje End if
If Isnumeric(strType) = False Then error = error & "- Type må være nummer! Innholdert i type er <b>" & strType & "</b>" & strFeilLinje End if
If Isnumeric(strArsmodell) = False And Len(strArsmodell) <> 4 Then error = error & "- Årsmodell må være nummer og ha 4 tegn! Innholdert i årsmodell er <b>" & strArsmodell & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If (inStr(strMotor,",")=2) AND isNumeric(left(strMotor,1)) AND isNumeric(right(strMotor,1)) AND (len(strMotor) = 3) then Else error = error & "- Motorstørrelse må ha en lengde på 3! Innholdet i motorstørrelse er <b>" & strMotor & "</b> og lengden er " & Len(strMotor) & strFeilLinje End if
If Isnumeric(strListepris) = False Then error = error & "- Listepris må være nummer! Innholdert i listepris er <b>" & strListepris & "</b>" & strFeilLinje End if
If Isnumeric(strPremie) = False Then error = error & "- Premie må være nummer! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
'Denne kan fjernes hvis det skal velges flere premier! If strPremie <> 1 Then error = error & "- Premie må være 1! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
If Isnumeric(strAvdeling) = False Then error = error & "- Avdeling må være nummer! Innholdert i avdeling er <b>" & strAvdeling & "</b>" & strFeilLinje End if
If Isnumeric(strRegAv ) = False Then error = error & "- Registert av må være nummer! Innholdert i Registert av er " & strRegAv & strFeilLinje End if
<% Filespec = strPath Set F = FSO.OpenTextFile(Filespec,1)
error = ""
'---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - START '---------------------------------------------------------------------------------------------------------------------------------------- function CheckRegNr(inputstreng) dim regcon set regcon = new RegExp regcon.ignoreCase = true regcon.Global = true regcon.pattern = "^([a-zæøå]{2}\d{5})$" CheckRegNr = regcon.test(inputstreng) end function '---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - SLUTT '----------------------------------------------------------------------------------------------------------------------------------------
strMinus30dager = date()
i = 1 iNew = 0
'Sjekker filen at den er korrekt Do While not F.AtEndOfStream if not LBound(filArr) = 0 then error = error "- Det er feil på linje <b>" & i & "</b></br>" end if i = i + 1 Loop
If error <> "" Then error = "" Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";")
'Henter data fra txtfil strEier = Trim(filArr(0)) strRegnr = UCASE(Trim(filArr(1))) strFabrikat = Trim(filArr(2)) strModell = Trim(filArr(3)) strType = Trim(filArr(4)) strArsmodell = Trim(filArr(5)) strMotor = Trim(Replace(filArr(6),".","," ))'Fjerner punktum og setter inn et komma. strListePris = Trim(filArr(7)) strPremie = Trim(filArr(8))'Denne hentes automatisk ut fra systemet, det er kun en premie. strAvdeling = Trim(filArr(9)) strRegAv = Trim(filArr(10))'Denne kan godt settes til fast siden den ikke skal tukles med strGjelderFra = Trim(Replace(filArr(11),".","/" )) strAktiv = Trim(filArr(12)) strSiOppForsikringFra = Trim(Replace(filArr(13),".","/" ))
'---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - START '---------------------------------------------------------------------------------------------------------------------------------------- strFeilLinje = " - Feilen var på linje <b>" & i & "</b> der regnr var <b>" & strRegnr & "</b>!<br>"
If Isnumeric(strEier) = False Then error = error & "- Eier må være nummer! Innholdert i eier er <b>" & strEier & "</b>" & strFeilLinje End if
If Len(strRegnr) <> 7 Then error = error & "- Regnr må ha en lengde på 7! Innholdet i regnr er <b>" & strRegnr & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If not CheckRegNr(strRegnr) Then error = error & "- Regnr må ha 2 bokstaver så 5 tall! Innholdet i regnr er <b>" & strRegnr & "</b>" & strFeilLinje End if
If Isnumeric(strFabrikat) = False Then error = error & "- Fabrikat må være nummer! Innholdert i fabrikat er <b>" & strFabrikat & "</b>" & strFeilLinje End if
If Isnumeric(strModell) = False Then error = error & "- Modell må være nummer! Innholdert i modell er <b>" & strModell & "</b>" & strFeilLinje End if
If Isnumeric(strType) = False Then error = error & "- Type må være nummer! Innholdert i type er <b>" & strType & "</b>" & strFeilLinje End if
If Isnumeric(strArsmodell) = False And Len(strArsmodell) <> 4 Then error = error & "- Årsmodell må være nummer og ha 4 tegn! Innholdert i årsmodell er <b>" & strArsmodell & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If (inStr(strMotor,",")=2) AND isNumeric(left(strMotor,1)) AND isNumeric(right(strMotor,1)) AND (len(strMotor) = 3) then Else error = error & "- Motorstørrelse må ha en lengde på 3! Innholdet i motorstørrelse er <b>" & strMotor & "</b> og lengden er " & Len(strMotor) & strFeilLinje End if
If Isnumeric(strListepris) = False Then error = error & "- Listepris må være nummer! Innholdert i listepris er <b>" & strListepris & "</b>" & strFeilLinje End if
If Isnumeric(strPremie) = False Then error = error & "- Premie må være nummer! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
'Denne kan fjernes hvis det skal velges flere premier! If strPremie <> 1 Then error = error & "- Premie må være 1! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
If Isnumeric(strAvdeling) = False Then error = error & "- Avdeling må være nummer! Innholdert i avdeling er <b>" & strAvdeling & "</b>" & strFeilLinje End if
If Isnumeric(strRegAv ) = False Then error = error & "- Registert av må være nummer! Innholdert i Registert av er " & strRegAv & strFeilLinje End if
strDato2 = strGjelderFra
strDay2 = Day( strdato2 ) if len(strDay2) = 1 then strDay2 = "0" & strDay2 end if
strMonth2 = Month( strdato2 ) if len(strMonth2) = 1 then strMonth2 = "0" & strMonth2 end if
strYear2 = Year( strdato2 ) if len(strYear2) = 1 then strYear2 = "0" & strYear2 end if
If Len(strGjelderFra) <> 10 OR Instr(strGjelderFra,"/")=0 OR Instr(strGjelderFra,"/")=0 Then error = error & "- Gjelder fra er ugyldig! Eks: dd.mm.yyyy Innholdert i gjelder fra er " & strGjelderFra & strFeilLinje End If
'Teller antall dager strAntDager = DateDiff("Y", strGjelderFra, strMinus30dager)
If strAntDager > 30 Then error = error & "- Gjelder fra kan ikke være eldre enn 30 dager. Antall dager var tilbake var " & strAntDager & strFeilLinje End if
If strAktiv <> "JA" AND strAktiv <> "NEI" Then error = error & "- Aktiv må være enten JA eller NEI! Innholdet i strAktiv er " & strAktiv & strFeilLinje End if
If Len(strSiOppForsikringFra) <> 10 OR Instr(strSiOppForsikringFra,"/")=0 OR Instr(strSiOppForsikringFra,"/")=0 Then error = error & "- Si oppForsikring fra er ugyldig! Eks: dd.mm.yyyy Innholdert i si opp forsikring fra er " & strSiOppForsikringFra & strFeilLinje End If '---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - SLUTT '---------------------------------------------------------------------------------------------------------------------------------------- i = i + 1 iNew = iNew + 1 Loop
Session("AntBiler") = iNew
If i = 0 Then Response.Redirect "step1.asp?MSG=Filen hadde ingen poster! Prøv med ny fil" End if
Set F = Nothing
If error = "" Then FSO.CopyFile strPath,strOKPath FSO.DeleteFile(strPath) Else FSO.DeleteFile(strPath) End if
<% Filespec = strPath Set F = FSO.OpenTextFile(Filespec,1)
error = ""
'---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - START '---------------------------------------------------------------------------------------------------------------------------------------- function CheckRegNr(inputstreng) dim regcon set regcon = new RegExp regcon.ignoreCase = true regcon.Global = true regcon.pattern = "^([a-zæøå]{2}\d{5})$" CheckRegNr = regcon.test(inputstreng) end function '---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - SLUTT '----------------------------------------------------------------------------------------------------------------------------------------
strMinus30dager = date()
i = 1 iNew = 0 j = 0
If error <> "" Then error = "" Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";") 'chekker om filen er ok.. if LBound(FilArr) = 0 then
'Henter data fra txtfil strEier = Trim(filArr(0)) strRegnr = UCASE(Trim(filArr(1))) strFabrikat = Trim(filArr(2)) strModell = Trim(filArr(3)) strType = Trim(filArr(4)) strArsmodell = Trim(filArr(5)) strMotor = Trim(Replace(filArr(6),".","," ))'Fjerner punktum og setter inn et komma. strListePris = Trim(filArr(7)) strPremie = Trim(filArr(8))'Denne hentes automatisk ut fra systemet, det er kun en premie. strAvdeling = Trim(filArr(9)) strRegAv = Trim(filArr(10))'Denne kan godt settes til fast siden den ikke skal tukles med strGjelderFra = Trim(Replace(filArr(11),".","/" )) strAktiv = Trim(filArr(12)) strSiOppForsikringFra = Trim(Replace(filArr(13),".","/" ))
'---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - START '---------------------------------------------------------------------------------------------------------------------------------------- strFeilLinje = " - Feilen var på linje <b>" & i & "</b> der regnr var <b>" & strRegnr & "</b>!<br>"
If Isnumeric(strEier) = False Then error = error & "- Eier må være nummer! Innholdert i eier er <b>" & strEier & "</b>" & strFeilLinje End if
If Len(strRegnr) <> 7 Then error = error & "- Regnr må ha en lengde på 7! Innholdet i regnr er <b>" & strRegnr & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If not CheckRegNr(strRegnr) Then error = error & "- Regnr må ha 2 bokstaver så 5 tall! Innholdet i regnr er <b>" & strRegnr & "</b>" & strFeilLinje End if
If Isnumeric(strFabrikat) = False Then error = error & "- Fabrikat må være nummer! Innholdert i fabrikat er <b>" & strFabrikat & "</b>" & strFeilLinje End if
If Isnumeric(strModell) = False Then error = error & "- Modell må være nummer! Innholdert i modell er <b>" & strModell & "</b>" & strFeilLinje End if
If Isnumeric(strType) = False Then error = error & "- Type må være nummer! Innholdert i type er <b>" & strType & "</b>" & strFeilLinje End if
If Isnumeric(strArsmodell) = False And Len(strArsmodell) <> 4 Then error = error & "- Årsmodell må være nummer og ha 4 tegn! Innholdert i årsmodell er <b>" & strArsmodell & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If (inStr(strMotor,",")=2) AND isNumeric(left(strMotor,1)) AND isNumeric(right(strMotor,1)) AND (len(strMotor) = 3) then Else error = error & "- Motorstørrelse må ha en lengde på 3! Innholdet i motorstørrelse er <b>" & strMotor & "</b> og lengden er " & Len(strMotor) & strFeilLinje End if
If Isnumeric(strListepris) = False Then error = error & "- Listepris må være nummer! Innholdert i listepris er <b>" & strListepris & "</b>" & strFeilLinje End if
If Isnumeric(strPremie) = False Then error = error & "- Premie må være nummer! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
'Denne kan fjernes hvis det skal velges flere premier! If strPremie <> 1 Then error = error & "- Premie må være 1! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
If Isnumeric(strAvdeling) = False Then error = error & "- Avdeling må være nummer! Innholdert i avdeling er <b>" & strAvdeling & "</b>" & strFeilLinje End if
If Isnumeric(strRegAv ) = False Then error = error & "- Registert av må være nummer! Innholdert i Registert av er " & strRegAv & strFeilLinje End if
strDato2 = strGjelderFra
strDay2 = Day( strdato2 ) if len(strDay2) = 1 then strDay2 = "0" & strDay2 end if
strMonth2 = Month( strdato2 ) if len(strMonth2) = 1 then strMonth2 = "0" & strMonth2 end if
strYear2 = Year( strdato2 ) if len(strYear2) = 1 then strYear2 = "0" & strYear2 end if
If Len(strGjelderFra) <> 10 OR Instr(strGjelderFra,"/")=0 OR Instr(strGjelderFra,"/")=0 Then error = error & "- Gjelder fra er ugyldig! Eks: dd.mm.yyyy Innholdert i gjelder fra er " & strGjelderFra & strFeilLinje End If
'Teller antall dager strAntDager = DateDiff("Y", strGjelderFra, strMinus30dager)
If strAntDager > 30 Then error = error & "- Gjelder fra kan ikke være eldre enn 30 dager. Antall dager var tilbake var " & strAntDager & strFeilLinje End if
If strAktiv <> "JA" AND strAktiv <> "NEI" Then error = error & "- Aktiv må være enten JA eller NEI! Innholdet i strAktiv er " & strAktiv & strFeilLinje End if
If Len(strSiOppForsikringFra) <> 10 OR Instr(strSiOppForsikringFra,"/")=0 OR Instr(strSiOppForsikringFra,"/")=0 Then error = error & "- Si oppForsikring fra er ugyldig! Eks: dd.mm.yyyy Innholdert i si opp forsikring fra er " & strSiOppForsikringFra & strFeilLinje End If '---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - SLUTT '---------------------------------------------------------------------------------------------------------------------------------------- i = i + 1 iNew = iNew + 1 else error = error "- Det er feil på linje <b>" & j & "</b></br>" end if
Loop
Session("AntBiler") = iNew
If i = 0 Then Response.Redirect "step1.asp?MSG=Filen hadde ingen poster! Prøv med ny fil" End if
Set F = Nothing
If error = "" Then FSO.CopyFile strPath,strOKPath FSO.DeleteFile(strPath) Else FSO.DeleteFile(strPath) End if
<% Filespec = strPath Set F = FSO.OpenTextFile(Filespec,1)
error = ""
'---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - START '---------------------------------------------------------------------------------------------------------------------------------------- function CheckRegNr(inputstreng) dim regcon set regcon = new RegExp regcon.ignoreCase = true regcon.Global = true regcon.pattern = "^([a-zæøå]{2}\d{5})$" CheckRegNr = regcon.test(inputstreng) end function '---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - SLUTT '----------------------------------------------------------------------------------------------------------------------------------------
strMinus30dager = date()
i = 1 iNew = 0 j = 1 Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";")
'Sjekker om formatet er OK If LBound(FilArr) = 0 Then
'Henter data fra txtfil strEier = Trim(filArr(0)) strRegnr = UCASE(Trim(filArr(1))) strFabrikat = Trim(filArr(2)) strModell = Trim(filArr(3)) strType = Trim(filArr(4)) strArsmodell = Trim(filArr(5)) strMotor = Trim(Replace(filArr(6),".","," ))'Fjerner punktum og setter inn et komma. strListePris = Trim(filArr(7)) strPremie = Trim(filArr(8))'Denne hentes automatisk ut fra systemet, det er kun en premie. strAvdeling = Trim(filArr(9)) strRegAv = Trim(filArr(10))'Denne kan godt settes til fast siden den ikke skal tukles med strGjelderFra = Trim(Replace(filArr(11),".","/" )) strAktiv = Trim(filArr(12)) strSiOppForsikringFra = Trim(Replace(filArr(13),".","/" ))
'---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - START '---------------------------------------------------------------------------------------------------------------------------------------- strFeilLinje = " - Feilen var på linje <b>" & i & "</b> der regnr var <b>" & strRegnr & "</b>!<br>"
If Isnumeric(strEier) = False Then error = error & "- Eier må være nummer! Innholdert i eier er <b>" & strEier & "</b>" & strFeilLinje End if
If Len(strRegnr) <> 7 Then error = error & "- Regnr må ha en lengde på 7! Innholdet i regnr er <b>" & strRegnr & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If not CheckRegNr(strRegnr) Then error = error & "- Regnr må ha 2 bokstaver så 5 tall! Innholdet i regnr er <b>" & strRegnr & "</b>" & strFeilLinje End if
If Isnumeric(strFabrikat) = False Then error = error & "- Fabrikat må være nummer! Innholdert i fabrikat er <b>" & strFabrikat & "</b>" & strFeilLinje End if
If Isnumeric(strModell) = False Then error = error & "- Modell må være nummer! Innholdert i modell er <b>" & strModell & "</b>" & strFeilLinje End if
If Isnumeric(strType) = False Then error = error & "- Type må være nummer! Innholdert i type er <b>" & strType & "</b>" & strFeilLinje End if
If Isnumeric(strArsmodell) = False And Len(strArsmodell) <> 4 Then error = error & "- Årsmodell må være nummer og ha 4 tegn! Innholdert i årsmodell er <b>" & strArsmodell & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If (inStr(strMotor,",")=2) AND isNumeric(left(strMotor,1)) AND isNumeric(right(strMotor,1)) AND (len(strMotor) = 3) then Else error = error & "- Motorstørrelse må ha en lengde på 3! Innholdet i motorstørrelse er <b>" & strMotor & "</b> og lengden er " & Len(strMotor) & strFeilLinje End if
If Isnumeric(strListepris) = False Then error = error & "- Listepris må være nummer! Innholdert i listepris er <b>" & strListepris & "</b>" & strFeilLinje End if
If Isnumeric(strPremie) = False Then error = error & "- Premie må være nummer! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
'Denne kan fjernes hvis det skal velges flere premier! If strPremie <> 1 Then error = error & "- Premie må være 1! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
If Isnumeric(strAvdeling) = False Then error = error & "- Avdeling må være nummer! Innholdert i avdeling er <b>" & strAvdeling & "</b>" & strFeilLinje End if
If Isnumeric(strRegAv ) = False Then error = error & "- Registert av må være nummer! Innholdert i Registert av er " & strRegAv & strFeilLinje End if
strDato2 = strGjelderFra
strDay2 = Day( strdato2 ) if len(strDay2) = 1 then strDay2 = "0" & strDay2 end if
strMonth2 = Month( strdato2 ) if len(strMonth2) = 1 then strMonth2 = "0" & strMonth2 end if
strYear2 = Year( strdato2 ) if len(strYear2) = 1 then strYear2 = "0" & strYear2 end if
If Len(strGjelderFra) <> 10 OR Instr(strGjelderFra,"/")=0 OR Instr(strGjelderFra,"/")=0 Then error = error & "- Gjelder fra er ugyldig! Eks: dd.mm.yyyy Innholdert i gjelder fra er " & strGjelderFra & strFeilLinje End If
'Teller antall dager strAntDager = DateDiff("Y", strGjelderFra, strMinus30dager)
If strAntDager > 30 Then error = error & "- Gjelder fra kan ikke være eldre enn 30 dager. Antall dager var tilbake var " & strAntDager & strFeilLinje End if
If strAktiv <> "JA" AND strAktiv <> "NEI" Then error = error & "- Aktiv må være enten JA eller NEI! Innholdet i strAktiv er " & strAktiv & strFeilLinje End if
If Len(strSiOppForsikringFra) <> 10 OR Instr(strSiOppForsikringFra,"/")=0 OR Instr(strSiOppForsikringFra,"/")=0 Then error = error & "- Si oppForsikring fra er ugyldig! Eks: dd.mm.yyyy Innholdert i si opp forsikring fra er " & strSiOppForsikringFra & strFeilLinje End If '---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - SLUTT '---------------------------------------------------------------------------------------------------------------------------------------- i = i + 1 iNew = iNew + 1 j = J + 1 Else error = error & "- Det er feil i linje <b>" & j & "</b><br>" Loop
Session("AntBiler") = iNew
If i = 0 Then Response.Redirect "step1.asp?MSG=Filen hadde ingen poster! Prøv med ny fil" End if
Set F = Nothing
If error = "" Then FSO.CopyFile strPath,strOKPath FSO.DeleteFile(strPath) Else FSO.DeleteFile(strPath) End if
Set FSO = CreateObject("Scripting.FileSystemObject")
If not FSO.FileExists(strPath) Then Response.Redirect "step1.asp?MSG=Filen eksisterer ikke lenger, last opp ny fil(S3)" Response.End End if
Filespec = strPath Set F = FSO.OpenTextFile(Filespec,1)
error = ""
'---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - START '---------------------------------------------------------------------------------------------------------------------------------------- function CheckRegNr(inputstreng) dim regcon set regcon = new RegExp regcon.ignoreCase = true regcon.Global = true regcon.pattern = "^([a-zæøå]{2}\d{5})$" CheckRegNr = regcon.test(inputstreng) end function '---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - SLUTT '----------------------------------------------------------------------------------------------------------------------------------------
strMinus30dager = date()
i = 1 iNew = 0 j = 1 Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";")
'Sjekker om formatet er OK If LBound(FilArr) = 0 Then
'Henter data fra txtfil strEier = Trim(filArr(0)) strRegnr = UCASE(Trim(filArr(1))) strFabrikat = Trim(filArr(2)) strModell = Trim(filArr(3)) strType = Trim(filArr(4)) strArsmodell = Trim(filArr(5)) strMotor = Trim(Replace(filArr(6),".","," ))'Fjerner punktum og setter inn et komma. strListePris = Trim(filArr(7)) strPremie = Trim(filArr(8))'Denne hentes automatisk ut fra systemet, det er kun en premie. strAvdeling = Trim(filArr(9)) strRegAv = Trim(filArr(10))'Denne kan godt settes til fast siden den ikke skal tukles med strGjelderFra = Trim(Replace(filArr(11),".","/" )) strAktiv = Trim(filArr(12)) strSiOppForsikringFra = Trim(Replace(filArr(13),".","/" ))
'---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - START '---------------------------------------------------------------------------------------------------------------------------------------- strFeilLinje = " - Feilen var på linje <b>" & i & "</b> der regnr var <b>" & strRegnr & "</b>!<br>"
If Isnumeric(strEier) = False Then error = error & "- Eier må være nummer! Innholdert i eier er <b>" & strEier & "</b>" & strFeilLinje End if
If Len(strRegnr) <> 7 Then error = error & "- Regnr må ha en lengde på 7! Innholdet i regnr er <b>" & strRegnr & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If not CheckRegNr(strRegnr) Then error = error & "- Regnr må ha 2 bokstaver så 5 tall! Innholdet i regnr er <b>" & strRegnr & "</b>" & strFeilLinje End if
If Isnumeric(strFabrikat) = False Then error = error & "- Fabrikat må være nummer! Innholdert i fabrikat er <b>" & strFabrikat & "</b>" & strFeilLinje End if
If Isnumeric(strModell) = False Then error = error & "- Modell må være nummer! Innholdert i modell er <b>" & strModell & "</b>" & strFeilLinje End if
If Isnumeric(strType) = False Then error = error & "- Type må være nummer! Innholdert i type er <b>" & strType & "</b>" & strFeilLinje End if
If Isnumeric(strArsmodell) = False And Len(strArsmodell) <> 4 Then error = error & "- Årsmodell må være nummer og ha 4 tegn! Innholdert i årsmodell er <b>" & strArsmodell & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If (inStr(strMotor,",")=2) AND isNumeric(left(strMotor,1)) AND isNumeric(right(strMotor,1)) AND (len(strMotor) = 3) then Else error = error & "- Motorstørrelse må ha en lengde på 3! Innholdet i motorstørrelse er <b>" & strMotor & "</b> og lengden er " & Len(strMotor) & strFeilLinje End if
If Isnumeric(strListepris) = False Then error = error & "- Listepris må være nummer! Innholdert i listepris er <b>" & strListepris & "</b>" & strFeilLinje End if
If Isnumeric(strPremie) = False Then error = error & "- Premie må være nummer! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
'Denne kan fjernes hvis det skal velges flere premier! If strPremie <> 1 Then error = error & "- Premie må være 1! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
If Isnumeric(strAvdeling) = False Then error = error & "- Avdeling må være nummer! Innholdert i avdeling er <b>" & strAvdeling & "</b>" & strFeilLinje End if
If Isnumeric(strRegAv ) = False Then error = error & "- Registert av må være nummer! Innholdert i Registert av er " & strRegAv & strFeilLinje End if
strDato2 = strGjelderFra
strDay2 = Day( strdato2 ) if len(strDay2) = 1 then strDay2 = "0" & strDay2 end if
strMonth2 = Month( strdato2 ) if len(strMonth2) = 1 then strMonth2 = "0" & strMonth2 end if
strYear2 = Year( strdato2 ) if len(strYear2) = 1 then strYear2 = "0" & strYear2 end if
If Len(strGjelderFra) <> 10 OR Instr(strGjelderFra,"/")=0 OR Instr(strGjelderFra,"/")=0 Then error = error & "- Gjelder fra er ugyldig! Eks: dd.mm.yyyy Innholdert i gjelder fra er " & strGjelderFra & strFeilLinje End If
'Teller antall dager strAntDager = DateDiff("Y", strGjelderFra, strMinus30dager)
If strAntDager > 30 Then error = error & "- Gjelder fra kan ikke være eldre enn 30 dager. Antall dager var tilbake var " & strAntDager & strFeilLinje End if
If strAktiv <> "JA" AND strAktiv <> "NEI" Then error = error & "- Aktiv må være enten JA eller NEI! Innholdet i strAktiv er " & strAktiv & strFeilLinje End if
If Len(strSiOppForsikringFra) <> 10 OR Instr(strSiOppForsikringFra,"/")=0 OR Instr(strSiOppForsikringFra,"/")=0 Then error = error & "- Si oppForsikring fra er ugyldig! Eks: dd.mm.yyyy Innholdert i si opp forsikring fra er " & strSiOppForsikringFra & strFeilLinje End If '---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - SLUTT '---------------------------------------------------------------------------------------------------------------------------------------- i = i + 1 iNew = iNew + 1 Loop Else error = error & "- Det er feil i linje <b>" & j & "</b> (Sjekk formatet i filen!)<br>" j = J + 1 Loop End if
Session("AntBiler") = iNew
If i = 0 Then Response.Redirect "step1.asp?MSG=Filen hadde ingen poster! Prøv med ny fil" End if
Set F = Nothing
If error = "" Then FSO.CopyFile strPath,strOKPath FSO.DeleteFile(strPath) Else FSO.DeleteFile(strPath) End if
Set FSO = CreateObject("Scripting.FileSystemObject")
If not FSO.FileExists(strPath) Then Response.Redirect "step1.asp?MSG=Filen eksisterer ikke lenger, last opp ny fil(S3)" Response.End End if
Filespec = strPath Set F = FSO.OpenTextFile(Filespec,1)
error = ""
'---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - START '---------------------------------------------------------------------------------------------------------------------------------------- function CheckRegNr(inputstreng) dim regcon set regcon = new RegExp regcon.ignoreCase = true regcon.Global = true regcon.pattern = "^([a-zæøå]{2}\d{5})$" CheckRegNr = regcon.test(inputstreng) end function '---------------------------------------------------------------------------------------------------------------------------------------- 'FUNCTION SOM SJEKKER REGNR FOR 2 TEGN og 5 TALL - SLUTT '----------------------------------------------------------------------------------------------------------------------------------------
strMinus30dager = date()
i = 1 iNew = 0 j = 1 Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";")
Response.write(LBound(filarr)) Loop
Session("AntBiler") = iNew
If i = 0 Then Response.Redirect "step1.asp?MSG=Filen hadde ingen poster! Prøv med ny fil" End if
Set F = Nothing
If error = "" Then FSO.CopyFile strPath,strOKPath FSO.DeleteFile(strPath) Else FSO.DeleteFile(strPath) End if
Løste feilen på følgende måte: UBound(FilArr) isteden for LBound(FilArr) :-)
Post et svar så skal du få halvparten av pointene... Takk for hjelpen.
i = 1 iNew = 0 j = 1 Do While not F.AtEndOfStream
FilArr = Split(F.Readline, ";")
If UBound(FilArr) = 13 Then
'Henter data fra txtfil strEier = Trim(filArr(0)) strRegnr = UCASE(Trim(filArr(1))) strFabrikat = Trim(filArr(2)) strModell = Trim(filArr(3)) strType = Trim(filArr(4)) strArsmodell = Trim(filArr(5)) strMotor = Trim(Replace(filArr(6),".","," ))'Fjerner punktum og setter inn et komma. strListePris = Trim(filArr(7)) strPremie = Trim(filArr(8))'Denne hentes automatisk ut fra systemet, det er kun en premie. strAvdeling = Trim(filArr(9)) strRegAv = Trim(filArr(10))'Denne kan godt settes til fast siden den ikke skal tukles med strGjelderFra = Trim(Replace(filArr(11),".","/" )) strAktiv = Trim(filArr(12)) strSiOppForsikringFra = Trim(Replace(filArr(13),".","/" ))
'---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - START '---------------------------------------------------------------------------------------------------------------------------------------- strFeilLinje = " - Feilen var på linje <b>" & i & "</b> der regnr var <b>" & strRegnr & "</b>!<br>"
If Isnumeric(strEier) = False Then error = error & "- Eier må være nummer! Innholdert i eier er <b>" & strEier & "</b>" & strFeilLinje End if
If Len(strRegnr) <> 7 Then error = error & "- Regnr må ha en lengde på 7! Innholdet i regnr er <b>" & strRegnr & "</b> og lengden er " & Len(strRegnr) & strFeilLinje End if
If not CheckRegNr(strRegnr) Then error = error & "- Regnr må ha 2 bokstaver så 5 tall! Innholdet i regnr er <b>" & strRegnr & "</b>" & strFeilLinje End if
If Isnumeric(strFabrikat) = False Then error = error & "- Fabrikat må være nummer! Innholdert i fabrikat er <b>" & strFabrikat & "</b>" & strFeilLinje End if
If Isnumeric(strModell) = False Then error = error & "- Modell må være nummer! Innholdert i modell er <b>" & strModell & "</b>" & strFeilLinje End if
If Isnumeric(strType) = False Then error = error & "- Type må være nummer! Innholdert i type er <b>" & strType & "</b>" & strFeilLinje End if
If Isnumeric(strArsmodell) = False OR Len(strArsmodell) <> 4 Then error = error & "- Årsmodell må være nummer og ha 4 tall! Innholdert i årsmodell er <b>" & strArsmodell & "</b> og lengden er " & Len(strArsmodell) & strFeilLinje End if
If (inStr(strMotor,",")=2) AND isNumeric(left(strMotor,1)) AND isNumeric(right(strMotor,1)) AND (len(strMotor) = 3) then Else error = error & "- Motorstørrelse må ha en lengde på 3 (tall,tall)! Innholdet i motorstørrelse er <b>" & strMotor & "</b> og lengden er " & Len(strMotor) & strFeilLinje End if
If Isnumeric(strListepris) = False Then error = error & "- Listepris må være nummer! Innholdert i listepris er <b>" & strListepris & "</b>" & strFeilLinje End if
If Isnumeric(strPremie) = False Then error = error & "- Premie må være nummer! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
'Denne kan fjernes hvis det skal velges flere premier! If strPremie <> 1 Then error = error & "- Premie må være 1! Innholdert i premie er <b>" & strPremie & "</b>" & strFeilLinje End if
If Isnumeric(strAvdeling) = False Then error = error & "- Avdeling må være nummer! Innholdert i avdeling er <b>" & strAvdeling & "</b>" & strFeilLinje End if
If Isnumeric(strRegAv ) = False Then error = error & "- Registert av må være nummer! Innholdert i Registert av er " & strRegAv & strFeilLinje End if
strDato2 = strGjelderFra
strDay2 = Day( strdato2 ) if len(strDay2) = 1 then strDay2 = "0" & strDay2 end if
strMonth2 = Month( strdato2 ) if len(strMonth2) = 1 then strMonth2 = "0" & strMonth2 end if
strYear2 = Year( strdato2 ) if len(strYear2) = 1 then strYear2 = "0" & strYear2 end if
If Len(strGjelderFra) <> 10 OR Instr(strGjelderFra,"/")=0 OR Instr(strGjelderFra,"/")=0 Then error = error & "- Gjelder fra er ugyldig! Eks: dd.mm.yyyy Innholdert i gjelder fra er " & strGjelderFra & strFeilLinje End If
If strAktiv <> "JA" AND strAktiv <> "NEI" Then error = error & "- Aktiv må være enten JA eller NEI! Innholdet i strAktiv er " & strAktiv & strFeilLinje End if
If Len(strSiOppForsikringFra) <> 10 OR Instr(strSiOppForsikringFra,"/")=0 OR Instr(strSiOppForsikringFra,"/")=0 Then error = error & "- Si oppForsikring fra er ugyldig! Eks: dd.mm.yyyy Innholdert i si opp forsikring fra er " & strSiOppForsikringFra & strFeilLinje End If '---------------------------------------------------------------------------------------------------------------------------------------- 'SJEKKER DATA - SLUTT '---------------------------------------------------------------------------------------------------------------------------------------- Else error = error & "- Det er feil i linje <b>" & j & "</b> (Sjekk at filen ikke har en tom/blank linje og at det er 14 poster separert med semikolon!)<br>" End if i = i + 1 iNew = iNew + 1 j = j + 1 Loop
Tænkte slet ikke i de baner ;-) Der kommer et svar her..
Synes godt om
Ny brugerNybegynder
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.