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, 3142 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.
Mit freundlichen Grüßen


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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
Windows Remote App - Ausgabe in lokales Office (1)

Frage von fluluk zum Thema Windows Server ...

Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Python
Python - ausgabe formatieren

Frage von BadFsaadKl zum Thema Python ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...