$ od -c -N 50000 [qv]<notecards>RELEASE1.2I>library>nchacks.ted!2 0000000 T h e N C H A C K S L i b r 0000020 a r y P a c k a g e \r \r X e r 0000040 o x C o r p o r a t i o n \r \r 0000060 R a n d y T r i g g \r \r \r \r [ 0000100 L o c a t i o n : { q v } < n 0000120 o t e c a r d s > r e l e a s e 0000140 1 . 2 i > l i b r a r y > n c h 0000160 a c k s . d c o m ] \r [ F i r s 0000200 t w r i t t e n : 8 / 2 3 / 0000220 8 5 R a n d y T r i g g ] \r 0000240 [ L a s t u p d a t e d : 8 0000260 / 2 7 / 8 5 R a n d y T r i 0000300 g g ] \r \r T h i s d o c u m e 0000320 n t d e s c r i b e s a l 0000340 i b r a r y p a c k a g e c 0000360 o n t a i n i n g m i s c e l 0000400 l a n e o u s h a n d y f u 0000420 n c t i o n s w r i t t e n 0000440 u s i n g t h e p r o g r a 0000460 m m e r ' s i n t e r f a c e 0000500 . I t i s h o p e d t 0000520 h a t y o u w i l l f i n 0000540 d t h e s e u s e f u l n 0000560 o t o n l y f o r t h e i 0000600 r f u n c t i o n a l i t y , 0000620 b u t a l s o a s e x a 0000640 m p l e s o f t h e s o r 0000660 t o f c o d e t h a t c 0000700 a n b e w r i t t e n u s 0000720 i n g t h e p r o g r a m m 0000740 e r ' s i n t e r f a c e . \r 0000760 \r I e n c o u r a g e a n y 0001000 r e a d e r s w h o h a v 0001020 e c r e a t e d s u c h f 0001040 u n c t i o n s t h e m s e l 0001060 v e s t o s e n d m e t 0001100 h e c o d e a n d a s h 0001120 o r t d e s c r i p t i o n 0001140 a n d I ' l l i n c o r p o 0001160 r a t e i n t o t h i s p 0001200 a c k a g e . \r \r T h e f o l 0001220 l o w i n g f u n c t i o n s 0001240 a r e a p p l i c a b l e 0001260 t o s e t s o f c a r d s 0001300 a n d a l l o w g l o b a 0001320 l s e a r c h i n g , r e p 0001340 l a c i n g , a n d c h a i 0001360 n c r e a t i o n . A l l 0001400 t h e s e f u n c t i o n s 0001420 e x p e c t t h e r e t o 0001440 b e a n o p e n n o t e 0001460 f i l e . I n a d d i t i 0001500 o n , e a c h o f t h e s 0001520 e t a k e s a C a r d s 0001540 a r g u m e n t . T h i s 0001560 s h o u l d b e b o u n d 0001600 t o e i t h e r a s i n g 0001620 l e c a r d I D o r a 0001640 l i s t o f c a r d I D s 0001660 . T o r u n t h e f u 0001700 n c t i o n o v e r a l l 0001720 c a r d s i n t h e n o t 0001740 e f i l e , p a s s t h e 0001760 v a l u e o f ( N C P . A l 0002000 l C a r d s ) a s t h e C 0002020 a r d s a r g u m e n t . 0002040 T o a l l o w u s e r s e 0002060 l e c t i o n o f c a r d s 0002100 , p a s s t h e v a l u e 0002120 o f ( N C P . S e l e c t C 0002140 a r d s ) . \r \r N C H A C K S . 0002160 T e x t S e a r c h ( S t r i 0002200 n g W i l d C a r d s ? C a 0002220 r d s R e t u r n L o c s F l 0002240 g ) \r \r T h i s g o e s t h 0002260 r o u g h t h e C a r d s 0002300 l i s t l o o k i n g f o r 0002320 o c c u r r e n c e s o f 0002340 t e x t s t r i n g S t r i 0002360 n g . W i l d C a r d s ? 0002400 b e i n g n o n - n i l m e 0002420 a n s w i l d c a r d c h 0002440 a r a c t e r s m a y a p p 0002460 e a r i n S t r i n g . 0002500 T h e p o u n d s i g n c 0002520 h a r a c t e r ' # ' m a t 0002540 c h e s a n y s i n g l e 0002560 c h a r a c t e r , a s t e r 0002600 i s k ' * ' m a t c h e s 0002620 a n y s e q u e n c e o f 0002640 c h a r a c t e r s , a n d 0002660 s i n g l e q u o t e , " ' 0002700 " c a n b e u s e d t o 0002720 q u o t e o n e o f t h 0002740 e w i l d c a r d c h a r a 0002760 c t e r s . \r \r I f R e t 0003000 u r n L o c s F l g i s n i 0003020 l , t h e n t h i s j u s 0003040 t r e t u r n s a l i s t 0003060 o f c a r d s c o n t a i 0003100 n i n g a t l e a s t o n 0003120 e o c c u r r e n c e o f 0003140 S t r i n g . I f R e t u 0003160 r n L o c s F l g i s n o n 0003200 - n i l , t h e n t h i s 0003220 r e t u r n s a l i s t o 0003240 f l i s t s . E a c h s 0003260 u b l i s t h a s a s f i 0003300 r s t e l e m e n t a c a 0003320 r d I D f o l l o w e d b 0003340 y t h e l o c a t i o n s 0003360 o f o c c u r e n c e s o f 0003400 S t r i n g . T h e s e 0003420 a r e s i n g l e i n t e g 0003440 e r s i f W i l d C a r d s 0003460 ? i s n i l a n d c o r 0003500 r e s p o n d t o t h e l 0003520 o c a t i o n o f t h e f 0003540 i r s t c h a r a c t e r o 0003560 f S t r i n g i n t h e 0003600 t e x t . I f W i l d C a 0003620 r d s ? i s n o n - n i l , 0003640 t h e n t h e s e a r e 0003660 t w o e l e m e n t l i s t 0003700 s o f s t a r t a n d e 0003720 n d l o c a t i o n s o f 0003740 t h e m a t c h i n g s t r 0003760 i n g . \r \r A n y c a r d s 0004000 i n C a r d s t h a t a r 0004020 e n o t t e x t c a r d s 0004040 a r e i g n o r e d ( i . 0004060 e . t h e i r c a r d t y 0004100 p e m u s t h a v e T E X 0004120 T s u b s t a n c e ) . \r \r N 0004140 C H A C K S . G l o b a l T e x 0004160 t R e p l a c e ( S t r i n g 0004200 1 S t r i n g 2 W i l d C a 0004220 r d s ? C a r d s ) \r \r T h i 0004240 s g o e s t h r o u g h t 0004260 h e C a r d s l i s t r e 0004300 p l a c i n g e v e r y o c 0004320 c u r r e n c e o f t e x t 0004340 s t r i n g S t r i n g 1 0004360 b y S t r i n g 2 . W i l 0004400 d C a r d s ? b e i n g n o 0004420 n - n i l m e a n s w i l d 0004440 c a r d c h a r a c t e r s 0004460 m a y a p p e a r i n S 0004500 t r i n g 1 . T h e p o u 0004520 n d s i g n c h a r a c t e 0004540 r ' # ' m a t c h e s a n 0004560 y s i n g l e c h a r a c t 0004600 e r , a s t e r i s k ' * ' 0004620 m a t c h e s a n y s e q 0004640 u e n c e o f c h a r a c t 0004660 e r s , a n d s i n g l e 0004700 q u o t e , " ' " c a n b 0004720 e u s e d t o q u o t e 0004740 o n e o f t h e w i l d c 0004760 a r d c h a r a c t e r s . \r 0005000 \r A n y c a r d s i n C a 0005020 r d s t h a t a r e n o t 0005040 t e x t c a r d s a r e 0005060 i g n o r e d ( i . e . t h 0005100 e i r c a r d t y p e m u 0005120 s t h a v e T E X T s u b 0005140 s t a n c e ) . \r \r N C H A C K 0005160 S . D a t e S e a r c h ( D a 0005200 t e S t r i n g 1 D a t e S t 0005220 r i n g 2 C a r d s ) \r \r T h 0005240 i s g o e s t h r o u g h 0005260 t h e C a r d s l i s t l 0005300 o o k i n g f o r o c c u r 0005320 r e n c e s o f c a r d p 0005340 a r t s m o d i f i e d b e 0005360 t w e e n t h e d a t e s 0005400 D a t e S t r i n g 1 a n d 0005420 D a t e S t r i n g 2 . I f 0005440 D a t e S t r i n g 1 i s 0005460 N I L , t h e n i t d e f 0005500 a u l t s t o a v e r y 0005520 e a r l y d a t e . I f 0005540 D a t e S t r i n g 2 i s N 0005560 I L , t h e n i t d e f a 0005600 u l t s t o c u r r e n t 0005620 d a t e . I f y o u p r 0005640 o v i d e v a l u e s f o r 0005660 e i t h e r D a t e S t r i 0005700 n g 1 o r D a t e S t r i n 0005720 g 2 , t h e y s h o u l d 0005740 b e s t r i n g s i n t h 0005760 e s a m e f o r m a t a s 0006000 t h a t r e t u r n e d b 0006020 y t h e ( D A T E ) f o r 0006040 m a t , i . e . " 1 - J a 0006060 n - 8 5 0 0 : 0 0 : 0 0 " . \r 0006100 \r T h i s r e t u r n s a 0006120 l i s t o f l i s t s , o 0006140 n e s u b l i s t f o r e 0006160 a c h c a r d m o d i f i e 0006200 d b e t w e e n t h e g i 0006220 v e n d a t e s . T h i s 0006240 s u b l i s t c o n s i s t 0006260 s o f t h e c a r d I D 0006300 f o l l o w e d b y t w o 0006320 - e l e m e n t l i s t s c 0006340 o n t a i n i n g t h e c a 0006360 r d p a r t n a m e t h a 0006400 t w a s m o d i f i e d a 0006420 n d t h e d a t e o f l 0006440 a s t m o d i f i c a t i o n 0006460 . F o r e x a m p l e , 0006500 i f t h e r e w e r e t w 0006520 o h i t s , y o u m i g h 0006540 t g e t s o m e t h i n g 0006560 l i k e ( ( N C 0 0 0 0 1 ( 0006600 S U B S T A N C E D A T E " 2 0006620 3 - A u g - 8 5 1 9 : 1 5 : 2 0006640 7 " ) ( T I T L E D A T E " 0006660 2 3 - A u g - 8 5 1 9 : 1 5 : 0006700 4 4 " ) ) ( N C 0 0 0 2 3 ( L 0006720 I N K S D A T E " 2 3 - A u g 0006740 - 8 5 1 9 : 1 6 : 1 6 " ) ) ) 0006760 \r \r N C H A C K S . M a k e C h 0007000 a i n ( L i n k T y p e C a 0007020 r d s P o s i t i o n A d d 0007040 C R F l g ) \r \r T h i s c r e 0007060 a t e s l i n k s b e t w e 0007100 e n s u c c e s s i v e c a 0007120 r d s i n C a r d s e a c 0007140 h o f t y p e L i n k T y 0007160 p e p o s i t i o n e d a t 0007200 P o s i t i o n . T h u s 0007220 t h e f i r s t c a r d 0007240 i n C a r d s w i l l b e 0007260 l i n k e d t o t h e s 0007300 e c o n d , t h e s e c o n 0007320 d t o t h e t h i r d , 0007340 e t c . ( N o l i n k w 0007360 i l l b e b u i l t f r o 0007400 m t h e l a s t c a r d 0007420 i n C a r d s . ) P o s i 0007440 t i o n s h o u l d b e i 0007460 n t h e s a m e f o r m 0007500 a s t h a t a c c e p t e d 0007520 b y N C P . C a r d A d d T 0007540 e x t , i . e . e i t h e r 0007560 a n i n t e g e r l o c a 0007600 t i o n o r o n e o f t 0007620 h e l i t a t o m s S T A R 0007640 T o r E N D . I f t h 0007660 e A d d C R F l g i s n o 0007700 n - n i l a n d P o s i t i 0007720 o n i s o n e o f S T A 0007740 R T o r E N D , t h e n 0007760 a c a r r i a g e r e t u r 0010000 n i s i n s e r t e d a f 0010020 t e r t h e l i n k i c o 0010040 n i n t h e c a s e o f 0010060 S T A R T o r b e f o r e 0010100 t h e l i n k i c o n i 0010120 n t h e c a s e o f E N 0010140 D . \r \r A n y c a r d s i n 0010160 C a r d s t h a t a r e 0010200 n o t t e x t c a r d s a 0010220 r e i g n o r e d ( i . e . 0010240 t h e i r c a r d t y p e 0010260 m u s t h a v e T E X T 0010300 s u b s t a n c e ) . \r \r N C H 0010320 A C K S . R e m o v e D e l e t 0010340 e d I c o n s F r o m T e x t C 0010360 a r d s ( C a r d s ) \r \r T h 0010400 i s r e m o v e s a l l d 0010420 e l e t e d l i n k i c o n 0010440 s f r o m t h e t e x t 0010460 o f t h o s e c a r d s i 0010500 n C a r d s h a v i n g T 0010520 E X T s u b s t a n c e . \r \0 0010540 \0 \0 \0 \0 005 \0 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010560 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 034 \0 \0 \0 0010620 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010640 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 034 \0 \0 \0 0010660 \0 \0 \0 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010700 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 \0 004 \0 0010720 \n T I M E S R O M A N \0 \f \0 \0 \0 0010740 \0 \0 \0 002 \0 \0 \n T I M E S R O M A 0010760 N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \n T I M 0011000 E S R O M A N \0 \f \0 \0 \0 \0 \0 \0 \0 0011020 \0 \0 \n T I M E S R O M A N \0 016 \0 0011040 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 002 \0 003 \0 0011060 \0 \0 033 \0 \0 \0 \0 004 \0 \0 \0 001 \0 \0 \0 \0 0011100 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 001 \0 \0 \0 0011120 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 022 \0 \0 0011140 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 001 \0 0011160 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 \f 0011200 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 0011220 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 0011240 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 0011260 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 002 0011300 \0 \0 \0 < \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 0011320 002 \0 \0 \0 % \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 0011340 \0 002 \0 \0 \0 # \0 \0 \0 \0 002 \0 \0 \0 001 \0 0011360 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 001 0011400 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 001 0011420 + \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 0011440 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 0011460 \0 \0 227 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 0011500 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0011520 001 \0 \0 001 336 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0011540 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0011560 002 \0 001 \0 \0 \0 ; \0 \0 \0 \0 001 \0 \0 \0 \0 0011600 \0 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 0011620 \0 \0 002 \0 001 \0 \0 001 U \0 \0 \0 \0 003 \0 \0 0011640 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 0011660 \0 \0 \0 \0 002 \0 001 \0 \0 001 373 \0 \0 \0 \0 003 0011700 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 0011720 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 h \0 \0 \0 0011740 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 0011760 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 = \0 0012000 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 0012020 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 001 0012040 c \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 0012060 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 0012100 \0 \0 h \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 0012120 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0012140 001 \0 \0 \0 3 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 0012160 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0012200 002 \0 001 \0 \0 001 242 \0 \0 \0 \0 003 \0 \0 \0 \0 0012220 \0 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 0012240 \0 \0 002 \0 001 \0 \0 001 260 \0 \0 \0 \0 003 \0 \0 0012260 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 0012300 \0 \0 \0 \0 002 \0 001 \0 \0 \0 5 \0 \0 \0 \0 001 0012320 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 0012340 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 002 ; \0 \0 \0 0012360 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 0012400 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 h \0 0012420 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 0012440 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 0012460 0 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 001 \0 \0 0012500 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 0012520 \0 \0 a \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 0012540 \0 \0 021 _ \0 a z 271 0012550