cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
%3CLINGO-SUB%20id%3D%22lingo-sub-242228%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%EC%97%B4%EB%A6%B0%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EB%B0%98%EB%B3%B5%ED%95%98%EA%B3%A0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EB%A1%9C%20%EC%97%B0%EA%B2%B0%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-242228%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EC%97%AC%EB%9F%AC%20%EB%A1%9C%EA%B7%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%8B%A8%EC%9D%BC%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EC%97%B0%EA%B2%B0%ED%95%98%EB%A0%A4%EA%B3%A0%20%ED%95%98%EB%8A%94%EB%8D%B0%20%EB%B2%84%EC%A0%84%2013%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B3%A0%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.JMP%2014%EB%8A%94%20%ED%9B%A8%EC%94%AC%20%EC%89%BD%EC%8A%B5%EB%8B%88%EB%8B%A4...%20%EB%8B%A4%EB%A5%B8%20%EC%82%AC%EB%9E%8C%EB%93%A4%EC%9D%80%20%ED%95%9C%EB%8F%99%EC%95%88%20jmp%2013%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EA%B2%83%EC%9D%B4%EB%AF%80%EB%A1%9C%20%EC%9D%BC%EB%B0%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EB%A7%8C%EB%93%A4%EC%96%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CP%3E%ED%98%84%EC%9E%AC%20%EB%82%B4%EA%B0%80%20%EA%B0%80%EC%A7%80%EA%B3%A0%20%EC%9E%88%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%EC%97%AC%EB%9F%AC%20%EA%B0%9C%EC%9D%98%20%EA%B3%B5%EA%B0%9C%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EC%9E%98%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4.openDT%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EB%B0%98%EB%B3%B5%ED%95%98%EA%B3%A0%20%EC%BA%A1%EC%B2%98%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CP%3E%EA%B7%B8%EB%9F%AC%EB%82%98%20%EC%97%B0%EA%B2%B0%ED%95%98%EB%A0%A4%EA%B3%A0%20%ED%95%98%EB%A9%B4%20%EC%84%B1%EA%B3%B5%ED%95%98%EC%A7%80%20%EB%AA%BB%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EB%8B%A8%EC%9D%BC%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84%20%EC%97%B4%20%ED%95%84%EC%9A%94%EC%A1%B0%EC%B0%A8%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%EB%88%84%EA%B5%B0%EA%B0%80%EA%B0%80%20%EC%9D%B4%20%EB%AC%B8%EC%A0%9C%EB%A5%BC%20%EC%9D%B4%ED%95%B4%ED%95%98%EB%8A%94%20%EB%8D%B0%20%EB%8F%84%EC%9B%80%EC%9D%84%20%EC%A4%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%3C%2FP%3E%0A%3CP%3E____________________________________________________________________%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%EC%97%B4%EB%A6%B0%20%EB%A1%9C%EA%B7%B8%20%EC%A4%91%20%ED%95%98%EB%82%98%EC%97%90%EC%84%9C%20%EC%97%B0%EA%B2%B0%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EC%97%AC%20%EB%8B%A4%EC%9D%8C%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EData%20Table(%20%22test_data_1.log%22%20)%20%26lt%3B%26lt%3B%20Concatenate(%0A%20Data%20Table(%20%22test_data_2.log%22%20)%2C%0A%20Data%20Table(%20%22test_data_3.log%22%20)%2C%0A%20Output%20Table(%20%22RESULTS%22%20)%2C%0A%20Create%20source%20column%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E____________________________________________________%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Enames%20%3D%20%7B%22%2FC%3A%2F1test%2Ftest_data_1.log%22%2C%20%22%2FC%3A%2F1test%2Ftest_data_2.log%22%2C%20%22%2FC%3A%2F1test%2Ftest_data_3.log%22%7D%3B%0AopenDTs%20%3D%20%7BDataTable(%22test_data_3.log%22)%2C%20DataTable(%22test_data_2.log%22)%2C%20DataTable(%22test_data_1.log%22)%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CBR%20%2F%3E%EC%9D%B4%EB%A6%84%EC%9D%B4%20%ED%99%95%EC%9D%B8%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%8C%3A%20'Results'%20%2C%20Results%2F*%23%23%23*%2F%EC%97%90%20%EC%95%A1%EC%84%B8%EC%8A%A4%ED%95%98%EA%B1%B0%EB%82%98%20%ED%8F%89%EA%B0%80%EB%90%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CP%3E%EB%8B%A4%EC%9D%8C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%EB%8A%94%20%2F*%23%23%23*%2F%EB%A1%9C%20%ED%91%9C%EC%8B%9C%EB%90%9C%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%0Adirpath%20%3D%20Munger(%20Pick%20Directory(%20%22JMP%2013.xx%20locate%20the%20LOG%20FILES%3A%20%22%20)%2C%201%2C%20%22%2F%22%2C%20%22%22%20)%3B%0ASet%20Current%20Directory(%20dirpath%20)%3B%0Anames%20%3D%20Files%20In%20Directory(%20dirpath%2C%20recursive(%201%20)%20)%3B%0AFor(%20i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20Items(%20names%20)%2C%20i%2B%2B%2C%0A%20dt1%20%3D%20Open(%0A%20%20names%5Bi%5D%20%3D%20Convert%20File%20Path(%20dirpath%20)%20%7C%7C%20names%5Bi%5D%2C%0A%20%20columns(%0A%20%20%20Column(%20%22STARTDATETIME%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%2026%2C%203%20)%2C%20Input%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%203%20)%20)%2C%0A%20%20%20Column(%20%22FIVER%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%2C%0A%20%20%20Column(%20%22CLASS%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22BLANK%22%2C%20Character(%201%20)%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22TYPE%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22CSTARGET%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22CSACTION%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22NUMCODE%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%2C%0A%20%20%20Column(%20%22DEVICE%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22DATA%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22ENDDATE%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%2029%2C%206%20)%2C%20Input%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%206%20)%20)%2C%0A%20%20%20Column(%20%22JUNK1%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%2029%2C%206%20)%2C%20Input%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%206%20)%20)%2C%0A%20%20%20Column(%20%22JUNK2%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%0A%20%20)%2C%0A%20%20Import%20Settings(%0A%20%20%20End%20Of%20Line(%20CRLF%2C%20CR%2C%20LF%20)%2C%0A%20%20%20End%20Of%20Field(%20Other(%20%220x7c%22%20)%2C%20CSV(%200%20)%20)%2C%0A%20%20%20Strip%20Quotes(%201%20)%2C%0A%20%20%20Use%20Apostrophe%20as%20Quotation%20Mark(%200%20)%2C%0A%20%20%20Use%20Regional%20Settings(%200%20)%2C%0A%20%20%20Scan%20Whole%20File(%201%20)%2C%0A%20%20%20Treat%20empty%20columns%20as%20numeric(%200%20)%2C%0A%20%20%20CompressNumericColumns(%200%20)%2C%0A%20%20%20CompressCharacterColumns(%200%20)%2C%0A%20%20%20CompressAllowListCheck(%200%20)%2C%0A%20%20%20Labels(%200%20)%2C%0A%20%20%20Column%20Names%20Start(%201%20)%2C%0A%20%20%20Data%20Starts(%201%20)%2C%0A%20%20%20Lines%20To%20Read(%20%22All%22%20)%2C%0A%20%20%20Year%20Rule(%20%2220xx%22%20)%0A%20%20)%0A%20)%3B%0A%20Current%20Data%20Table(%20dt1%20)%3B%0A%20dt1%20%26lt%3B%26lt%3B%20delete%20columns(%20%22CLASS%22%2C%20%22FIVER%22%2C%20%22BLANK%22%2C%20%22JUNK1%22%2C%20%22JUNK2%22%20)%3B%0A%20dt1%20%26lt%3B%26lt%3B%20Select%20Where(%0A%20%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22Execute%22%20)%20%7C%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22%2B%2B%22%20)%20%7C%20Contains(%0A%20%20%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%0A%20%20%20%22SetState%22%0A%20%20)%20%7C%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22SAM%22%20)%20%7C%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22DAC%22%20)%0A%20)%3B%0A%20dt1%20%26lt%3B%26lt%3B%20Delete%20Rows%3B%0A)%3B%0AShow(%20names%20)%3B%0AopenDTs%20%3D%20%7B%7D%3B%0AFor(%20i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20Table()%2C%20i%2B%2B%2C%0A%20Insert%20Into(%20openDTs%2C%20Data%20Table(%20i%20)%20)%0A)%3B%0AShow(%20openDTs%20)%3B%0Adt%20%3D%20New%20Table(%20%22Results%22%20)%3B%0AFor(%20k%20%3D%201%2C%20k%20%26lt%3B%3D%20N%20Items(%20names%20)%2C%20k%2B%2B%2C%0A%20Current%20Data%20Table(%20Results%2F*%23%23%23*%2F%20)%3B%0A%20dt%20%26lt%3B%26lt%3B%20concatenate(%20Data%20Table(%20names%5Bk%5D%20)%2C%20Output%20Table(%20%22Results%22%20)%2C%20Create%20Source%20column%20)%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-242683%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20%EC%97%B4%EB%A6%B0%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EB%B0%98%EB%B3%B5%ED%95%98%EA%B3%A0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-242683%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EJim%20-%20%EA%B0%90%EC%82%AC%ED%95%A9%EB%8B%88%EB%8B%A4...%20%EC%A0%95%EB%B0%80%20%EA%B2%80%EC%82%AC%EB%A5%BC%20%EC%88%98%ED%96%89%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4....%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%97%B4%EB%A1%9C%20%EA%B5%AC%EB%AC%B8%20%EB%B6%84%EC%84%9D%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%97%B0%20%EB%8B%A4%EC%9D%8C%20%EC%86%8C%EC%8A%A4%20%EC%97%B4%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EA%B7%B8%EB%9F%B0%20%EB%8B%A4%EC%9D%8C%20%EC%97%B0%EA%B2%B0%ED%95%98%EC%8B%AD%EC%8B%9C%EC%98%A4.%20%EA%B7%B8%EB%9F%B0%20%EB%8B%A4%EC%9D%8C%20%EC%97%B0%EA%B2%B0%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EA%B0%80%EC%A0%B8%EC%99%80%EC%84%9C%20%EA%B5%AC%EB%AC%B8%20%EB%B6%84%EC%84%9D%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EB%8D%94%20%EB%B9%A0%EB%A5%B4%EA%B3%A0%20%EB%85%BC%EB%A6%AC%EC%A0%81%EC%9D%B8%20%EC%A7%84%ED%96%89%EC%9D%B4%20%EA%B0%80%EB%8A%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EB%8B%A4%EC%9D%8C%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20create%20the%20variables%20to%20set%20the%20column%20name%20and%0A%2F%2F%20define%20the%20column%20value%0AcName%20%3D%20%22SOURCE%22%3B%0AfName%20%3D%20dt1%20%26lt%3B%26lt%3B%20get%20name%3B%0Adt1%20%26lt%3B%26lt%3B%20New%20Column(%20cName%2C%20Character%2C%20Nominal%2C%20Set%20each%20value(%20fName%20)%20)%3B%0A%0AThen%20iterate%20the%20open%20tables%3A%0A%2F%2F%20define%20a%20list%20of%20open%20data%20tables.%0AopenDTs%20%3D%20List()%3B%0AFor(%20i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20Table()%2C%20i%2B%2B%2C%0A%20Insert%20Into(%20openDTs%2C%20Data%20Table(%20i%20)%20)%0A)%3B%0A%2F%2F%20Loop%20through%20the%20data%20tables%20again%20and%20concatenate%0AFor(%20k%20%3D%202%2C%20k%20%26lt%3B%3D%20N%20Items(%20openDTs%20)%2C%20k%2B%2B%2C%0A%20Current%20Data%20Table()%3B%0A%20dtUpdated%20%3D%20Current%20Data%20Table()%20%26lt%3B%26lt%3B%20Concatenate(%20openDTs%5Bk%5D%20)%3B%0A%20Close(%20openDTs%5Bk%5D%2C%20nosave%20)%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%EC%A7%80%EA%B8%88%EC%9D%80%20%EC%9E%98%20%EC%9E%91%EB%8F%99%ED%95%98%EA%B3%A0%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-242343%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20%EC%97%B4%EB%A6%B0%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EB%B0%98%EB%B3%B5%ED%95%98%EA%B3%A0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-242343%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%ED%98%84%EC%9E%AC%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94()%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EB%8B%A4%EC%9D%8C%EC%9C%BC%EB%A1%9C%20%EB%B3%80%EA%B2%BD%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ECurrent%20Data%20Table(%20dt%20)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%EB%98%90%EB%8A%94%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ECurrent%20Data%20Table(%20data%20table(%20%22Results%22%20)%20)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%EA%B7%B8%EB%9F%AC%EB%82%98%20%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EA%B0%81%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9D%BD%EC%9D%84%20%EB%95%8C%20%EC%97%B0%EA%B2%B0%EC%9D%84%20%EC%88%98%ED%96%89%ED%95%A9%EB%8B%88%EB%8B%A4.%EC%A0%9C%EA%B0%80%20%EB%B3%B4%EA%B8%B0%EC%97%94%20%EB%8D%94%20%EA%B9%A8%EB%81%97%ED%95%B4%20%EB%B3%B4%EC%9D%B4%EB%8A%94%EB%8D%B0%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20default%20to%20here(1)%3B%0Adirpath%20%3D%20Munger(%20Pick%20Directory(%20%22JMP%2013.xx%20locate%20the%20LOG%20FILES%3A%20%22%20)%2C%201%2C%20%22%2F%22%2C%20%22%22%20)%3B%0ASet%20Current%20Directory(%20dirpath%20)%3B%0Anames%20%3D%20Files%20In%20Directory(%20dirpath%2C%20recursive(%201%20)%20)%3B%0A%0Adt%20%3D%20New%20Table(%20%22Results%22%20)%3B%0A%0AFor(%20i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20Items(%20names%20)%2C%20i%2B%2B%2C%0A%20dt1%20%3D%20Open(%0A%20%20names%5Bi%5D%20%3D%20Convert%20File%20Path(%20dirpath%20)%20%7C%7C%20names%5Bi%5D%2C%0A%20%20columns(%0A%20%20%20Column(%20%22STARTDATETIME%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%2026%2C%203%20)%2C%20Input%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%203%20)%20)%2C%0A%20%20%20Column(%20%22FIVER%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%2C%0A%20%20%20Column(%20%22CLASS%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22BLANK%22%2C%20Character(%201%20)%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22TYPE%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22CSTARGET%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22CSACTION%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22NUMCODE%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%2C%0A%20%20%20Column(%20%22DEVICE%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22DATA%22%2C%20Character%2C%20%22Nominal%22%20)%2C%0A%20%20%20Column(%20%22ENDDATE%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%2029%2C%206%20)%2C%20Input%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%206%20)%20)%2C%0A%20%20%20Column(%20%22JUNK1%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%2029%2C%206%20)%2C%20Input%20Format(%20%22y%2Fm%2Fd%20h%3Am%3As%22%2C%206%20)%20)%2C%0A%20%20%20Column(%20%22JUNK2%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%0A%20%20)%2C%0A%20%20Import%20Settings(%0A%20%20%20End%20Of%20Line(%20CRLF%2C%20CR%2C%20LF%20)%2C%0A%20%20%20End%20Of%20Field(%20Other(%20%220x7c%22%20)%2C%20CSV(%200%20)%20)%2C%0A%20%20%20Strip%20Quotes(%201%20)%2C%0A%20%20%20Use%20Apostrophe%20as%20Quotation%20Mark(%200%20)%2C%0A%20%20%20Use%20Regional%20Settings(%200%20)%2C%0A%20%20%20Scan%20Whole%20File(%201%20)%2C%0A%20%20%20Treat%20empty%20columns%20as%20numeric(%200%20)%2C%0A%20%20%20CompressNumericColumns(%200%20)%2C%0A%20%20%20CompressCharacterColumns(%200%20)%2C%0A%20%20%20CompressAllowListCheck(%200%20)%2C%0A%20%20%20Labels(%200%20)%2C%0A%20%20%20Column%20Names%20Start(%201%20)%2C%0A%20%20%20Data%20Starts(%201%20)%2C%0A%20%20%20Lines%20To%20Read(%20%22All%22%20)%2C%0A%20%20%20Year%20Rule(%20%2220xx%22%20)%0A%20%20)%0A%20)%3B%0A%20Current%20Data%20Table(%20dt1%20)%3B%0A%20dt1%20%26lt%3B%26lt%3B%20delete%20columns(%20%22CLASS%22%2C%20%22FIVER%22%2C%20%22BLANK%22%2C%20%22JUNK1%22%2C%20%22JUNK2%22%20)%3B%0A%20dt1%20%26lt%3B%26lt%3B%20Select%20Where(%0A%20%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22Execute%22%20)%20%7C%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22%2B%2B%22%20)%20%7C%20Contains(%0A%20%20%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%0A%20%20%20%22SetState%22%0A%20%20)%20%7C%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22SAM%22%20)%20%7C%20Contains(%20As%20Column(%20dt1%2C%20%22TYPE%22%20)%2C%20%22DAC%22%20)%0A%20)%3B%0A%20dt1%20%26lt%3B%26lt%3B%20Delete%20Rows%3B%0A%20dt1%20%26lt%3B%26lt%3B%20rerun%20formulas%3B%20%2F%2F%20make%20sure%20all%20dt1%20operations%20are%20complete%0A%20%0A%20%2F%2F%20Concatenate%20to%20the%20Results%20data%20table%0A%20dt%20%26lt%3B%26lt%3B%20concatenate(%20dt1%2C%20Append%20to%20first%20table(%201%20)%2C%20Create%20Source%20Column%20)%3B%0A%20%0A%20%2F%2F%20To%20keep%20the%20work%20environment%20clean%2C%20I%20normally%20delete%20the%20latest%20input%20data%20table%0A%20close(%20dt1%2C%20nosave%20)%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar

