vbscript - जांचें कि क्या स्ट्रिंग में विशिष्ट वर्ण VBS स्क्रिप्ट का उपयोग कर रहे हैं



contains string-comparison (1)

मेरी स्क्रिप्ट निम्न बिंदु कर रही है:

  1. मेरी सभी चयनित फ़ोल्डर फ़ाइलें पुनर्प्राप्त करें
  2. तिथि के अनुसार उन्हें कक्षाएं (हाल के एक से पुराने तक)
  3. उन्हें एक विंडो में दिखाएं

यहां मेरी VBS स्क्रिप्ट है (मैं इसे यहां पुनः प्राप्त करता हूं):

    Option Explicit

    Const PathMDB   = "C:\Users\C8461789\Desktop\test_script" 

    MsgBox TriRepertoire,,"Enumération " & PathMDB
    '---lister les fichiers du répertoire ---
    Function TriRepertoire()
    Dim fso, fichier, fileItem
    Dim i, imax, z, valeur, cible, liste
    Set fso = CreateObject("Scripting.FileSystemObject")

    imax = 0
    'début de l'énumération
    For Each fichier In fso.GetFolder(PathMDB).Files
    Set fileItem = fso.GetFile(fichier)

    imax = imax + 1
    ReDim Preserve Tableau(2, imax)
    Tableau(1, imax) = Fichier.Name
    Tableau(2, imax) = FileItem.DateLastModified

    '---trier les fichiers par ordre décroissant de création ---
    Do
    Valeur = 0
    For i = 1 To imax - 1
        If InStr(Tableau(1,i), "average", vbTextCompare) > 0 Then
            If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
                For z = 1 To 2
                   Cible = Tableau(z, i)
                   Tableau(z, i) = Tableau(z, i + 1)
                   Tableau(z, i + 1) = Cible
                Next
                Valeur = 1
            End If
        End If
    Next 
    Loop While Valeur = 1
    Set fileItem = nothing
    Next

    'Affichage du résultat classé
    For i = 1 To imax
    'If IsNull(Tableau) Then
        liste = liste &vbTab& Tableau(1, i) &vbCr 
    'End If
    Next
    TriRepertoire = liste

    Set fso = nothing 
    End Function

मेरी पुनर्प्राप्त फाइल नाम से फ़िल्टर करने के लिए, मैं निम्न शर्त जोड़ना चाहूंगा:

  • प्रत्येक फ़ाइल नाम के लिए, यदि इसमें "औसत" है, तो तालिका में फ़ाइल का नाम जोड़ें
  • अन्यथा, कुछ नहीं करें

मैंने उपयोग करने की कोशिश की

यदि इनसैट (तालाब (1, आई), "औसत", vbTextCompare)> 0 तब

लेकिन यह मुझे यह त्रुटि दिखाता है:


आप InStr गलत तरीके से उपयोग कर रहे हैं। तुम्हारा कोड:

InStr(Tableau(1,i), "average", vbTextCompare)

InStr लिए हस्ताक्षर है:

InStr([start,]string1,string2[,compare])

लेकिन यहां मिले पकड़ यह है कि इसमें दो वैकल्पिक पैरामीटर हैं, जिनमें से एक विशेष मोर्चे के साथ सामने है।

वैकल्पिक। प्रत्येक खोज के लिए प्रारंभिक स्थिति निर्दिष्ट करता है खोज डिफ़ॉल्ट रूप से प्रथम वर्ण स्थिति (1) पर शुरू होती है यह पैरामीटर आवश्यक है अगर तुलना निर्दिष्ट है

इसलिए क्योंकि आप चौथाई पैरामीटर का उपयोग मूल्य vbTextCompare साथ कर रहे हैं, आपको पहले पैरामीटर में प्रारंभिक बिंदु को भी निर्दिष्ट करना होगा, जो कि आपके मामले में 1 (प्रथम वर्ण) होगा। इसलिए, सही कोड है:

InStr(1, Tableau(1,i), "average", vbTextCompare)

आप देख रहे त्रुटि संदेश मूल रूप से शिकायत करते हैं कि पहला पैरामीटर एक पूर्णांक होने की उम्मीद है, लेकिन आप इसे एक स्ट्रिंग खिला रहे हैं।

इनसट्र डॉक्स देखें