Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

Function to expand tab characters Expand / Collapse
Author
Message
Posted Sunday, October 14, 2007 4:05 AM


Mr or Mrs. 500

Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500

Group: General Forum Members
Last Login: Sunday, April 20, 2014 11:44 AM
Points: 561, Visits: 2,417
Comments posted to this topic are about the item Function to expand tab characters


Best wishes,

Phil Factor
Simple Talk
Post #410604
Posted Monday, September 19, 2011 11:59 AM


Mr or Mrs. 500

Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500

Group: General Forum Members
Last Login: Sunday, April 20, 2014 11:44 AM
Points: 561, Visits: 2,417

I can't quite remember writing this. I think I must have been trying to check out the process for submitting scripts for some reason, and grabbed something I had to hand. Apologies for the awful header, which explains very little. I hurriedly tried it out and to my surprise it seems to work.


DECLARE @TabbedStuff VARCHAR(2000)
SELECT @TabbedStuff='
'
+CHAR(9)+ 'SELECT @tabsize = COALESCE(@tabsize, 4)
'
+CHAR(9)+ 'IF @string IS NULL RETURN NULL
'
+CHAR(9)+ 'DECLARE @OriginalString VARCHAR(8000),
'
+CHAR(9)+CHAR(9)+'@DetabbifiedString VARCHAR(8000), @Column INT, @Newline INT
  '
+CHAR(9)+ 'SELECT @OriginalString = @String, @DeTabbifiedString = '', @NewLine = 1,
'
+CHAR(9)+CHAR(9)+'@Column = 1
'
+CHAR(9)+'WHILE PATINDEX(''%['' + CHAR(9) + CHAR(10) + '']%'', @OriginalString) > 0'


SELECT dbo.expandTabs(@TabbedStuff,3)

The code comes from the Code Prettifier, of course, so if I extracted it properly, then I guess it works. I've updated the Prettifier since then but not this logic as it seems to work OK. Unfortunately, I haven't updated the version of the prettifier on http://extras.sqlservercentral.com/prettifier/default.aspx but I will as soon as I get a quiet week (nervous laugh)




Best wishes,

Phil Factor
Simple Talk
Post #1177393
Posted Thursday, September 29, 2011 10:35 AM


SSC Journeyman

SSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC Journeyman

Group: General Forum Members
Last Login: Friday, April 18, 2014 1:02 PM
Points: 75, Visits: 405
Phil,
Here is a much simpler function.

ALTER FUNCTION [dbo].[fnConvertTabToSpaces]
(
@String VARCHAR(8000)
,@NumSpaces INT
)
RETURNS VARCHAR(8000)
AS
BEGIN
-- Declare the return variable here
DECLARE
@Result VARCHAR(8000)
,@tab CHAR(1) = CHAR(09)

SELECT
@Result = REPLACE(@String, @tab, SPACE(@NumSpaces))

RETURN @Result

END



Bill Soranno
MCP, MCTS, MCITP DBA
Database Administrator
Winona State University
Maxwell 143

"Quality, like Success, is a Journey, not a Destination" - William Soranno '92
Post #1183313
Posted Friday, September 30, 2011 2:17 AM


Mr or Mrs. 500

Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500Mr or Mrs. 500

Group: General Forum Members
Last Login: Sunday, April 20, 2014 11:44 AM
Points: 561, Visits: 2,417
Great, but it does a much simpler operation and certainly doesn't de-tabbify. In code, you are likely to get a mixture of spaces and tabs. The tab character actually is a control character that, in a mono-spaced font, means 'take me to the next TAB setting. It does not mean 'I'm eight spaces'(or whatever). TABS may be set to every eighth character position (or whatever) and so your code will work until the point that it finds a mixture of spaces, tabs and other control characters. There is a subtle difference as you'll find out when you try your routine on code that has both tabs and spaces in it. Why does code have both tabs and spaces? Hell, the coder uses both, and just whacks either the space-bar or the TAB key until columns line up. Programmers get irritated if their columns stop lining up, which is what will happen if they use your code.


Best wishes,

Phil Factor
Simple Talk
Post #1183586
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse