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

Re: Using XyWrite as an address book



Reply to note from Bill Troop  Thu, 10 May 2012
12:12:00 +0100

Bill:

> I have been using a plain text file in XyWrite as my preferred
> address book for some time, because it is quicker to search
> than any known alternative. My problem is that it is
> unstructured, and therefore unsortable.
> ...
> Does anyone have any suggestion for structuring the data so
> that I could at least sort by last name? ...

I suppose you could come up with some sort of structure for a text
file, but it would be a bear to maintain and hard to read -- the
kind of thing one uses a text file to avoid. If sorting on fields is
what you're after, then I think you have no choice but to go over to
a relational database.

My address book has been a XyWrite file from Day One. The entries
are separated from each other by an embedded LeaDering command
(). Usually I just SEarch the file, but I also have a U2 frame,
REFS, that will list all entries containing a specified string. I've
adapted it below to work with any separator (not just LeaDering);
plug the desired separator string into  where indicated.

The frame can do case-absolute searches (framename REFSA) and
accepts SEarch command switches (e.g. /W for whole-word searches),
and you can use wildcards in the search string. Here are some
examples ("[wO]" stands for the OR wildcard):

REFS 914-[wO](914) - List entries with area code 914
REFSA/W Smith - List all "Smith" entries (case-absolute)
REFS M.D.[wO]Dr. - List doctors
REFS ology[wO]ologist - List specialties/specialists

You get the idea. Hope this helps.

XPLeNCODE v2.0
b-gin [UNTITLED]
{{;5refs*}} List entries containing REFerenceS to a specified
 string (entries bounded by LeaDering or user-determined sepa
rator) [CLD rev.5/11/12][cr|lf]{002};*;[cr|lf]{<}SV01,{>};*;{032}
Separator between entries (leave blank if LeaDering)[cr|lf];*
;[cr|lf]{<}SX02,{<}VA$CL{>}{>}{<}IF{<}VA|50{>}>0{>}{<}IF{<}VA
$WS{>}==1{>}{<}SX03,{<}VA$WA{>}{>}{<}IF{<}PV03{>}>0{>}[BX_]fu
nc #{<}PV03{>}[Q2_][BX_]ne[Q2_][AS_]{<}IF{<}VA|01{>}<1{>}{<}S
V01,[w<]LD[wX][w>]{>}{<}EI{>}{<}SX03,{<}VA$FR{>}{>}{<}SV04,s{
{062}}{<}SV05,{>}{<}XS03,04,04,04,05{>}{<}SX03,{<}CP{>}{>}{<}SV04
,{>}{<}IF{<}VA$DT{>}>0&{<}VA$DT{>}<>8{>}[TG_]{<}SV04,[TG_]{>}
{<}EI{>}[TF_][BX_]es 1[Q2_][DX_]{<}PRWorking{>}{<}LBa{>}[BX_]
se{<}PV05{>} {<}PV50{>}[Q2_]{<}IF@not({<}ER{>}){>}[YD_][BX_
]seb {<}PV01{>}[Q2_][YD_][DF_][BX_]se/2 {<}PV01{>}[Q2_]{<
}IF@not({<}ER{>}){>}[BX_]seb {<}PV01{>}[Q2_]{<}LBb{>}[DF_][
AS_][CP_][AS_][YD_][BX_]se {<}PV01{>}[Q2_]{<}GLa{>}{<}EI{>}
[BF_]{<}GLb{>}{<}EI{>}{<}SX50,{<}PV03{>}{>}[JM_]2.ReJuMP[Q2_]
{<}PV04{>}[AS_][TF_]{<}IF{<}VA$FE{>}>0{>}{<}SV01,Not found{>}
[BX_]ab/nv[Q2_]{<}IF{<}VA$WS{>}<1{>}[BX_]rs[Q2_]{<}EI{>}{<}LB
c{>}[BC_]{<}PV02{>}[GT_][DO_][FF_]{<}PR@01{>}{<}EX{>}{<}EI{>}
{<}SV01,Done{>}{<}GLc{>}{<}EI{>}{<}SV01,No window{>}{<}GLc{>}
{<}EI{>}{<}SV01,No file{>}{<}GLc{>}{<}EI{>}{<}SV01,REFS[A][/S
Earch_switch(es)] search_string{>}{<}GLc{>}{002}[cr|lf][cr|lf
]
-nd
XPLeNCODE

--
Carl Distefano
cld@xxxxxxxx