1. printf fix
- Posted by Bernie Ryan <xotron at BUFFNET.NET> Apr 26, 2000
- 383 views
Rob: While you are fixing printf why don't you add support for \t the escape tab character so it is easier to format text without having to add a zillon spaces. Bernie
2. Re: printf fix
- Posted by Robert Craig <rds at ATTCANADA.NET> Apr 26, 2000
- 377 views
Bernie Ryan writes: > While you are fixing printf why don't you add support for > \t the escape tab character so it is easier to format text > without having to add a zillon spaces. I don't know what you mean. \t is already supported as a special character. You can use it in arguments to printf(), or anywhere else. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com
3. Re: printf fix
- Posted by Bernie Ryan <xotron at BUFFNET.NET> Apr 26, 2000
- 373 views
Correction make that SPRINTF; If I do this: ? sprintf("\t\t abcd",0) I get { 9,9,32,97,98,99,100 } shouldn't the tabs be expanded into spaces ?
4. Re: printf fix
- Posted by Gabriel Boehme <gabrielboehme at HOTMAIL.COM> Apr 26, 2000
- 389 views
Bernie Ryan wrote: >Correction make that SPRINTF; > > If I do this: ? sprintf("\t\t abcd",0) > > I get { 9,9,32,97,98,99,100 } > > shouldn't the tabs be expanded into spaces ? The ? operator will always return the sequence representation of any string. Try coding ? "\t\t abcd" -- you get the same result. The 9's are the tab characters. It's not a sprintf() problem, it's the way Euphoria works. Use puts(1, sprintf("\t\t abcd", 0)) or printf(1, "\t\t abcd", 0) if you want to see the tabs expanded. -- Gabriel ______________________________________________________ PLEASE IGNORE ANY ADS YOU MAY SEE BELOW THIS LINE. ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com
5. Re: printf fix
- Posted by Bernie Ryan <xotron at BUFFNET.NET> Apr 26, 2000
- 378 views
The purpose of the sprintf is to format a string. \t is a formatting character. All it takes in the interpeter is to expand \t into to 8 spaces. If I want to create a Title/Caption for a window I would like to simply use \t in stead of space,space,space...etc.
6. Re: printf fix
- Posted by Brian Broker <bkb at CNW.COM> Apr 26, 2000
- 393 views
On Wed, 26 Apr 2000 10:57:51 -0400, Bernie Ryan wrote: >Correction make that SPRINTF; > > If I do this: ? sprintf("\t\t abcd",0) > > I get { 9,9,32,97,98,99,100 } > > shouldn't the tabs be expanded into spaces ? No, tabs are simply a special character (ASCII code = 9) that are subject to the interpretation of the editor/text viewer being used. -- Brian
7. Re: printf fix
- Posted by Bernie Ryan <xotron at BUFFNET.NET> Apr 26, 2000
- 366 views
On Wed, 26 Apr 2000 12:30:51 -0400, Brian Broker <bkb at CNW.COM> wrote: >No, tabs are simply a special character (ASCII code = 9) that are subject >to the interpretation of the editor/text viewer being used. No \t is a escape sequence in a text string which means to goto the next tab stop. When the escape character \ is seen it means that the next character following is special character and because that character is a t then it is interrupted as a tab to next stop. Would't you like to use tabs in text in a listbox control.
8. Re: printf fix
- Posted by Brian Broker <bkb at CNW.COM> Apr 26, 2000
- 376 views
On Wed, 26 Apr 2000 12:49:48 -0400, Bernie Ryan wrote: > No \t is a escape sequence in a text string which means to goto > the next tab stop. When the escape character \ is seen it means > that the next character following is special character and because > that character is a t then it is interrupted as a tab to next stop. > > > Would't you like to use tabs in text in a listbox control. There are many messages that you can send to a listbox. Try looking into LB_SETTABSTOPS at: Note: To respond to the LB_SETTABSTOPS message, the list box must have been created with the LBS_USETABSTOPS style. Hope this helps, -- Brian
9. Re: printf fix
- Posted by Robert Craig <rds at ATTCANADA.NET> Apr 26, 2000
- 384 views
Bernie Ryan writes: > The purpose of the sprintf is to format a string. > \t is a formatting character. > All it takes in the interpeter is to expand \t into to 8 spaces. sprintf() should not expand tabs because: 1. How does it know how many spaces equals one tab? 8 is common, but by no means universal. 2. How does it know how many spaces to the next tab stop? It has no concept of the current column position. The tabs will be expanded when and if you choose to print the result of sprintf() on some device that understands tabs. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com
10. Re: printf fix
- Posted by Bernie Ryan <xotron at BUFFNET.NET> Apr 26, 2000
- 376 views
On Wed, 26 Apr 2000 13:33:21 -0400, Brian Broker <bkb at CNW.COM> wrote: > >Note: To respond to the LB_SETTABSTOPS message, the list box must have >been created with the LBS_USETABSTOPS style. Brian: That message sets tab stops in a listbox, but requires the user to calculate and adjust the tabs under different conditions. What I am saying is if sprintf formated a string as it should, then a user could use text in the listbox without dealing with adjusting tab stops, because the tabs would have been converted into spaces. In addition sprintf could then be used to format titles and other text strings in windows and dos. Bernie
11. Re: printf fix
- Posted by Matthew Lewis <MatthewL at KAPCOUSA.COM> Apr 26, 2000
- 383 views
> -----Original Message----- > From: Bernie Ryan > > Brian: > > <snip> if sprintf formated a string as it should But as a few people have already pointed out, sprintf *does* format a string 'as it should'. A tab is a defined character (ASCII 9, as someone pointed out), which doesn't equal a certain number of spaces. To get the behavior you're looking for, you could try: constant tab = repeat( ' ',8) sequence string string = sprintf("%sTab Spaces:%s%d",{tab,tab,length(tab)}) >, then a user could > use text in the listbox without dealing with adjusting tab stops, > because the tabs would have been converted into spaces. Except that as Robert pointed out, sprintf would have no way to deal with line position or font size, two things that would absolutely be needed in order to simulate tab stops. I think you're trying to use the wrong tool for this job. Matt Lewis
12. Re: printf fix
- Posted by "Lucius L. Hilley III" <lhilley at CDC.NET> Apr 26, 2000
- 377 views
printf() and sprintf() should and do translate '\t' into 9. The tab translation works just as it should. That is all I have to say. Lucius L. Hilley III lhilley at cdc.net +----------+--------------+--------------+ | Hollow | ICQ: 9638898 | AIM: LLHIII | | Horse +--------------+--------------+ | Software | http://www.cdc.net/~lhilley | +----------+-----------------------------+ > ---------------------- Information from the mail header ----------------------- > Sender: Euphoria Programming for MS-DOS <EUPHORIA at LISTSERV.MUOHIO.EDU> > Poster: Bernie Ryan <xotron at BUFFNET.NET> > Subject: Re: printf fix > -------------------------------------------------------------------------- ----- > > On Wed, 26 Apr 2000 13:33:21 -0400, Brian Broker <bkb at CNW.COM> wrote: > > > > > > >Note: To respond to the LB_SETTABSTOPS message, the list box must have > >been created with the LBS_USETABSTOPS style. > > Brian: > > That message sets tab stops in a listbox, but requires the user to > calculate and adjust the tabs under different conditions. What I am > saying is if sprintf formated a string as it should, then a user could > use text in the listbox without dealing with adjusting tab stops, > because the tabs would have been converted into spaces. In addition > sprintf could then be used to format titles and other text strings > in windows and dos. > > Bernie >
13. Re: printf fix
- Posted by =?iso-8859-2?B?qWtvZGE=?= <tone.skoda at SIOL.NET> Apr 26, 2000
- 369 views
- Last edited Apr 27, 2000
> No, tabs are simply a special character (ASCII code = 9) that are subject > to the interpretation of the editor/text viewer being used. > > -- Brian > That's Right