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

Re: Self-referential problem



Reply to note from Carl Distefano  Mon, 23 Feb 2009
22:56:00 -0500

I've rounded out the "search for the unSEarchable" routine (SEFU)
with two new "wild" options. In addition to searching for any 3-
byte char (arg 3), any Ascii 255-based 3-byter (arg 255) and any
Ascii 254-based 3-byter (arg 254), you can now search for any 3-
byte function (arg F), and any wildcard character (arg W). Please
note that quotation marks around these special arguments are no
longer part of the syntax and should not be used.

Of course -- and this is the primary motivation for this routine --
SEFU can still be used to search for *any* string, particularly
strings containing wildcard characters, which are truly
unSEarchable with the native SEarch command.

As before, the search_string can either be placed on the CMline or
DeFined in text. If text is DeFined, it trumps any search_string on
the CMline (a change from prior usage).

An interesting "self-referential" element here arises when the
search_string contains Ascii 10, 13, 13+10 (CrLf), 174 or 175
(XYDECode: ~J ~M '^ ~< ~> ). In that instance the search_string MUST be
DeFined in text; there is, inherently, no CMline option. Xy4 will
not allow you to put any of these characters on the CMline in 1-
byte form. When you attempt to do so, they are transformed into the
corresponding SEarch wildcards (XYDECode: ;~< ;~> ;~Y ;~Q ;~[ ) -- which
clearly is NOT what you want when using this routine! I didn't have
this in mind when I added the DeFine usage, but in this instance
having the ability to construct and DeFine a search_string in text
becomes indispensable.

Here's the revised routine: a new Help screen, for XYWWWEB.INF, and
the U2 frame itself. I'll post an updated routine for Xy3 in a
separate message.

'%--_XYENCode_start--
'0 checksum 7184D05A
'02-27-2009 23:59:59
For_XYWWWEB.INF'.'^'^{SEfu}'^~SEFU.PM_for_XyWrite_IV~_--_C.L.Distefano_rev.2/27/09'^Search_for_"unSEarchable"_
strings'.'^~1)_Search_for_strings_consisting_of,_o
r_including,_wildcard_characters___[;A;L;N;O;S;W;X;-;~Y;~Q;~[;
%.;~<;~>;0;1;2;3;4;5;6;7;8;9]_~qua~_strings_and_
other_;r;e;v;e;r;s;e;_;v;i;d;e;o_characters,_which_cannot_be_f
ound_with_the_native_SEarch_command',_and'^2)_Perform_"wild"_s
earches_for_any_3-byte_character_or_for_particular_types_of_3-
byte_characters.'^'^~Usages_(2)'^==========~'^~<
MDIT~>1)_Search'-string_on_CMline~'^___SEFU_[search'-st
ring]|3|254|255|F|W'^'^~"Wildcard"_Args~
'^Arg__Searches_for'.'^---__-------------'^3____Any_3-byte_cha
racter_(:A,_'BC,_;X,_~256,_et_al.)'^254__Any_3-byter_with_Asci
i-254_in_byte_#1_(~256-~909,_et_al.)'^255__Any_3-byter_with_As
cii-255_in_byte_#1_(:A,_'BC,_;X,_et_al.)'^F____Any_3-byte_func
tion_('BC,_'BX,_'Q2,_et_al.)'^W____Any_3-byte_;r;e;v;e;r;s;e;-
;v;i;d;e;o_char_(SEarch_wildcards,_et_al.)'^'^~2)_Searc
h'-string_DeFined_in_text'.~'^___SEFU'^___~Note'._This_usage_is_*required*_for_any_search'-strin
g_that_contains_the_following_Ascii_characters_in_1-byte_form'.
_10_(line_feed),_13_(carriage_return),_13+10_(CrLf),_and_174_o
r_175_(angle_brackets_or_guillemets)._These_characters_cannot_
be_placed_on_the_CMline_in_true_form',_if_you_attempt_to_do_so
_(e.g.,_with_frame_PUTDF-CM),_they'`re_transformed_into_wildca
rds--which_will_NOT_do_for_present_purposes'|_Alternatively,_y
ou_can_issue_~~~>'JM2.GetPath'Q2
~+"\XYWWWEB.INF"~>'JM2.CallorGo/9'Q2'DX'TF'BXse/
f__U2L,U2L*,'Q2'JM2.MoveHM'Q2'DO'FF~>U2L~_to_o
pen_a_"large_CMline"_text_window,_construct_your_SEFU_command_
there,_and_issue_U2L_again_to_execute_the_search.'^'^
Additional_remarks'.'^-_Cursor_stops_on_first_character_of_sea
rch'-string_if_found.'^-_All_searches_are_cAsE-Absolute.'^-_De
Fined_text_takes_precedence_over_CMline_arg.'^-_To_learn_about
_XyWrite'`s_3-byte_characters_and_their_uses,'^____read~
_~
'JM2.ViewURL'Q2~>CTRLCHAR.TXT~.'^'^~'^For_use_by_R
ENUMBER.PM'^Renumber_frame_SEFU_in_PACK_mode'^Default_S/G_rang
e_=_01-10',_50'^OPTIONs_(1)'.'^FREEZE_50'^~'^-~I-~I-~I-~I
-~I-~I-~I-~I-~I-'^'^For_U2'.'^'^{{5SEfu}}_Search_for_"unSEarch
able"_strings_[CLD_rev.2/25/09]'^~B~==1~>~
'DZ~>0~>~~-~~>~
~>0~>'BXes_1'Q2'GT~'NO~~<
XS02,03,04,05,05~>~~~)=="""F""
"'|@upr(~)=="""W"""~>~~)==""
"F"""~>~~~="DLL"~>~+"~131"~>~~~~=="""255"""'|~>1~>~~>~~~=="""254"""~>~<
SX50,~~>~~~~>'DX~~<
LBb~>'YD'CR~<1~>~+1024~>'DF'BXjmp_~'Q2~<1~>'CR'CL~'DF~',*','^',*',_Ar
g_[search'-string],_"254",_"255",_"F"_or_"W"'.'^~<>
"""3"""~>~~~~{~
~>~<>~&~<0~>~~',*','^',*',
_Possible_hit'.'^~+~~>~~>-1~>',*','^',*',_Wild_func_or_wild_wildcard_(arg_"F"_or_"W"
)'.'^~>1~>~+~+3~>'BXjmp_~'Q2'YD'DF'CL',*','^',*',___Tame_erratic_cursor_on_"hot"_3-
byter'.'^~<>~-3~>~-3~>'BXjmp_~

'Q2~',*','^'DF~'YD~+"~252"+~~>~~',*','^~>0&~~{~<0~>~~',*',_Not_a_func'^~< IF~<1&(~<"~192"'|~=="~192"&~<"~128 ")~>',*',_Not_a_wildcard'^~~',*','^~~>~< GLd~>~',*',_Func_or_wildcard_found'^',*',_Search'-string_ found'.'^~+~~>~'YD'BXjmp_~'Q2 ~>0~>~+~~>'DO'FF'DF'BXjmp_~'Q2'DF'DB~'DX~~>7~>'MU~~~< SX02,"Found'._~="+~~>'DO'FF~~~', *','^',*',_Wild_3-byter_(arg_"3")'.'^~~~= ~~>~~{~~>~~~=~~>~<0'|~~{~<~~>~~{~~>~~~<0~>~~~ ~'BXjmp_~'Q2'DO'FF~~~~~>~~< EI~>~~B'^'^~Z '%--_XYENCode___end-- -- Carl Distefano cld@xxxxxxxx