Re: Name of a list
- To: mathgroup at smc.vnet.net
- Subject: [mg26669] Re: Name of a list
- From: "John M. Jowett" <John.Jowett at cern.ch>
- Date: Wed, 17 Jan 2001 00:47:22 -0500 (EST)
- Organization: CERN
- References: <93r73j$4p6@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hello James,
You are clearly trying to transform Mathematica definitions of beam
lines into MAD format. It so happens I once wrote a function to do this. Here
it is, adapted slightly for the form of your list.
SetAttributes[madForm, HoldFirst];
madForm[line_] :=
OutputForm[
ToString[Unevaluated[HoldForm[line]]] <> ": LINE=(" <>
StringDrop[StringJoin @@ (ToString[First[#] <> ","] & /@ line), -1] <>
");"]
With the definition in your example
In[96]:=
madFile = OpenWrite["test.mad"];
Write[madFile, madForm[SRS]];
Close[madFile];
The file test.mad then contains
SRS: LINE=(quad1,sb1,bpm1);
or you can simply evaluate
madForm[SRS]
It needs some further definitions to take care of the last "bpm" element whose
definition appears to be elsewhere but that's easy to do.
Regards,
John Jowett
"news.clara.net" wrote:
> Hi,
>
> Could someone provide some help with a small problem I have??
>
> I have a list of formatted data with a title. This list is made up of other
> elements seperately defined. I need to output, to a seperate file, the
> element data from the list in a formatted way, on seperate lines. Then I
> need to define the list in terms of the names of the elements within it and
> its title.
>
> Currently I apply the element name as part of the list and read it out when
> needed, as the elements aren't defined as variables, just elements in a
> seperate list.
> However, how do I then print a line with the list title and then the element
> names? Obviously the element names are read from the list individually, but
> the list name is a variable representing the list. I can't specify the list
> name as a seperate variable as it is representative of a list, and it is
> very unwieldy to have to define a list in terms of elements and call it
> something, and then rename it when it is written to a file.
>
> The crux of my question is, can you take the name of a list and output it as
> a string??
>
> For reference, the list would like:
>
> SRS = {{"quad1", Quadrupole, 1.2, -2.9, "---", "---", "qd"}, {"sb1",
> SectorBend, 3.6, 0.007, "---", 2, "bend"}, {"bpm1", BPM, 0, "---", "---",
> "---", "bpm"}}
>
> and the file text should look like:
>
> SRS: Line = quad1, sb1, bpm1
>
> Any help would be much appreciated,
>
> James Jones
> Daresbury Lab.
> j.k.jones at dl.ac.uk
--
mailto:John.Jowett at cern.ch
My home page: http://wwwslap.cern.ch/~jowett/