1. TO Pete LOMAX re - tab spacing ........ I'm Lost

Hi Pete ,
               Sorry mate .. I can't follow .

the following says it all 




--Les Rogers wrote:
--> .............. output is
--> HiThere
-->         HiThere
--> Can I make output
--> HiThere
-->    HiThere

--I doubt there is any way to change what the console does when you
puts(1,"\t"),
--but you can pre-process your output. Here is a routine I use in Edita to
convert
--tabs to spaces:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>



Pete,
       I am learning
       and I don't know how to implement your great code.

       Maybe you could show me ??

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

I ASSUME IT TURNS tab's 8 spaces into 1 or 2 or 3 ???

I AM REALLY IGNORANT of FUNCTIONS ETC.



include get.e
constant SPACE=' ', TAB='\t'
atom w     ,isTabWidth
                      isTabWidth=1

global function ExpandTabs(sequence text)
-- Replace any tabs with spaces.
-- Fast (92,000 lines/second or better)
integer tab
    while 1 do
        tab=find(TAB,text)
        if not tab then exit end if
        text=text[1..tab-1]&
             repeat(SPACE,isTabWidth-remainder(tab-1,isTabWidth))&
             text[tab+1..length(text)]
    end while
    return text
end function

--where isTabWidth needs to be set to/defined as 3 for the example you gave.
--You could of course make this a procedure, say Puts1, which displays to the
--console rather than 'return text'.

--HTH,
--Pete

       ----------->>>>  MY JUNK BELOW I THINK IS GARBAGE !!

             puts(1,"\t")
             if routine_id=ExpandTabs() then end if
             puts(1,"HiThere")
             w=wait_key()

cheers,

les.r.

new topic     » topic index » view message » categorize

2. Re: TO Pete LOMAX re - tab spacing ........ I'm Lost

</eucode>
{{{

constant SPACE=' ', TAB='\t'

global function ExpandTabs(sequence text)
-- Replace any tabs with spaces.
-- Fast (92,000 lines/second or better)
integer tab
    while 1 do -- for ever and ever unless we stop it with exit
        tab=find(TAB,text)--We are looking for TAB in a sequence called text
       
        if not tab then exit end if--if we don't find it then get out and 
                                   --return 
                                   --the text sent in(at point 1)
                     --it was not tab so it must be that tab was assigned a 
                     --number

             text=text[1..tab-1] --redefing text from the first letter to
                                 --the position
                                 --where the tab was found minus 1
                              &  --and
             repeat(SPACE,--all the follow is muliplied by SPACE
             isTabWidth --you declared this value somewhere Pete says 3 
             -  -- minus
remainder(tab-1,isTabWidth)--you can look this up in the docs --   
                                                 --under remainder
            & --and  
            text[tab+1..length(text)]--text is now redefined with 
                                     --SPACEs replacing TABS 
--at some point all the TABs will be   -   
                                                                      --replaced with
--SPACEs and we will not find any tab --   
                                                                      --so we will
                                     --exit and all the 
--modified text will be returned at ----   
                                                                      --point 1
    end while
    return text --(point 1)
end function

</eucode>
{{{


Don Cole

new topic     » goto parent     » topic index » view message » categorize

3. Re: TO Pete LOMAX re - tab spacing ........ I'm Lost

Les Rogers wrote:
>                Sorry mate .. I can't follow .
> 
>              puts(1,"\t")
>              if routine_id=ExpandTabs() then end if
>              puts(1,"HiThere")
>              w=wait_key()

Ah, I see you are very new to this. Try first this:
puts(1,"HiThere\n")
puts(1,"\tHiThere\n")
puts(1,ExpandTabs("\tHiThere\n"))


After that I think you should go back to reading the manual and figure out, on
your own, how to make it possible instead of coding:
puts(1,ExpandTabs("\tHiThere\n"))

and similar everywhere, you can just write:
Puts1("\tHiThere\n")


There are at least two ways to do this, from the code and hints already given

Regards,
Pete

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu