Using $PreRead with Notebook frontend
- To: mathgroup at smc.vnet.net
- Subject: [mg13593] Using $PreRead with Notebook frontend
- From: "Orjan Gustavsson" <orjan at ambrosia.se>
- Date: Mon, 3 Aug 1998 03:53:53 -0400
- Organization: Bahnhof Customer News Posting
- Sender: owner-wri-mathgroup at wolfram.com
I'm trying to make a package to interpret and manipulate Cisco Access
Lists. I want to simplify input by assigning a function to $PreRead
that will replace all ip addresses in the form 1.1.1.1 with
IPAddr[1,1,1,1]. My problem is that when I try this with the notebook
frontend the input string that is passed to $PreRead has already been
interpreted in part by the frontend, so 1.1.1.1 is wrapped with RowBox
objects in a nontrivial way.
The following code works when used without notebook frontend. (I'm sorry
it is not the prettiest of codes, but I'm rather new at this :)
StringTokenize[s_String] :=
Module[{st, res}, res = ReadList[st = StringToStream[s], Word];
Close[st];
res]
TokenListToString[sl_List] :=
StringJoin[Drop[Flatten[Transpose[{sl, Array[" "&,Length[sl]]}]], -1]]
TokenListToString[{}] := ""
$PreRead = (
TokenListToString[
StringTokenize[#] /.
a_String :>
ToString[IPAddr[StringReplace[a, {"." -> ","}]]] /;
StringMatchQ[a, "*.*.*.*"]])&
Anyone got any ideas of how to get this to work with the Notebook
frontend?
/Örjan Gustavsson