Hallo,
[...] (irgendwas mit Bauteilen)
ich habe nicht verstanden, auf welche Probleme du beim Vergleichen von zwei Listen gestoßen bist.Aber du möchtest die Listen nicht nur nach einem Merkmal vergleichen/durchsuchen, sondern nach 4(?). Dann benötitgst du in der einfachen for-Variante auch 4 Schleifen, um nach jedem Merkmal einzeln suchen (bzw. vergleichen) zu können.
»»
hier mal der code:
var ZählerUngleicherMatten = 0;
if( infile_neu.length < infile_vorhanden.length )
{
var STL_gr = infile_vorhanden;
var STL_kl = infile_neu;
} else {
var STL_gr = infile_neu;
var STL_kl = infile_vorhanden;
};
for( var i = 0; i < STL_kl.length; i++ ) //--> kleinere Liste für die 1. Schleife
{
for( var j = 0; j < STL_gr.length; j++ ) //--> größere Liste für die 2. Schleife
{
if( STL_kl[i].substr( 7, 1 ) != "0" && STL_gr[j].substr( 7, 1 ) != "0" ) //--> Unterscheidung ob "Zusatzmatte" oder nicht
{
if( STL_kl[i].substr( 0, 10 ) == STL_gr[j].substr( 0, 10 ) ) //--> Vergleich der 1. und 2. Liste als Teilstring
{
if( STL_kl[i] != STL_gr[j] ) //--> Vergleich der beiden Listen
{
ZählerUngleicherMatten++;
if( infile_neu.length < infile_vorhanden.length )
{
infile_vorhanden = STL_gr;
infile_neu = STL_kl;
msg( "<b>" + infile_neu[i] + "</b> --> " + infile_vorhanden[j] + "<br>" );
} else {
infile_vorhanden = STL_kl;
infile_neu = STL_gr;
msg( "<b>" + infile_neu[j] + "</b> --> " + infile_vorhanden[i] + "<br>" );
};
};
};
} else {
if( STL_kl[i].substr( 0, 14 ) == STL_gr[j].substr( 0, 14 ) )
{
if( STL_kl[i] != STL_gr[j] )
{
ZählerUngleicherMatten++;
if( infile_neu.length < infile_vorhanden.length )
{
infile_vorhanden = STL_gr;
infile_neu = STL_kl;
msg( "<b>" + infile_neu[i] + "</b> --> " + infile_vorhanden[j] + "<br>" );
} else {
infile_vorhanden = STL_kl;
infile_neu = STL_gr;
msg( "<b>" + infile_neu[j] + "</b> --> " + infile_vorhanden[i] + "<br>" );
};
};
};
};
};
};
es soll nicht nach 4 merkmalen verglichen werden, sondern wenn ein bauteil in der einen liste aus 2 (oder mehreren) teilen bestehen und in der anderen liste aus 1 bauteil, dann soll er halt das ausgeben:
D258_70160_026V_10j.nc --> D258_70160_026V_20b.nc oder ---
D258_70160_026V_20b.nc --> D258_70160_026V_20b.nc
... --> ...
D258_70181_028N_11j.nc --> D258_70181_028N_20b.nc oder ---
D258_70181_028N_12j.nc --> D258_70181_028N_20b.nc oder ---
D258_70181_028N_20b.nc --> D258_70181_028N_20b.nc
aber mit den oben genannten verschachtelten schleifen gibt er folgendes aus:
D258_70160_026V_10j.nc --> D258_70160_026V_20b.nc
... --> ...
D258_70181_028N_11j.nc --> D258_70181_028N_20b.nc
D258_70181_028N_12j.nc --> D258_70181_028N_20b.nc
das reicht mir halt nicht aus. denn es sollen halt alle einzelmaterialien angezeigt werden. auch wenn diese übereinstimmen (anhand des bauteils).
deswegen wollt ich halt ich fragen, wie es zu ermöglichen ist. hab da grad sicherlich ein denkfehler bzw. ein logik-proglem in meinem köppel :)
denn ich weiß halt nicht, welche verschiedenen materialien halt vorkommen können und deshalb kann ich es auch nicht danach abfragen.
lg romero