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, 3147 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Basic
VBScript erweitern für Subfolder (8)

Frage von 132078 zum Thema Basic ...

Batch & Shell
gelöst FOR Schleife mit Unterverzeichnissen, die Ausgabe kürzen (tokens evtl.) (5)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Ausgabe gruppieren - gleichzeitig Werte in anderer Spalte addieren (9)

Frage von Affkopf89 zum Thema Batch & Shell ...

Netzwerkmanagement
Drucken über WLAN bei unterschiedlichen IP Bereichen (3)

Frage von AranankA zum Thema Netzwerkmanagement ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (16)

Frage von Angela44 zum Thema DSL, VDSL ...

Windows Server
SBS 2011 Standard virtualisieren (12)

Frage von HeinrichM zum Thema Windows Server ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Backup
Datensicherung ARCHIV (11)

Frage von fautec56 zum Thema Backup ...