Arrays miteinander vergleichen und Gemeinsamkeiten ausgeben (VBScript)
Hi,
ich habe 2 Textdateien die aus 2 Arrays enstanden sind.
Es ist nun notwendig diese zu vergleichen und die Gemeinsamkeiten in ein drittes Array/Datei auszugeben.
Beispiel:
Array1
Hallo
Test
4
6
32345
44g
Array2
1
2
3
4
Hallo
5
Test
Die Ausgabe aus dem Beispiel müsste nun seien:
Hallo
Test
4
Habt ihr eine Idee? Bisher habe ich nur eine Möglichkeit gefunden Zeile für Zeile zu vergleichen, da aber die Werte in beiden Arrays an unterschiedlichen Positionen stehen, war es immer ein Unterschied und wurde so nicht mit ausgegeben.
Danke schonmal.
Gruß
Marcus
[Edit: Dani - 10.12.2007 16:15]
Ich habe mir erlaubt, die einzelnen Schnipsel in einen CODE-Block zu packen. Macht das ganze ein bisschen runder. Mehr dazu findet ihr Formatierungen in den Beiträgen.
ich habe 2 Textdateien die aus 2 Arrays enstanden sind.
Es ist nun notwendig diese zu vergleichen und die Gemeinsamkeiten in ein drittes Array/Datei auszugeben.
Beispiel:
Array1
Hallo
Test
4
6
32345
44g
Array2
1
2
3
4
Hallo
5
Test
Die Ausgabe aus dem Beispiel müsste nun seien:
Hallo
Test
4
Habt ihr eine Idee? Bisher habe ich nur eine Möglichkeit gefunden Zeile für Zeile zu vergleichen, da aber die Werte in beiden Arrays an unterschiedlichen Positionen stehen, war es immer ein Unterschied und wurde so nicht mit ausgegeben.
Danke schonmal.
Gruß
Marcus
[Edit: Dani - 10.12.2007 16:15]
Ich habe mir erlaubt, die einzelnen Schnipsel in einen CODE-Block zu packen. Macht das ganze ein bisschen runder. Mehr dazu findet ihr Formatierungen in den Beiträgen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 75655
Url: https://administrator.de/contentid/75655
Ausgedruckt am: 14.11.2024 um 07:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo Markus,
probiers mal so:
Gruß Schi
probiers mal so:
Dim WshShell, fso
Dim LogFile, LogFileneu
Dim DateiName, Dateinameneu
Dim Zeile
Set WshShell = CreateObject("WScript.Shell")
set fso = CreateObject("Scripting.FileSystemObject")
DateiName="testdatei.txt"
Dateinameneu="testdateineu.txt"
Set LogFile = fso.OpenTextFile(Dateiname,1, True)
Set LogFileneu = fso.OpenTextFile(Dateinameneu,2, True)
Do While Not logfile.AtEndOfStream
Zeile = RTrim(logfile.Readline)
if len(Zeile) >0 then logfileneu.writeline Zeile
Loop
LogFile.Close
LogFileneu.Close
Gruß Schi
Nochmal Hallo Marcus (<-- diesma richtig )
also neues Script:
So sollte es gehen
Kann evtl. etwas daueren, jenachdem wie groß die Dateien sind
Gruß Schi
also neues Script:
Dim WshShell, fso
Dim LogFile1, LogFile2, LogFileneu
Dim DateiName1, DateiName2, Dateinameneu
Dim Zeile1
Set WshShell = CreateObject("WScript.Shell")
set fso = CreateObject("Scripting.FileSystemObject")
DateiName1="testdatei1.txt"
DateiName2="testdatei2.txt"
Dateinameneu="testdateineu.txt"
Set LogFile1 = fso.OpenTextFile(Dateiname1,1, True)
Set LogFileneu = fso.OpenTextFile(Dateinameneu,2, True)
Do While Not logfile1.AtEndOfStream
Zeile1 = RTrim(logfile1.Readline)
Set LogFile2 = fso.OpenTextFile(Dateiname2,1, True)
Do While Not logfile2.AtEndOfStream
if Zeile1 = RTrim(logfile2.Readline) then logfileneu.writeline Zeile1
Loop
LogFile2.Close
Loop
LogFile1.Close
LogFileneu.Close
Kann evtl. etwas daueren, jenachdem wie groß die Dateien sind
Gruß Schi
Moin Breede,
Aus dem "Beispiel" im Eröffnungsbeitrag lässt sich nun nicht ableiten, wer denn Dir einen ADODb-RecordSet ins Nest gelegt hat und wofür.
Bitte etwas präzisieren - Shi73 ist zwar gut im Raten, aber das ist eigentlich nicht der Sinn dieses Forums.
Grüße
Biber
Da stehen aber leider noch weitere Verarbeitungen an.
Da stehen dann aber genauere Beschreibungen an oder der Gesamtplan oder der bis hierhin vorhandene Sourcecode.Aus dem "Beispiel" im Eröffnungsbeitrag lässt sich nun nicht ableiten, wer denn Dir einen ADODb-RecordSet ins Nest gelegt hat und wofür.
Bitte etwas präzisieren - Shi73 ist zwar gut im Raten, aber das ist eigentlich nicht der Sinn dieses Forums.
Grüße
Biber
Danke Breede,
ich habe es in Code-Tags gesetzt, siehe bitte auch Danis Hinweis ganz oben.
Okay, dass mal kein einziger Satz zurückkommt solltest Du ohnehin berücksichtigen, aber auch , dass gar kein Recordset-Object zurückkommt.
Bei der Bedingung kann aber auch nie etwas zurückkommen, oder:
Die objectCategory kann niemals nicht gleich 'group' AND-whatever sein.
Bestenfalls in einem philosophischen Sinn ("Wer bin ich? Und wenn ja, wie viele?").
Aber das wolltest Du bestimmt nicht hier diskutieren. Und erst recht nicht mit mir.
Achte bitte auch auf ein Mindestmaß an Leerzeichen innerhalb der einzelnen WHERE-clause-Tokens. Du hast zwischen "...= 'group'" und dem ersten Wort der Folgezeile kein Leerzeichen.
Grüße
Biber
ich habe es in Code-Tags gesetzt, siehe bitte auch Danis Hinweis ganz oben.
Okay, dass mal kein einziger Satz zurückkommt solltest Du ohnehin berücksichtigen, aber auch , dass gar kein Recordset-Object zurückkommt.
Bei der Bedingung kann aber auch nie etwas zurückkommen, oder:
....
WHERE objectCategory='group' " & _
" OR objectCategory='user' " & _
" AND objectCategory='person'" &.....
Bestenfalls in einem philosophischen Sinn ("Wer bin ich? Und wenn ja, wie viele?").
Aber das wolltest Du bestimmt nicht hier diskutieren. Und erst recht nicht mit mir.
Achte bitte auch auf ein Mindestmaß an Leerzeichen innerhalb der einzelnen WHERE-clause-Tokens. Du hast zwischen "...= 'group'" und dem ersten Wort der Folgezeile kein Leerzeichen.
Grüße
Biber