[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: PORTABLE.PM -- screen shot



Thanks, Carl. I was just thinking I might need PORTABLE.PM because I'm
moving stuff around among disks on my new system.




Something possessed me yesterday to make a screen shot of the report that's generated when you run PORTABLE.PM, my Xy4 utility that generates "portable" versions of your STARTUP.INT and SETTINGS.DFL. (These are path-free versions of these files that can be copied to any directory, on any machine, without the need to edit path statements every time.) Here's the screen shot: http://users.datarealm.com/xywwweb/portable.jpg PORTABLE.PM can be downloaded here: http://users.datarealm.com/xywwweb/portable.zip And, for the record, here is the latest version of PORTABLE.PM, dated 7/2/2012, in DECODE-able form for U2 users (no change to the code since that date). I count this as the most useful XPL program I've written this year (granted, there haven't been that many), and worth a reprise at year's end. Best to all for 2013! XPLeNCODE v2.0 b-gin [UNTITLED] {<}GLa{>}[cr|lf]PORTABLE.PM for XyWrite 4 - C.L.Distefano rev {046}7/2/12[cr|lf]Purpose: Create path-free versions of STARTUP.I NT and SETTINGS.DFL, enabling a "portable" XyWrite setup that can be copied to any directory without the need to modify pa th statements in these two key files.[cr|lf][cr|lf]Usage[cr|l f]-----[cr|lf]RUN PORTABLE.PM[cr|lf]Two (2) available{032} windows are required.[cr|lf][cr|lf]How It Works[cr|lf]------- -----[cr|lf]PORTABLE.PM safely generates personalized replace ments for your STARTUP.INT and SETTINGS.DFL files, based on t he settings in effect when you run PORTABLE.PM. These new fil es are called PORTABL1.INT and PORTABL1.DFL. Your existing fi les are NOT modified.[cr|lf][cr|lf]Before using the new files , be sure to BACK UP your existing STARTUP.INT and SETTINGS.D FL. (The first time you run PORTABLE.PM, they are automatical ly backed up to START_BK.INT and SETTI_BK.DFL.) When you're r eady to "go portable", copy PORTABL1.INT to STARTUP.INT and P ORTABL1.DFL to SETTINGS.DFL, overwriting the existing files;{032} then quit and restart XyWrite. [cr|lf][cr|lf]- - - - -[cr|lf] {<}LBa{>}[ZT_][BX_]es 1[Q2_][DX_];*;[cr|lf]{<}IF{<}VA$VE{>}<" V4.02"{>}{<}IF{<}VA$ST{>}{240}"\"&{<}VA$DL{>}{240}"\"{>}{<}IF {<}VA$WA{>}>0{>};*;[cr|lf]{<}PRWorking{>}{<}SV01,{>}{<}SV02,{ {062}}{<}SV03,{>}{<}SV04,{>}{<}SV05,{>};*;[cr|lf]{<}SX06,{<}VA$ST {>}{>}{<}SX07,{<}VA$DL{>}{>}[BX_]gofile {<}PV07{>}[Q2_]{<}IF@ not({<}ER{>}){>}[BX_]ab/nv[Q2_]{<}EI{>};*;[cr|lf]{<}SU01,{<}S X02,{<}VA$WA{>}{>}[BX_]func #{<}PV02{>}[Q2_]{>}{<}GT01{>}[BX_ ]ne/100[Q2_]{<}IF{<}VA$WA{>}>0{>}{<}GT01{>}[BX_]ca/100 {<}PV0 7{>}[Q2_][BX_]wait[Q2_][AS_];*;[cr|lf]{<}SU08,{<}SX09,{<}IS10 {>}{>}{<}SV10,{>}{<}SV11,\{>}{<}LBb{>}{<}XS09,11,12,,13{>}{<} IF{<}VA|10{>}>0{>}{<}SX10,{<}IS10{>}+"\"{>}{<}EI{>}{<}SX10,{< }IS10{>}+{<}IS12{>}{>}{<}IF{<}IS13{>}{240}"\"{>}{<}SX09,{<}IS 13{>} {>}{<}GLb{>}{<}EI{>}{>};*; {<}SV10,dir{>}{<}SV13,filename{>}[ cr|lf]{<}SX10,{<}VA$ED{>}{>}{<}GT08{>}{<}SX14,{<}IS10{>}{>};* ; {<}SV14,Editor's dir{>}[cr|lf]{<}SX03,{<}VA@14:1{>}{>}[BX_] {<}PV03{>}:[Q2_][BX_]cd {<}PV14{>}[Q2_];*;[cr|lf]{<}SV01,INT{ {062}}{<}LBc{>}[BX_]gofile {<}PV14{>}\PORTABL1.{<}PV01{>}[Q2_]{<} IF@not({<}ER{>}){>}[BX_]ab/nv[Q2_]{<}IF{<}VA$WS{>}<1{>}[BX_]r s[Q2_]{<}EI{>}{<}EI{>}{<}IF{<}IS01{>}{240}"I"{>}{<}SV01,DFL{> }{<}GLc{>}{<}EI{>};*;[cr|lf]{<}SV01,INT{>}{<}LBd{>}[BX_]ernv{032} {<}PV14{>}\PORTABL1.{<}PV01{>}[Q2_][BX_]wait[Q2_]{<}IF{<}IS01 {>}{240}"I"{>}{<}SV01,DFL{>}{<}GLd{>}{<}EI{>};*;[cr|lf];*; On e-time backup of STARTUP.INT and SETTINGS.DFL[cr|lf]{<}SV01,S TART_{>}{<}SV02,INT{>}{<}SX03,{<}IS06{>}{>}{<}LBe{>}[BX_]exis t {<}PV01{>}BK.{<}PV02{>}[Q2_]{<}IF{<}ER{>}{>}[BX_]copy {<}PV 03{>} {<}PV01{>}BK.{<}PV02{>}[Q2_][BX_]wait[Q2_]{<}EI{>}{<}IF {<}IS02{>}{240}"I"{>}{<}SV01,SETTI_{>}{<}SV02,DFL{>}{<}SX03,{ <}IS07{>}{>}{<}GLe{>}{<}EI{>};*;[cr|lf];*; Create PORTABL1.IN T:[cr|lf][GT_]{<}SX01,";*"+"; PORTABL1.INT (""Pathless"" STAR TUP.INT)[cr|lf];*"+"; Created by PORTABLE.PM (CLD) "+{<}VA$D Ad Mmm yyyy{>}+" - "+{<}VA$TM{>}+"[cr|lf];*"+"; -----[cr|lf]; *"+"; DO NOT MODIFY THIS SECTION (down to ""^^^^^^^^^^"").[cr |lf];*"+"; This code switches to the directory with EDITOR.EX E[cr|lf];*"+"; the directory name (minus the final ""\"") is{032} saved to Save/Get 01.[cr|lf];*"+"; Save/Get 01 is used below{032} (""[255+065+069]PV01[255+065+070]|{<}IS01{>}"") to point to t hat directory[cr|lf];*"+"; and its subdirectories[cr|lf]"[c r|lf]{>}{<}GT01{>}{<}SX01,"{<}SV01,{>}{<}SX02,{<}VA$ED{>}{>}{ <}SV03,\{>}{<}LB {>}{<}XS02,03,04,,05{>}{<}IF{<}VA|01{>}>0{>} {<}SX01,{<}IS01{>}+""\""{>}{<}EI{>}{<}SX01,{<}IS01{>}+{<}IS04 {>}{>}{<}IF{<} IS05{>}{240}""\""{>}{<}SX02,{<}IS05{>}{>}{<}GL {>}{<}EI{>}{<} SX02,{<}VA@01:1{>}{>}[BX_]{<}PV02{>}:[Q2_][BX_]wait[Q2_][BX_] cd {<}PV01{>}[Q2_][BX_]wait[Q2_];*"+";[cr|lf];*"+"; ^^^^^^^^^ ^[cr|lf];*"+"; [cr|lf];*"+"; Logon routine[cr|lf]"{>}{<}GT01{ {062}}{<}SX01,{<}VA$LG{>}{>}{<}IF{<}VA|01{>}<1!{<}VA|01{>}>8{>}{< }SV01,DEFAULT{>}{<}EI{>}{<}SX01,"[BX_]exist "+{<}IS01{>}+".LO G[Q2_]{<}IF{<}ER{>}{>}{<}SV02,{<}PRLogged on with username "+ {<}IS01{>}+"{>}{<}EX{>}{>}[BX_]sa %02,"+{<}IS01{>}+".log[Q2_] [BX_]wait[Q2_]{<}EI{>}[BX_]logon "+{<}IS01{>}+"[Q2_]"{>}{<}GT 01{>}{<}SX01,";*"+";[cr|lf];*"+";[cr|lf];*"+"; LOAD commands{032} (edit filenames as necessary; omit paths!)[cr|lf];*"+"; Disab le inapplicable commands with "";"+"*;"" (no quotes)[cr|lf]"{ {062}}{<}GT01{>};*;[cr|lf]{<}SX10,{<}IS07{>}{>}{<}IF{<}IS10{>}{24 0}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_] wait[Q2_];"+"*; Settings file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*; [cr|lf]{<}SX10,{<}VA$KB{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT0 8{>}{<}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"* ; Keyboard file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10 ,{<}VA$MN{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[ BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*; MeNu file[cr |lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$DG{>}{>}{<} IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[BX_]load "+{<}IS13 {>}+"[Q2_][BX_]wait[Q2_];"+"*; DialoG file[cr|lf]"{>}{<}GT01{ {062}}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$HL{>}{>}{<}IF{<}IS10{>}{240 }"\"{>}{<}GT08{>}{<}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]w ait[Q2_];"+"*; HeLp file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|l f]{<}SX10,{<}VA$HY{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{ <}SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*; Hyphenation dictionary[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf ]{<}SX10,{<}VA$SP{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{< }SX01,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*; Pers onal spelling file[cr|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}S X10,{<}VA$U2{>}{>}{<}IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01 ,"[BX_]load "+{<}IS13{>}+"[Q2_][BX_]wait[Q2_];"+"*; U2 file[c r|lf]"{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX10,{<}VA$SG{>}{>}{< }IF{<}IS10{>}{240}"\"{>}{<}GT08{>}{<}SX01,"[BX_]ldsgt "+{<}IS 13{>}+"[Q2_][BX_]wait[Q2_];"+"*; Save/Gets (.SGT) file[cr|lf] "{>}{<}GT01{>}{<}EI{>};*;[cr|lf]{<}SX01,{<}VA$SD{>}{>}{<}SX01 ,";*"+";[cr|lf][BX_]dsort "+{<}IS01{>}+"[Q2_];"+"*; DIRectory Sort order[cr|lf]"{>}{<}GT01{>}{<}SX01,";*"+";[cr|lf];*"+";{032} Default paths[cr|lf]"{>}{<}GT01{>}{<}SX01,"[BX_]d dr={<}PV01{ {062}}\[Q2_];"+"*; Directory for TeMP files[cr|lf][BX_]d AOP={<}P V01{>}\[Q2_];"+"*; Autosave path[cr|lf]"{>}{<}GT01{>};*;[cr|l f]{<}SX01,{<}VAAOT{>}{>}{<}SX01,"[BX_]d AOT="+{<}IS01{>}+"[Q2 _];"+"*; Autosave time settings[cr|lf]"{>}{<}GT01{>};*;[cr|lf ]{<}SX01,"[BX_]d GP={<}PV01{>}\[Q2_];"+"*; Graphics path[cr|l f][BX_]d NL={<}PV01{>}\[Q2_];"+"*; Network log files[cr|lf][B X_]exist {<}PV01{>}\BTFONTS\*.*[Q2_]{<}IF@not({<}ER{>}){>}[BX _]d OL={<}PV01{>}\BTFONTS\[Q2_];"+"*; Outline screen fonts[cr |lf][BX_]d XY={<}PV01{>}\BTFONTS\[Q2_]{<}EI{>};"+"*; Location of SCRFONTS.BIN[cr|lf][BX_]d ZM=100[Q2_];*"+"; Zoom setting{032} for graphical view[cr|lf][BX_]exist {<}PV01{>}\FILTERS\*.*[Q2 _]{<}IF@not({<}ER{>}){>}[BX_]d WW={<}PV01{>}\FILTERS\[Q2_]{<} EI{>};"+"*; Conversion filters[cr|lf];"+"*;[cr|lf];"+"*; Path s Used by XY4 Menu|DiaLoG files[cr|lf][BX_]d/nv SG1900={<}PV0 1{>}\DOCS\[Q2_];"+"*;[cr|lf][BX_]d/nv SG1906={<}PV01{>}\[Q2_] ;"+"*;[cr|lf][BX_]d/nv SG1908={<}PV01{>}\[Q2_];"\"*;[cr|lf];* " +";[cr|lf];"+"*; Create PP.PRN (printer file with PP: table)[ cr|lf]"{>}{<}GT01{>};*;[cr|lf];*; Construct PP: table for PP. PRN[cr|lf][AS_][BX_]se [wC]PP:[Q2_]{<}IF{<}ER{>}{>}{<}SV01,P P:1[cr|lf]1{tab}STANDARD.PRN{tab}Standard printer file[cr|lf] ;[cr|lf]{>}{<}GLg{>}{<}EI{>}{<}SX03,0{>}{<}SV01,{>}[YD_]{<}LB f{>}[LD_][LB_][DF_][BX_]se/f [wC][Q2_]{<}IF{<}ER{>}{>}[LE_][ 255+048+068][CL_]{<}EI{>}[DF_]{<}SV02{>}[YD_]{<}IF{<}IS02{>}{ 240}"\"{>}{<}IF";"{238}{<}IS02{>}<>0{>}{<}SX10,{<}VA@02{tab}2 {>}{>}{<}GT08{>}{<}SX01,{<}IS01{>}+{<}VA@02{tab}1{>}+"{tab}"+ {<}IS13{>}+"{tab}"+{<}VA@02{tab}3{>}+"[cr|lf]"{>}{<}SX03,{<}P V03{>}+1{>}{<}EI{>}{<}GLf{>}{<}EI{>}{<}SX01,"PP:"+{<}IS03{>}+ "[cr|lf]"+{<}IS01{>}+";[cr|lf]"{>}{<}LBg{>}{<}SX01,"[BX_]exis t PP.PRN[Q2_]{<}IF@not({<}ER{>}){>}[BX_]ernv PP.PRN[Q2_][BX_] wait[Q2_]{<}EI{>};*"+";[cr|lf];*"+";[cr|lf];"+"*; To add/chan ge printers, carefully modify the PP: table below[cr|lf];"+"* ; Header format:[cr|lf];"+"*; PP:# [where ""#"" is number of{032} lines in table][cr|lf];"+"*; Line format:[cr|lf];"+"*; printi ng_port[TAB]printer_filename[no path!][TAB]printer_name[cr|lf ];*"+";[cr|lf]{<}SV02,;PR;[cr|lf];[cr|lf]"+{<}IS01{>}+"{>}[BX _]sa %02,PP.PRN[Q2_][BX_]wait[Q2_][BX_]load PP.PRN[Q2_][BX_]w ait[Q2_];"+"*;[cr|lf]{<}SX02,{<}VALA{>}{>}[BX_]d la=850[Q2_][ BX_]setp 1[Q2_][BX_]wait[Q2_][BX_]d la={<}PV02{>}[Q2_];*"+";[ cr|lf];"+"*; [cr|lf]{<}EX{>}[cr|lf]"{>}[AS_]{<}GT01{>};*;[cr| lf][BX_]st/nv PORTABL1.INT[Q2_]{<}IF{<}ER{>}{>}[TF_]{<}SV01,E rror writing PORTABL1.INT{>}{<}LBh{>}{<}SX01,{<}IS01{>}+" (Re lax, no file has been modified)"{>}{<}PR@01{>}{<}EX{>}{<}EI{> }[BX_]wait[Q2_]{<}IF{<}VA$WS{>}<1{>}[BX_]rs[Q2_]{<}EI{>};*;[c r|lf];*; Create PORTABL1.DFL:[cr|lf][TF_]{<}LBi{>}[BX_]se :\ [Q2_]{<}IF@not({<}ER{>}){>}[BX_]seb [wC][Q2_] [CR_];[BX_]se [wC][Q2_]{<}GLi{>}{<}EI{>};*;[cr|lf][TF_][BX_] ch [wC]PP: [wC];PP:[Q2_][BX_]wait[Q2_];*;[cr|lf]{<}GT08{>}[B X_]st/nv {<}PV14{>}\PORTABL1.DFL[Q2_]{<}IF{<}ER{>}{>}[TF_]{<} SV01,Error writing PORTABL1.DFL{>}{<}GLh{>}{<}EI{>}[BX_]wait[ Q2_];*;[cr|lf];*; Generate report:[cr|lf]{<}SX14,{<}VA$ET{>}{ {062}}{<}SX14,{<}VA@14:3{>}{>}{<}SX14,{<}PV14{>}{>}{<}SX01,{<}VA$ WA{>}{>}[BX_]func #{<}PV01{>}[Q2_][BX_]dir PORTABL1.*[Q2_][BX _]wait[Q2_][XP_][TF_][BX_]ch [w<][wW][w>][Q2_][BX_]wait[Q2_] [BX_]se [wC]____[Q2_]{<}IF@not({<}ER{>}){>}[LB_][DF_][BF_][D F_][DN_]{<}EI{>}[TF_][DF_][BF_][DF_]{<}SV04{>}[BX_]ab/nv[Q2_] {<}IF{<}VA$WS{>}<1{>}[BX_]rs[Q2_]{<}EI{>}{<}SX01,{<}VA$WA{>}{ {062}}[BX_]func #{<}PV01{>}[Q2_][BX_]ne/1[Q2_]{<}SX10,{<}IS06{>}{ {062}}{<}GT08{>}{<}SX02,{<}IS13{>}{>}{<}SX10,{<}IS07{>}{>}{<}GT08 {>}{<}SX03,{<}IS13{>}{>}{<}SX01,"{<}MDUL{>}PORTABLE.PM has cr eated:{<}MDNM{>}[cr|lf]PORTABL1.{<}MDIT{>}INT{<}MDNM{>} (repl acement for "+{<}IS02{>}+") and[cr|lf]PORTABL1.{<}MDIT{>}DFL{ <}MDNM{>} (replacement for "+{<}IS03{>}+")[cr|lf] in "+{<}IS 10{>}+", as follows:[cr|lf][cr|lf]"+{<}IS04{>}+"[cr|lf]{<}MDI T{>}No existing files were modified.{<}MDNM{>}[cr|lf][cr|lf]{ <}MDUL{>}To ""go portable"":{<}MDNM{>}[cr|lf]{<}MDBO{>}Make s ure that you have good BACKUPS of your original "+{<}IS02{>}+ " and "+{<}IS03{>}+"!{<}MDNM{>} (The first time you run PORTA BLE.PM, these files are automatically backed up to START_BK.I NT and SETTI_BK.DFL.)[cr|lf]{<}MDIT{>}Then:{<}MDNM{>}[cr|lf]C opy PORTABL1.{<}MDIT{>}INT{<}MDNM{>} to "+{<}IS02{>}+" (overw riting the existing file);[cr|lf]Copy PORTABL1.{<}MDIT{>}DFL{ <}MDNM{>} to "+{<}IS03{>}+" (overwriting the existing file);{032} and[cr|lf]Quit and restart XyWrite.[cr|lf]"{>}{<}GT01{>}[TF_] {<} SX01,"In all of "+{<}IS14{>}+" seconds..."{>}{<}PR@01{>}{<}EX {>}[cr|lf]{<}EI{>}{<}EI{>}{<}PRTwo (2) available windows requ ired{>}{<}EX{>}[cr|lf]{<}EI{>}{<}PRUnexpected: Missing or ina ctive STARTUP|SETTINGS file - No operation{>}{<}EX{>}[cr|lf]{ <}EI{>}{<}PRXyWrite v4 for DOS only{>}{<}EX{>}[cr|lf] -nd XPLeNCODE -- Carl Distefano cld@xxxxxxxx