---
title: "Tabba aspkod - automatiskt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/147926-tabba-aspkod-automatiskt"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "erik_nordell"
published: "2006-06-11T10:39:17.000Z"
updated: "2006-06-11T17:07:56.000Z"
replies: 2
views: 305
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/147926-tabba-aspkod-automatiskt"
---

# Tabba aspkod - automatiskt

## #1 — erik_nordell, 2006-06-11T10:39Z

Jag har under åren lärt mig att strukturera min kod med tabbar och kommentarer bättre och bättre...

men, jag har en del "gamla projekt"/filer utan vettig tabbning och långa och klumpiga filer.

Vad jag menar är att jag då inte tabbade ut vid ifsatser, forsatser etc. 

Min fråga är, om någon känner till något program som "tabbar ut" automatiskt på rätt ställen så jag slipper tabba mig igenom flera tusen rader kod.

har kollat på google etc. men har inte hittat något, men vad vet jag, det kanske inte kallas autotabbning som jag kallar det :-)
någon som vet något program? i värsta fall får man väl koda ihop ett script som fixar sina aspfiler - om det inte finns något program som redan gör detta (vilket det borde finnas)

Permalänk: https://www.webforum.nu/p/147926

## #2 — erik_nordell, 2006-06-11T16:50Z

Sagt som gjort.

skrev ett litet program som autotabbar alla aspfiler i en katalog.

se koden nedan, fattas lite reg.exp. för funktioner och subs men annars fungerar det fint.

```
<%
'Fixar till alla .asp filer i denna dir.
'Backup/ är backmål.

katalog = "test/"
on error resume next
Set MyDirectory=Server.CreateObject("Scripting.FileSystemObject") 
Set MyFiles=MyDirectory.GetFolder(Server.MapPath(katalog)) 

Set fs=Server.CreateObject("Scripting.FileSystemObject")
if not fs.FolderExists(server.mappath(katalog & "backup/")) = true then
	fs.CreateFolder(server.mappath(katalog & "backup/")) 
end if
		
For Each filefound In MyFiles.files 
	filnamn = filefound.Name
	fil = ""
	
	if right(filnamn,3) = "asp" then

		if fs.FileExists(server.mappath(katalog & "backup/"&filnamn)) = true then
			fs.DeleteFile server.mappath(katalog & "backup/"&filnamn)
		end if
		
		fs.MoveFile server.mappath(katalog & filnamn),server.mappath(katalog & "backup/"&filnamn)

		Set f=fs.OpenTextFile(Server.MapPath(katalog & "backup/"&filnamn),1) 
		do while f.AtEndOfStream = false
			fil = fil & replace(replace(f.ReadLine,vbtab,""),"  ","") & "+++++" 
		loop
		f.Close 
		Set f=Nothing 

		fil = split(fil,"+++++",-1)
		  
		Set objRegExp = New regexp
		objRegExp.Global = True
		objRegExp.IgnoreCase = True

		patt_up = "IF(.*?)THEN|ELSEIF(.*?)THEN|ELSE|DO(.*?)WHILE(.*?)|DO(.*?)UNTIL(.*?)|^FOR(.*?)\=(.*?)TO(.*?)"
		patt_down = "END(.*?)IF|ELSEIF(.*?)THEN|ELSE|^LOOP|^NEXT" 
		tab = 0  
		  
		set f=fs.CreateTextFile(server.mappath(katalog & filnamn),true)  
		for i = 0 to ubound(fil) 
			tmp = "" 
		    
		    objRegExp.Pattern = patt_down
		    Set myMatches = objRegExp.Execute(fil(i)) 
		    For each item in myMatches 
				tab = tab - 1
		    next 
			
		    for k = 0 to tab-1
				tmp = tmp & vbtab 
		    next 
			
			'Skriver till filen
		    f.WriteLine(tmp & fil(i))
		  	
		    objRegExp.Pattern = patt_up
		    Set myMatches = objRegExp.Execute(fil(i)) 
		    For each item in myMatches 
			tab = tab + 1
		    next 
		next

		f.Close
		set f=nothing
		response.write filnamn & " är fixad.<br>"
	end if
	 

Next 
set fs=nothing
Set MyDirectory= Nothing
Set MyFiles= Nothing %>
```

Permalänk: https://www.webforum.nu/p/1828446

## #3 — P, 2006-06-11T17:07Z

Nice!

Permalänk: https://www.webforum.nu/p/1828457

---

Tråden på webben: https://www.webforum.nu/amne/asp/147926-tabba-aspkod-automatiskt
