Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBScript Ausgabe von unterschiedlichen Einträgen in 2 Arrays

Frage Entwicklung

Mitglied: mrmojo

mrmojo (Level 1) - Jetzt verbinden

06.04.2009, aktualisiert 15:24 Uhr, 3148 Aufrufe, 1 Kommentar

Hallo,

habe ein kleines Problem und zwar wie bekomme ich bei folgendem Script die 0 und die 2 (stellvertretend für andere Strings) ausgegeben und nicht nur die doppelten Einträge??
Weil so bekomme ich als Ergebnis nur 1 1
3 3
4 4 in eine Textdatei geschrieben, mich interessieren aber auch die übrigen Einträge.
mfg


Dim Array1(3), Array2(3)
const forwriting = 2

Array1(0) = "1"
Array1(1) = "2"
Array1(2) = "3"
Array1(3) = "4"

Array2(0) = "4"
Array2(1) = "3"
Array2(2) = "1"
Array2(3) = "0"

set fso = createobject("scripting.filesystemobject")
set f= fso.opentextfile("C:\Bat\backup\projekt\ergebnis.txt", 2)

for i = 0 to ubound(Array1)
for s = 0 to ubound(Array2)

if instr(Array1(i), Array2(s)) > 0 then

msgbox Array1(i) & " " & Array2(s)
f.writeline Array1(i) & " " & Array2(s)

end if

next
next
Mitglied: bastla
06.04.2009 um 17:16 Uhr
Hallo mrmojo und willkommen im Forum!

Etwa so:
01.
Dim Array1(3), Array2(3) 
02.
 
03.
Array1(0) = "1" 
04.
Array1(1) = "2" 
05.
Array1(2) = "3" 
06.
Array1(3) = "4" 
07.
 
08.
Array2(0) = "4" 
09.
Array2(1) = "3" 
10.
Array2(2) = "1" 
11.
Array2(3) = "0" 
12.
 
13.
Set fso = CreateObject("Scripting.FileSystemObject") 
14.
Set f = fso.CreateTextFile("C:\Bat\backup\projekt\ergebnis.txt") 
15.
 
16.
For i = 0 to UBound(Array1) 
17.
    Found = False 
18.
    For s = 0 To UBound(Array2) 
19.
        If InStr(Array1(i), Array2(s)) > 0 Then 
20.
            WScript.Echo Array1(i) & " " & Array2(s) 
21.
            f.WriteLine Array1(i) & " " & Array2(s) 
22.
            Found = True 
23.
            Exit For 
24.
        End If 
25.
    Next 
26.
    If Not Found Then WScript.Echo "Nur in Array1: " & Array1(i) 
27.
Next 
28.
 
29.
For s = 0 to UBound(Array2) 
30.
    Found = False 
31.
    For i = 0 To UBound(Array1) 
32.
        If InStr(Array1(i), Array2(s)) > 0 Then 
33.
            Found = True 
34.
            Exit For 
35.
        End If 
36.
    Next 
37.
    If Not Found Then WScript.Echo "Nur in Array2: " & Array2(s) 
38.
Next
Natürlich kannst Du die "Einzelgänger" auch zusätzlich in eine weitere Ausgabedatei schreiben.

Anzumerken wäre noch, dass Du nicht auf Gleichheit der Werte prüfst, sondern darauf, ob der Wert aus dem Array2 in einem Wert des Array1 enthalten ist, was allerdings bei gleicher Zeichenanzahl in den jeweiligen Strings zum selben Ergebnis führt.

[Edit] Als Ergänzung: Wenn tatsächlich auf Gleichheit der Einträge geprüft werden sollte, wäre auch die Verwendung eines "Dictionary" eine Möglichkeit:
01.
Set d = CreateObject("Scripting.Dictionary") 
02.
d.Add "1", False 'Eintrag hinzufügen, Vorgabe von "False" als Kennzeichen für "auch in Array2 enthalten" 
03.
d.Add "2", False 
04.
d.Add "3", False 
05.
d.Add "4", False 
06.
 
07.
Array2 = Array("4","3","1","0") 
08.
 
09.
Set fso = CreateObject("Scripting.FilesystemObject") 
10.
Set f = fso.CreateTextFile("C:\Bat\backup\projekt\ergebnis.txt") 
11.
 
12.
For s = 0 to UBound(Array2) 
13.
    Wert = Array2(s) 
14.
    If d.Exists(Wert) Then 
15.
        WScript.Echo Wert 
16.
        f.WriteLine Wert 
17.
        d.Item(Wert) = True 'Dictionary-Eintrag aktuallisieren 
18.
    Else 
19.
        WScript.Echo "Nur in Array2: " & Wert 
20.
    End If 
21.
Next 
22.
 
23.
For Each K In d.Keys 
24.
    If Not d.Item(K) Then WScript.Echo "Nur in Array1: " & K 'für den Wert K ist noch immer "False" eingetragen, daher nicht in Array2 enthalten 
25.
Next
[/Edit]

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - 2 Arrays vergleichen und gleiche Einträge verbinden (6)

Frage von internet2107 zum Thema Batch & Shell ...

Visual Studio
gelöst VBScript und WMI (Win32-NetworkAdapterConfiguration) (3)

Frage von MaxMoritz6 zum Thema Visual Studio ...

Datenbanken
gelöst SQL Abfrage - Ausgabe von Person mit Privat- und Dienstadresse (3)

Frage von CBruns zum Thema Datenbanken ...

Batch & Shell
gelöst Ausgabe filtern (2)

Frage von DoktorApfel zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (21)

Frage von Mipronimo zum Thema Windows 7 ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (20)

Frage von oel-auge zum Thema Router & Routing ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (18)

Frage von Pandreas zum Thema Windows Userverwaltung ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...