Suchen Sie nach einer Zeichenfolge in einer Datei, bevor Sie Tabellen verknüpfen.Ich öffne 2 Excel-Dateien. Ich versuche Tabellen nur zu verknüpfen, wenn die Liste Auswahl enthält. Wie erreiche ich das?
//Accept Product input from user and save it in a text file
R = Open("Choice.txt",
Labels(0),
Columns(
C = Character(12);
)
);
Choice = {};
Choice = R:C[1];
//Open master data list
U = Open("Volume.csv","invisible");
T = Open("List.csv","invisible");
dt = Current data table();
Column_List = dt << Get Column Names("String");
for(i = 1, i<= NItems(Column_List),i++,
if(contains(Choice,Column_List[i]),
U = Data Table( "Volume" ) <<
Join(
With( Data Table( "List" ) ),
Merge Same Name Columns,
By Matching Columns( :number = :number ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "Joined_With_List" )
);
);
);
Re: Suchen Sie nach einer Zeichenfolge in einer Datei, bevor Sie Tabellen verknüpfen.Funktioniert perfekt!
Danke vielmals
Re: Suchen Sie nach einer Zeichenfolge in einer Datei, bevor Sie Tabellen verknüpfen.Suchst du danach? Wenn nicht, bekomme ich nicht das, wonach Sie suchen
Names Default To Here( 1 );
// Open comma separated files
dtList = Open( "<THE path="" to="" the="" list="" file="">\list.csv" );
dtVolume = Open( "<THE path="" to="" the="" volume="" file="">\volume.csv" );
// Read in the choice value
choice = Load Text File( "C:\Users\txjim\Documents\choice.txt" );
// Find out if choice is in the List data table and if so,
// join the tables. If not, then set the Volume data table
// to be the processing data table.
If( Contains( dtList:Company << get values, choice ),
dtProcess = dtVolume << Join(
With( dtList ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( :Product Type = :Product Type ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "Process" )
),
dtProcess = dtVolume
);</THE></THE>
Re: Suchen Sie nach einer Zeichenfolge in einer Datei, bevor Sie Tabellen verknüpfen.Vielen Dank für die Antwort. Ich habe das Problem nicht gut erklärt.
Volume-Datei ist dynamisch.Wenn die Auswahlvariable in der Listendatei vorhanden ist, muss ich Volume- und Listentabellen beitreten. Wenn nicht, verwende ich die Volume-Tabelle wie für weitere Manipulationen eine ganze Weile.
Jede Hilfe geschätzt.
Re: Suchen Sie nach einer Zeichenfolge in einer Datei, bevor Sie Tabellen verknüpfen.Ich denke, das unten stehende Skript bringt Sie näher an das, was Sie wollen. Ich habe nicht das Format Ihrer "Choice" -Variable, daher konnte ich den Code nicht wirklich testen, aber ich denke, es wird Ihnen eine Methode geben, mit der Sie bekommen, was Sie wollen
//Accept Product input from user and save it in a text file
R = Open( "Choice.txt", Labels( 0 ), Columns( C = Character( 12 ) ) );
Choice = {};
Choice = R:C[1];
//Open master data list
U = Open( "Volume.csv", "invisible" );
T = Open( "List.csv", "invisible" );
// Delete columns from the List data table that are not
// found in the Choice memory variable
Column_List = T << Get Column Names( "String" );
For( i = 1, i <= N Items( Column_List ), i++,
If( Contains( Choice, Column_List[i] ) == 0,
T << Delete Columns( Column_Names[i] )
)
);
newU = U << Join(
With( T ),
Merge Same Name Columns,
By Matching Columns( :number = :number ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "Joined_With_List" )
);