Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3158 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 ...

PHP
Mehrdimensionales arrays durchsuchen (4)

Frage von pcguy zum Thema PHP ...

Netzwerkmanagement
gelöst 2 VPNs für unterschiedliche Zwecke gleichzeitig (3)

Frage von WinLiCLI zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
Performancesteigerung des RAID Arrays möglich? (13)

Frage von takvorian zum Thema Festplatten, SSD, Raid ...

Neue Wissensbeiträge
Vmware

Heise Newsticker: Betrifft die Desktopprodukte von VMware

Information von Penny.Cilin zum Thema Vmware ...

Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Freigabe aus anderem Netz nicht erreichbar (44)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen (14)

Frage von Akcent zum Thema Windows 10 ...