[EMAIL PROTECTED] wrote: > On 28 srp, 07:05, Zentrader <[EMAIL PROTECTED]> wrote: >>>> [EMAIL PROTECTED] wrote: >>>>> NEW TEXT : "Hello world;\nHello:\n\t\t\n\n\n\n\n\nHello2" >> If you are doing all of this to format the output into columns, >> Python's print() or write() will do this, and is easier as well. Some >> more info on what you want to do will clear things up. > > Hi, > > That is confusing me too, so now I will try explain it more.This is > text before "translation": > Let me explain you with python code. I want to this "function" act > code indentation > >>>> Short_Text="n=90; if n==90:print 'ok'" > Then now I must write that function for detect ";" and ":", and if > that function detect ";" then it appends "\n" before ";" but > if detect ":" then it appends "\n\t\t\t\t\t\t\t\t" >>>> Short_text_after_translation="n=90;\nif n==90:\n\t\t\t\t\t\t\t\tprint 'ok" > ...And now when we run this code with exec this must look like: > > n=90; > if n==90: > print 'ok' > > I think this will be enough for help. > OK, but you don't want that many tab characters if you can the code to look like you show it. It's not, anyway, a good idea to use tabs to indent code.
I suspect what you need is to split the code on semicolons first, then re-form lines with colons in them. Some simple code to do this would look *something* like what follows. This will handle a little more than you wanted. >>> Short_Text="n=90; if n==90:print 'ok'" >>> compound_lines = Short_Text.split(";") >>> for line in compound_lines: ... line = line.replace(":", ":\n ") ... print line ... n=90 if n==90: print 'ok' >>> Note there are issues here that I haven't addressed. The first is that leading spaces on the second statement need to be removed, and the second is that this only works at the outermost level of indentation. For example, if you want to end up translating function definitions with if statements inside them correctly you will need to handle multiple levels of indentation. There are other problems, like semicolons and colons inside string constants should be ignored, but the only way to get over those will be to parse the program text according to some grammar rather than using ad-hoc methods such as the above. I hope I have finally been of some assistance ... please reply via the newsgroup, not in personal email. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden --------------- Asciimercial ------------------ Get on the web: Blog, lens and tag the Internet Many services currently offer free registration ----------- Thank You for Reading ------------- -- http://mail.python.org/mailman/listinfo/python-list