Gå til innhold

problem med CASE SELECT i vbscript


Anbefalte innlegg

*Scriptet som står under, brukes til å splitte en variabel, som er hentet fra en barcode et annet sted i et dokumenthåndteringssystem.

Deretter brukes den første variabelen (barcode1) til å opprette en mappe med barcodeverdien direkte.

Det jeg helst skulle gjort, er å , dersom barcode1 for eksempel er lik SZ, opprette mappen med navnet TEST1, om barcode1 er lik SH opprette mappen med navnet test2, osv.

Dette har jeg forsøkt å lese litt om, og kommet frem til at CASe SELECT kanskje er tingen å benytte seg av her.

 

Er det noen som kan hjelpe meg med å forstå syntaksen til dette ? eventuelt komme med eksempler basert på det nedenstående scriptet ?!

 

Med vennlig hilsen en som ikke hatr rørt VBscript spesielt mye før ......

 

Sub SplitBarcode_OnLoad()
On Error Resume Next

EKOManager.StatusMessage("Loading splitt barcode script" )



Dim Barcode

Set PTopic = KnowledgeObject.GetPersistenceTopic()

If Not(PTopic Is Nothing) Then
EKOManager.StatusMessage(PTopic.EntryCount(""))
Set Entry = PTopic.GetEntry("Barcode")
If Not(Entry Is Nothing) Then
Barcode = Entry.Value
EKOManager.StatusMessage("Barcode: " & Barcode)
 
'splitt
Barcode1 = Left(Barcode,2)
Lengde = Len(Barcode)-2
Barcode2 =Right(Barcode,Lengde)
 
EKOManager.StatusMessage("New Extracted Value1: " & Barcode1 )
EKOManager.StatusMessage("New Extracted Value1: " & Barcode2 )
 
 
'Define UserTag that contains the folder name
sUserTag1 = "~USR::Barcode1~"
sUserTag2 = "~USR::Barcode2~"
 
'Replace the UserTag in the rest of the runtime configuration for the current job  	
Set Topic  = KnowledgeContent.GetTopicInterface
 
If Not(Topic Is Nothing) And Barcode <> "" Then
Topic.Replace sUserTag1, Barcode1
Topic.Replace sUserTag2, Barcode2
Else
KnowledgeObject.Status = 2 'KO_STATUS_BAD
EKOManager.ErrorMessage("! Barcode not found !")
End If  	

Else	
KnowledgeObject.Status = 2 'KO_STATUS_BAD
End If
End If	


End Sub

Sub ExtractBarcodeValue_OnUnLoad()
EKOManager.StatusMessage("Unloading Script" )
End Sub

Lenke til kommentar
Videoannonse
Annonse

En behøver nødvendigvis ikke benytte Select Case til dette, blant annet ville en Collection eller en Array også kunne fungere tilfredstillende. Skjønt, i dette tilfellet - med et slikt begrenset utvalg med mulige strenger - er nok Select Case et godt valg. Syntaksen for å utføre dette (samt lage mapper), er som følger:

 

Dim oFSO, sDirectory

' Root-mappe
sDirectory = "C:\"

' Lager referanse til objekt vi skal benytte
Set oFSO = CreateObject("Scripting.FileSystemObject")

Select Case barcode1
   Case "SZ"
       oFSO.CreateFolder(sDirectory & "TEST1")

   Case "SH"
       oFSO.CreateFolder(sDirectory & "TEST1")

End Select

Lenke til kommentar
Det jeg helst skulle gjort, er å , dersom barcode1 for eksempel er lik SZ, opprette mappen med navnet TEST1, om barcode1 er lik SH opprette mappen med navnet test2, osv.

Dette har jeg forsøkt å lese litt om, og kommet frem til at CASe SELECT kanskje er tingen å benytte seg av her.

Heisan

Litt usikker på hva du etterspør her, men det virker som om du trenger en case struktur. Hva med noe slik:

PUBLIC SUB OpprettKatalog(ByVal StringToCheck as String, optional ByVal Path as String = "C:\")
   if mid(Path,len(Path),1) <> "\" then
       Path = Path & "\"
   End if
   select case StringToCheck
       Case "SZ"
           Path = Path & "TEST1"
       Case "SH"
           Path = Path & "TEST2"
       O.S.V
   END Select
   MKDIR Path
End Sub

Dermed har du en metode som gjør jobben for deg. Du kaller den opp slik:

 

OpprettKatalog(BarCode1) ' Oppretter katalogen i C:\

 

OpprettKatalog(BarCode1. "C:\BarcodeDir\") ' Oppretter da i C:\BarcodeDir

 

OpprettKatalog(BarCode1, "\\SERVER\GivenShare\SomeOtherDir")

 

o.s.v.

 

 

HDH

 

Ole

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...