iterate a List of open data tables and concatenate into a table

I am trying to concatenate a bunch of log files into a single file and I am using version 13  ...  JMP 14 is much easier... Since others will be on jmp 13 for some time I need to make a generic script. 

The script I have at this time can generate a bunch of open data tables. That works fine.  I can iterate and capture a list of the openDTs ..

But when I try to concatenate I haven't been successful. I do not even need to open the tables, just to concatenate into a single file. 

 

Can someone out there help me to understand this issue?

_____________________________________________________

 

I ran the concatenate function on one of the open logs and generated this:

 

Data Table( "test_data_1.log" ) << Concatenate(
	Data Table( "test_data_2.log" ),
	Data Table( "test_data_3.log" ),
	Output Table( "RESULTS" ),
	Create source column
);

 

___________________________________________________

names = {"/C:/1test/test_data_1.log", "/C:/1test/test_data_2.log", "/C:/1test/test_data_3.log"};
openDTs = {DataTable("test_data_3.log"), DataTable("test_data_2.log"), DataTable("test_data_1.log")};


Name Unresolved: Results in access or evaluation of 'Results' , Results/*###*/

In the following script, error marked by /*###*/


dirpath = Munger( Pick Directory( "JMP 13.xx locate the LOG FILES: " ), 1, "/", "" );
Set Current Directory( dirpath );
names = Files In Directory( dirpath, recursive( 1 ) );
For( i = 1, i <= N Items( names ), i++,
	dt1 = Open(
		names[i] = Convert File Path( dirpath ) || names[i],
		columns(
			Column( "STARTDATETIME", Numeric, "Continuous", Format( "y/m/d h:m:s", 26, 3 ), Input Format( "y/m/d h:m:s", 3 ) ),
			Column( "FIVER", Numeric, "Continuous", Format( "Best", 12 ) ),
			Column( "CLASS", Character, "Nominal" ),
			Column( "BLANK", Character( 1 ), "Nominal" ),
			Column( "TYPE", Character, "Nominal" ),
			Column( "CSTARGET", Character, "Nominal" ),
			Column( "CSACTION", Character, "Nominal" ),
			Column( "NUMCODE", Numeric, "Continuous", Format( "Best", 12 ) ),
			Column( "DEVICE", Character, "Nominal" ),
			Column( "DATA", Character, "Nominal" ),
			Column( "ENDDATE", Numeric, "Continuous", Format( "y/m/d h:m:s", 29, 6 ), Input Format( "y/m/d h:m:s", 6 ) ),
			Column( "JUNK1", Numeric, "Continuous", Format( "y/m/d h:m:s", 29, 6 ), Input Format( "y/m/d h:m:s", 6 ) ),
			Column( "JUNK2", Numeric, "Continuous", Format( "Best", 12 ) )
		),
		Import Settings(
			End Of Line( CRLF, CR, LF ),
			End Of Field( Other( "0x7c" ), CSV( 0 ) ),
			Strip Quotes( 1 ),
			Use Apostrophe as Quotation Mark( 0 ),
			Use Regional Settings( 0 ),
			Scan Whole File( 1 ),
			Treat empty columns as numeric( 0 ),
			CompressNumericColumns( 0 ),
			CompressCharacterColumns( 0 ),
			CompressAllowListCheck( 0 ),
			Labels( 0 ),
			Column Names Start( 1 ),
			Data Starts( 1 ),
			Lines To Read( "All" ),
			Year Rule( "20xx" )
		)
	);
	Current Data Table( dt1 );
	dt1 << delete columns( "CLASS", "FIVER", "BLANK", "JUNK1", "JUNK2" );
	dt1 << Select Where(
		Contains( As Column( dt1, "TYPE" ), "Execute" ) | Contains( As Column( dt1, "TYPE" ), "++" ) | Contains(
			As Column( dt1, "TYPE" ),
			"SetState"
		) | Contains( As Column( dt1, "TYPE" ), "SAM" ) | Contains( As Column( dt1, "TYPE" ), "DAC" )
	);
	dt1 << Delete Rows;
);
Show( names );
openDTs = {};
For( i = 1, i <= N Table(), i++,
	Insert Into( openDTs, Data Table( i ) )
);
Show( openDTs );
dt = New Table( "Results" );
For( k = 1, k <= N Items( names ), k++,
	Current Data Table( Results/*###*/ );
	dt << concatenate( Data Table( names[k] ), Output Table( "Results" ), Create Source column );
);
1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: iterate a List of open data tables and concatenate into a table

