webForumDet fria alternativet

Söka igenom textfiler som finns i en mapp och göra olika saker beroende på innehåll

ASP

2 svar · 428 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hej,

Någon som kan putta mig i rätt riktning? :)

Jag vill som rubriken antyder söka igenom en mapp och leta upp textfiler som har ett visst innehåll och göra saker

Om första raden innehåller:

#FLAGGA 0

Skall inget göras

Om raden innehåller:

#FLAGGA 1

Skall filen flyttas.

Jag har denna kod som kan ta reda på om det är en 1 eller 0

	dim sLine
	dim n
	
	sLine = trim(sLine) 
	if len(sLine) <> 9 then 
		' error! raden för kort 
	else 
		n = mid(sLine, 9, 1) 
		if n = "0" then
			'Do nothing
		elseif n = "1" then
			'Move file
		end if
	end if

(tack peter s)

Som sagt, någon som kan putta mig i rätt riktning.

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#2

Hej,

Jag har nu lyckats att loopa igenom alla filer i en mapp!

Option explicit

Sub main()	

	dim sPath
	dim Fs, Folder, FileColl, f
	dim s
	
	s = ""
	
	'Sökväg till utkorgen
	sPath = "\\mapp\"
	
	'Skapa ett filesystemobjekt
	Set Fs = CreateObject("Scripting.FileSystemObject")
	
	Set Folder = Fs.GetFolder(sPath)
	
	Set FileColl = Folder.Files
	For Each f in FileColl
		s = s & f.Name & VbCrLf
	Next
	
	msgBox s
	
	Set Fs = Nothing
	Set Folder = Nothing
	Set FileColl = Nothing
	
end sub

Jag kan lista upp alla filnamn och visa dom...

Hur gör jag för att öppna filen och titta om villkoret uppfylls?

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#3

Hej igen,

Nu har jag kommit så här långt:

'
'
'
'

Option explicit

Sub main()	

	dim sExportPath, sArchivePath
	dim Fs, Folder, FileColl, fi, sLine, f
	dim sStatus
	dim s
	
	
	'Sökväg till utkorgen
	sExportPath = "\\Mapp\SIE\Utkorg\"
	
	'Sökväg till Arkiv
	sArchivePath = "\\Mapp\SIE\Arkiv\"
	
	'Skapa ett filesystemobjekt
	Set Fs = CreateObject("Scripting.FileSystemObject")
	
	Set Folder = Fs.GetFolder(sExportPath)
	
	Set FileColl = Folder.Files
	
	For Each fi in FileColl
		set f=Fs.OpenTextFile( fi,1,false)
		sLine = f.readline
		sStatus = GetStatus(sLine)
		f.close
		if sStatus = 1 then
			fs.MoveFile fi, sArchivePath
		End if
	Next

	Set Fs = Nothing
	Set Folder = Nothing
	Set FileColl = Nothing
	Set fi = Nothing
	Set f = Nothing
	
end sub

Function GetStatus(sLine)

	dim n
	sLine = trim(sLine) 
	if len(sLine) <> 9 then 
		GetStatus = -1
	else 
		n = mid(sLine, 9, 1) 
		if n = "0" then
			GetStatus = 0
		elseif n = "1" then
			GetStatus = 1
		end if
	end if
End function

Det som jag vill ska hända, händer och allt verkar funka som det skja.

Är dock intresserad av synpunkter på koden. Dvs variabelnamn, uppställning osv....

Mvh
Henrik

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)