I have a Text widget ($text) that contains text that I've read in from a file. It looks something like this:
Shapes
{
Shape=Circle
{
name=joe
diameter=3
color=blue
}
Shape=Circle
{
name=steve
diameter=5
color=red
}
Other Shapes...
}
I need to find all the circles, grab their names, and put them into an array (to then be read into a tree widget, but that's another topic). Once I've read this info in, the user will need to be able to duplicate any of the circles (they will do this by right-clicking on a circle in the tree). So in addition to all the circle names, I need to store the indices of the first and last characters of each circle's block of text as it appears in the text widget. In the example above I need to end up with an array that looks like this:
circles[0] = joe 3.2 8.3
circles[1] = steve 9.2 14.3
(where the numbers are in line.char format)
Then I can use get() and insert() to duplicate the circles in the text widget.
So in summary, what's the best way to search a text widget and extract information in this way?
Thanks so much for any help!
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.