Your Current Data Table() function needs to be changed to

Current Data Table( dt );

or to

Current Data Table( data table( "Results" ) );

However, I typically do the concatenation as each file is read in.  To me it seems cleaner

Names default to here(1);
dirpath = Munger( Pick Directory( "JMP 13.xx locate the LOG FILES: " ), 1, "/", "" );
Set Current Directory( dirpath );
names = Files In Directory( dirpath, recursive( 1 ) );

dt = New Table( "Results" );

For( i = 1, i <= N Items( names ), i++,
	dt1 = Open(
		names[i] = Convert File Path( dirpath ) || names[i],
		columns(
			Column( "STARTDATETIME", Numeric, "Continuous", Format( "y/m/d h:m:s", 26, 3 ), Input Format( "y/m/d h:m:s", 3 ) ),
			Column( "FIVER", Numeric, "Continuous", Format( "Best", 12 ) ),
			Column( "CLASS", Character, "Nominal" ),
			Column( "BLANK", Character( 1 ), "Nominal" ),
			Column( "TYPE", Character, "Nominal" ),
			Column( "CSTARGET", Character, "Nominal" ),
			Column( "CSACTION", Character, "Nominal" ),
			Column( "NUMCODE", Numeric, "Continuous", Format( "Best", 12 ) ),
			Column( "DEVICE", Character, "Nominal" ),
			Column( "DATA", Character, "Nominal" ),
			Column( "ENDDATE", Numeric, "Continuous", Format( "y/m/d h:m:s", 29, 6 ), Input Format( "y/m/d h:m:s", 6 ) ),
			Column( "JUNK1", Numeric, "Continuous", Format( "y/m/d h:m:s", 29, 6 ), Input Format( "y/m/d h:m:s", 6 ) ),
			Column( "JUNK2", Numeric, "Continuous", Format( "Best", 12 ) )
		),
		Import Settings(
			End Of Line( CRLF, CR, LF ),
			End Of Field( Other( "0x7c" ), CSV( 0 ) ),
			Strip Quotes( 1 ),
			Use Apostrophe as Quotation Mark( 0 ),
			Use Regional Settings( 0 ),
			Scan Whole File( 1 ),
			Treat empty columns as numeric( 0 ),
			CompressNumericColumns( 0 ),
			CompressCharacterColumns( 0 ),
			CompressAllowListCheck( 0 ),
			Labels( 0 ),
			Column Names Start( 1 ),
			Data Starts( 1 ),
			Lines To Read( "All" ),
			Year Rule( "20xx" )
		)
	);
	Current Data Table( dt1 );
	dt1 << delete columns( "CLASS", "FIVER", "BLANK", "JUNK1", "JUNK2" );
	dt1 << Select Where(
		Contains( As Column( dt1, "TYPE" ), "Execute" ) | Contains( As Column( dt1, "TYPE" ), "++" ) | Contains(
			As Column( dt1, "TYPE" ),
			"SetState"
		) | Contains( As Column( dt1, "TYPE" ), "SAM" ) | Contains( As Column( dt1, "TYPE" ), "DAC" )
	);
	dt1 << Delete Rows;
	dt1 << rerun formulas; // make sure all dt1 operations are complete
	
	// Concatenate to the Results data table
	dt << concatenate( dt1, Append to first table( 1 ), Create Source Column );
	
	// To keep the work environment clean, I normally delete the latest input data table
	close( dt1, nosave );
);
Jim

