webForumDet fria alternativet

Loopa ut information ut textfil. Utesluta de tre första raderna

ASP

7 svar · 368 visningar · startad av devotion

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

Hej!

Jag har följande kod:

			while not objFile.atendofstream
				
				' Villkor för att flusha
				' **********************
				iCounter = iCounter +1
				if iCounter mod 100 = 0 then
					Response.write ("<script>document.getElementById(""progress"").innerHTML=""" & iCounter & """;</script>")
					Response.flush
				end if
			
				sLine = objFile.ReadLine
				If sLine <> "" then
					 if instr(sLine,  "") = 0 then
					
					'Ta ut de olika delarna ur textfilen
					sArticleDiscount = replace(Trim(Mid(sLine, iArticleDiscountStart, iArticleDiscountLength)), ",", ".")
					sCategory = Trim(Mid(sLine, iCategoryStart, iCategoryLength))
									
					'Uppdatera tblDiscount om rabatten redan finns
					sSQL = "UPDATE tblDiscount SET articleDiscount = " & sArticleDiscount & " WHERE categoryNumber = '" & sCategory & "'"
					objConn.Execute sSQL, lngRA, 128
					
					iUpdatesDiscount = iUpdatesDiscount + lngRA
				
					if lngRa = 0 then
						'Lägga till artikeln i tblArticle om den inte finns
						sSQL = "INSERT INTO tblDiscount (categoryNumber, articleDiscount, supplierId) VALUES ('" & sCategory & "', " & sArticleDiscount & ", " & iSupplierId & ")"		
						objConn.Execute sSQL,,128
						
						iInsertsDiscount = iInsertsDiscount + 1
					End if
					
					'Lägga till alla kategorier i en tabell som senare används för att ta bort utgångna kategorier
					sSQL = "Insert into tblTempCategory (categoryNumber) Values ('" & sCategory & "')"
					objConn.Execute sSQL

					End If
				End If
			wend

Som loopar ur raderna ur en textfil ocjh lägger in i databas...

Kan man på något sätt göra så att de tre första raderna i textfilen inte läses in?

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#2

Om jag skriver så här:

If sLine <> "" [b]and iCounter > 3[/b] then

, vad säger du då? ;)

Medlem sedan jan. 20013 582 inlägg
#3

Weeeeee! :D

Mvh

Medlem sedan jan. 20013 582 inlägg
#4

Hmmmm

Om jag förkortar koden lite:

while not objFile.atendofstream
	sLine = objFile.ReadLine
	If sLine <> "" and instr(sLine,  "") = 0 then
			'Läs in raden
	End If
wend

Blir det rätt?

Och den där exkluderi´ngen av de tre första raderna ska ju vara ett villkor för en viss leverantör..

If supplierId = 1 then exlkudera de tre första raderna...

Hur får man ihop allt det?

Mvh

Medlem sedan juni 200032 967 inlägg
#5
If sLine <> "" and not (supplierID = 1 and iCounter < 4) and instr(sLine,  "") = 0 then
Medlem sedan jan. 20013 582 inlägg
#6

thanx!

:D

Medlem sedan jan. 20013 582 inlägg
#7

Nu blir det sådär svårt igen...

Hur gör man om man om det är olika för olika leverantörer?

Ex

supplierId 1 --> ta bort 3 rader
supplierId 2 --> ta bort 5 rader
supplierId 3 --> ta bort 2 rader

Hur många rader som skall tas bort lägger jag ju givetvis in tblfoo, så slipper jag ju hårdkoda in värdena...

while not objFile.atendofstream
	sLine = objFile.ReadLine
	If sLine <> "" and not (supplierID = 1 and iCounter < 4) and instr(sLine,  "") = 0 then
			'Läs in raden
	End If
wend

Mvvvvh
Henrik

Medlem sedan juni 200032 967 inlägg
#8

Ayt... typ:

sSQL = "SELECT foo FROM tblFoo WHERE supplierID = 4711"
set oRS = oConn.Execute (sSQL)
iSkip = cint(oRS(0))

...

If sLine <> "" and iCounter > iSkip and instr(sLine,  "") = 0 then
250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)