Lisp Question regarding obtaining parts of a String

If you have a string of text in a Variable STRNG = MyTestString

and (substr STRNG 7) returns 'String'

.... how can I get 'MyTest' from STRNG.

I'll proably smack myself if I get an answer. But I can't find any function that will do this.

Thanks in Advance!

BruceF

Reply to
Mr. B
Loading thread data ...

Reply to
argusy

That doesn't work (at least for me). I don't want the end part of the string. But the begining part (ie: reverse search). I want to get a number of characters starting from the END of the string going backwards.

Regards,

BruceF

Reply to
Mr. B

Forget it... you are Correct (somewhat). Do NOT use a Zero or a Comma. So your example should read: substr STRNG 1 6

Then it wll work!!! Thanks!

I've an old Autocad Lisp book from R12 time. Doesn't show that :(

Regards,

BruceF

Reply to
Mr. B

Does this mean you'll be updating that RenLyr lisp to replace strings anywhere, not just at the front?

Happy Trails To You

Reply to
Happy Trails

I should have known not to put in the comma. I've just been in the visual basic ngs, and the VB equivalent is substr(stringtosearch,searchstring,start,numberofchars) BUT VB's start is zero, so I made a quick assumption that your post required the same. I should have counted the number of characters to the start of "STRING" That would have told me Lisp would have started at 1

Argusy

Mr. B wrote:

Reply to
argusy

Just to butt in, The R12 AutoLisp Programmers Reference book shows it on page 158. Perhaps you have some other book?

Brian.

Reply to
Brian Salt

Reply to
argusy

NP... butt in away.

My R12 book (dated May 11, 1992, publication 100191-01) has SubStr on page

155. I guess I've just have never used it before in the way I needed it now.

P158 has TblSearch, Terpri and TextBox on it (my book that is).

Regards,

BruceF

Reply to
Mr. B

I hear you. I also program in VB.net and VB6 and I too get confused/forgetful sometimes on the syntax. (:

Regards,

BruceF

Reply to
Mr. B

Ha! Somebody added a couple of pages between May and June 1992, I guess.

Just one month and already modified. Must have been important (:-)

Brian.

Reply to
Brian Salt

Interesting... Just imagine, back in the good old Daze, we use to get books!!! Actually they were a royal pain in the A** when you ended up with 10 or more copies of every firgging thing! Times have changed!

Regards,

BruceF

Reply to
Mr. B

No (:

I think that would be a bit harder. You'd have to somehow figure out how many characters into the Existing String, etc.

I originally wrote that simply because people were Inserting Xrefs into their drawings. And also because of some MAC Cadd files I'd get (exported). So I wanted something to clear out the beginning crap of layers (same thing with Blocks).

So I never intended it to be a search replace string kind of thing.

It would probably not be too much of a hassle if I had the Code to do a proper search of a string in a Layer name.

Regards,

BruceF

Reply to
Mr. B

(:_(( Indeed they have.

Reply to
Brian Salt

Thanks, Kitty, but the dwg I'm working with at the moment has some names that start with "TTL-0$" that is a leftover from an xref and a partial string replace from Mr. B's lsp. It seems both of these layer rename functions choke up on trying to find/replace a string that has a dollar sign (I think) at the end. It seems kind of stupid since it was acad that put those dollar signs in there.

It is probably something really anal in lisp like you just cannot end a string with a dollar sign, or something equally dopey.

Happy Trails To You

Reply to
Happy Trails

Bruce,

Did you try a search string that "ENDS" with a dollar sign? I also had no problems with strings with dollar signs in the middle.

It may be a problem with a resulting layer name ending up identical to a layer that's already there. What would you expect in that case?

The dwg I was fixing has quite a few layers with a lot of similar-looking layer names, so it's not easy to work with to resolve the problem, and I'm onto editing video now for the rest of the day anyway, so I'll have a closer look at it again later.

Your lisp gave an error after entry of the replace parameter, while the one Kitty supplied gave an error after entry of the search parameter. It was mostly because of that, not yours, that I guessed at a quick assumption about the dollar sign.

See you later.

- Tom ==================

Happy Trails To You

Reply to
Happy Trails

IIRC, autocad help shows the syntax and options for substr and others as well.

Reply to
Kitty

If I remember come monday at the office... several years ago I wrote a lisp to search and replace acad text... I suppose I can look it up and refresh my memory on how I handled search and replace, and post that part of the code....

Reply to
Kitty

formatting link

Reply to
Kitty

I don't understand because I've replaced many layers that DO have a dollar sign in them. I tried using your example: TTL-0$AAA TTL-0$BBB etc....

Ran my Lisp and got back: AAA BBB

I even tried it with three $$$'s... worked fine TTL-0$$$AAA TTL-0$$$BBB

How about some examples of your troubled Layers (cut & paste them).

Regards,

BruceF

Reply to
Mr. B

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.