View solution in original post

2 REPLIES 2
txnelson
Super User

Re: iterate a List of open data tables and concatenate into a table

Your Current Data Table() function needs to be changed to

Current Data Table( dt );

or to

Current Data Table( data table( "Results" ) );

However, I typically do the concatenation as each file is read in.  To me it seems cleaner

Names default to here(1);
dirpath = Munger( Pick Directory( "JMP 13.xx locate the LOG FILES: " ), 1, "/", "" );
Set Current Directory( dirpath );
names = Files In Directory( dirpath, recursive( 1 ) );

dt = New Table( "Results" );

For( i = 1, i <= N Items( names ), i++,
	dt1 = Open(
		names[i] = Convert File Path( dirpath ) || names[i],
		columns(
			Column( "STARTDATETIME", Numeric, "Continuous", Format( "y/m/d h:m:s", 26, 3 ), Input Format( "y/m/d h:m:s", 3 ) ),
			Column( "FIVER", Numeric, "Continuous", Format( "Best", 12 ) ),
			Column( "CLASS", Character, "Nominal" ),
			Column( "BLANK", Character( 1 ), "Nominal" ),
			Column( "TYPE", Character, "Nominal" ),
			Column( "CSTARGET", Character, "Nominal" ),
			Column( "CSACTION", Character, "Nominal" ),
			Column( "NUMCODE", Numeric, "Continuous", Format( "Best", 12 ) ),
			Column( "DEVICE", Character, "Nominal" ),
			Column( "DATA", Character, "Nominal" ),
			Column( "ENDDATE", Numeric, "Continuous", Format( "y/m/d h:m:s", 29, 6 ), Input Format( "y/m/d h:m:s", 6 ) ),
			Column( "JUNK1", Numeric, "Continuous", Format( "y/m/d h:m:s", 29, 6 ), Input Format( "y/m/d h:m:s", 6 ) ),
			Column( "JUNK2", Numeric, "Continuous", Format( "Best", 12 ) )
		),
		Import Settings(
			End Of Line( CRLF, CR, LF ),
			End Of Field( Other( "0x7c" ), CSV( 0 ) ),
			Strip Quotes( 1 ),
			Use Apostrophe as Quotation Mark( 0 ),
			Use Regional Settings( 0 ),
			Scan Whole File( 1 ),
			Treat empty columns as numeric( 0 ),
			CompressNumericColumns( 0 ),
			CompressCharacterColumns( 0 ),
			CompressAllowListCheck( 0 ),
			Labels( 0 ),
			Column Names Start( 1 ),
			Data Starts( 1 ),
			Lines To Read( "All" ),
			Year Rule( "20xx" )
		)
	);
	Current Data Table( dt1 );
	dt1 << delete columns( "CLASS", "FIVER", "BLANK", "JUNK1", "JUNK2" );
	dt1 << Select Where(
		Contains( As Column( dt1, "TYPE" ), "Execute" ) | Contains( As Column( dt1, "TYPE" ), "++" ) | Contains(
			As Column( dt1, "TYPE" ),
			"SetState"
		) | Contains( As Column( dt1, "TYPE" ), "SAM" ) | Contains( As Column( dt1, "TYPE" ), "DAC" )
	);
	dt1 << Delete Rows;
	dt1 << rerun formulas; // make sure all dt1 operations are complete
	
	// Concatenate to the Results data table
	dt << concatenate( dt1, Append to first table( 1 ), Create Source Column );
	
	// To keep the work environment clean, I normally delete the latest input data table
	close( dt1, nosave );
);
Jim

Re: iterate a List of open data tables and concatenate into a table

Jim - Thank you... did an overhaul.... wihtout parsing the data into columns I open the files, then add a source column. Then concatenate. Then take the concatenated file and parse it out. Its faster and more logical progression. added The following:

// create the variables to set the column name and
// define the column value
cName = "SOURCE";
fName = dt1 << get name;
dt1 << New Column( cName, Character, Nominal, Set each value( fName ) );

Then iterate the open tables:
// define a list of open data tables.
openDTs = List();
For( i = 1, i <= N Table(), i++,
	Insert Into( openDTs, Data Table( i ) )
);
// Loop through the data tables again and concatenate
For( k = 2, k <= N Items( openDTs ), k++,
	Current Data Table();
	dtUpdated = Current Data Table() << Concatenate( openDTs[k] );
	Close( openDTs[k], nosave );
);



It is working well now.