Namen zusammensetzen aus variablen

  • VBScript

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Namen zusammensetzen aus variablen

    Hallo

    Problemstellung - ich habe 300 Scanner als Beispiel die als Namen SCAN001 - SCAN002 usw... heißen
    Jedem Namen ist ein Ort zugeordnet wie im Beispiel 041 ist Kempten - 027 ist Badsalzuflen usw...
    ich würde nun ungern für jeden der 300 Scanner eine eigene if Schleife anlegen.
    Gibt es Vorschläge hier etwas zu verbessern ?
    Das ist er Code bisher - er funktioniert auch soweit.

    Visual Basic-Quellcode

    1. Set RegX = NEW RegExp
    2. RegX.Global = True
    3. Dim MyString, MySuffix, MySupport, RegX, ReplaceString, ReplacedText
    4. MyString = WScript.Arguments.Item(0)
    5. MySuffix = "@davd3041.dach041.d.com"
    6. MySupport = "support@d.com"
    7. RegX.Pattern = "SCAN..............."
    8. '----------------------------------------------------------------------
    9. If InStr(1,MyString, "SCAN041") Then
    10. ReplaceString = "kempten"
    11. ReplacedText = RegX.Replace(MyString, ReplaceString)
    12. WScript.Echo ReplacedText+MySuffix
    13. '----------------------------------------------------------------------
    14. ElseIf InStr(1,MyString, "SCAN027") Then
    15. ReplaceString = "badsalzuflen"
    16. ReplacedText = RegX.Replace(MyString, ReplaceString)
    17. WScript.Echo ReplacedText+MySuffix
    18. '----------------------------------------------------------------------
    19. Else WScript.Echo MySupport
    20. End If


    CodeTags gesetzt ~VaporiZed

    *Topic verschoben (Admin)*

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Willkommen im Forum.

    Arbeitest Du in Word/Excel, also Office? Dann VBA
    Aber ich glaube, dass Du in VBScript arbeitest, kann das sein?
    Du könntest eine Datei auslesen, in der pro Zeile Scannername und Ort stehen. Und dann mit einer For-Schleife diese Kombis durchgehen und die entsprechende Ersetzung durchführen. Würde den Code massiv eindampfen.

    btw: Stichwort If Schleife
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo

    ja das ist ein vb script - die daten kommen von einem server wo die konvertierungssoftware der scanner läuft.
    da die datei mit nummer und ort eher dynamisch ist wäre mein optimalfall ich generiere eine .csv die ich ablege und springe mit der varibalen 041 zum beispiel in die datei und hole den ort den ich dann in die variable reinschreibe also ersetze das:
    If InStr(1,MyString, "SCAN041") Then

    ReplaceString = "kempten"
    Die Idee mit der externen Datei ist natürlich am besten, aber den obigen Code kann man doch schon ganz offensichtlich etwas kürzer machen:

    Visual Basic-Quellcode

    1. If InStr(1,MyString, "SCAN041") Then
    2. ReplaceString = "kempten"
    3. '----------------------------------------------------------------------
    4. ElseIf InStr(1,MyString, "SCAN027") Then
    5. ReplaceString = "badsalzuflen"
    6. '----------------------------------------------------------------------
    7. Else WScript.Echo MySupport
    8. End If
    9. if ReplacedText <> "" Then
    10. ReplacedText = RegX.Replace(MyString, ReplaceString)
    11. WScript.Echo ReplacedText+MySuffix
    12. End If

    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    *unnötiges Zitat entfernt*

    habe ich noch nie gemacht - würdest du mir ein beispiel geben wie ich aus dem objekt die zur 041 gehörige stadt in die variable abfrage ?
    ich habe also MyString mit zum beispiel 041 befüllt.
    Dim stadt
    Set stadt = CreateObject("Scripting.Dictionary")
    stadt.Add "041", "Kempten"
    stadt.Add "027", "Badsalzuflen"
    stadt.Add "007", "München"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()