---
title: "Hantera textfil - Ta bort = InStr(rad,\"ord\")"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/154289-hantera-textfil-ta-bort-instr-rad-ord"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "oskars"
published: "2006-11-28T10:50:48.000Z"
updated: "2006-12-15T07:10:00.000Z"
replies: 27
views: 1123
page: 1
pages: 2
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/154289-hantera-textfil-ta-bort-instr-rad-ord"
---

# Hantera textfil - Ta bort = InStr(rad,"ord")

_Sida 1 av 2._

## #1 — oskars, 2006-11-28T10:50Z

Hej,

håller på att få fnatt på en textfil som jag har här!

Jag vill göra ett script som tar bort alla rader i min textfil som innehåller t.ex ordet "tv" osv...

Tänkte mig formuläret så här enkelt:

```
<form name="do" method="post" action="default.asp?do=deleteLines">
   Välj textfil: <input name="textfile" type="file" /><br />
   Välj sträng att leta efter: <input name="string" type="text" /><br />
   <input type="submit" value="HIT IT!" />
</form>
```

 

Men jag vet inte hur jag ska lösa raderingen av raderna om dom innehåller valt ord...

Tacksam för hjälp =)=)=)

Oskar

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

## #2 — voigtann1, 2006-11-28T10:55Z

Bör kunna fixas med RegExp att den söker efter "tv" på raderna... och ta bort det tror jag... ska nog inte vara så svårt...

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

## #3 — voigtann1, 2006-11-28T10:58Z

Eller loopar du varje rad som din FSO läser och något i stil med:

```
if instr(strRow(1),"tv") then strRow(1) = ""
```

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

## #4 — voigtann1, 2006-11-28T11:02Z

```
<%
Const Filename = "/readme.txt"	' file to read
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
' Create a filesystem object
Dim FSO
set FSO = server.createObject("Scripting.FileSystemObject")
Dim Filepath
Filepath = Server.MapPath(Filename)

if FSO.FileExists(Filepath) Then
	Dim file	
	set file = FSO.GetFile(Filepath)

	Dim FileSize
	FileSize = file.Size
	' Open the file
	Dim TextStream
	Set TextStream = file.OpenAsTextStream(ForReading, _
                                               TristateUseDefault)

	' Read the file line by line
	Do While Not TextStream.AtEndOfStream
	  dim Line
	  Line = TextStream.readline
          if not Instr(Line,"TV") then response.Write Line & vbcrlf
	Loop

	Set TextStream = nothing
End If
Set FSO = nothing
%>
```

 har ej testat.

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

## #5 — oskars, 2006-11-28T11:49Z

Tack tack! 

Får följande fel:

Feltyp:
Körningsfel i Microsoft VBScript (0x800A0005)
Ogiltigt proceduranrop eller argument.
/textfil/default.asp, line 28

På denna koden:

Rad28 = Set TextStream = file.OpenAsTextStream(ForReading, TristateUseDefault)

```
<form name="do" method="post" action="default.asp?do=CreateThatCoolTextFile">
Välj textsträng: <input name="textStr" type="text" /><br />
<input type="submit" value="HIT IT!" />
</form>

<%
If Request.Querystring("do") = "CreateThatCoolTextFile" Then

	Const Filename = "/testfilen.txt" ' File to read
	Const ForReading = 1, ForWriting = 2, ForAppending = 3
	Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
	
	' Create a filesystem object
	Dim FSO
	set FSO = server.createObject("Scripting.FileSystemObject")
	Dim Filepath
	Filepath = Server.MapPath(Filename)
	
	if FSO.FileExists(Filepath) Then
		Dim file	
		set file = FSO.GetFile(Filepath)
	
		Dim FileSize
		FileSize = file.Size
		
		' Open the file
		Dim TextStream
		Set TextStream = file.OpenAsTextStream(ForReading, TristateUseDefault)
	
		' Read the file line by line
		Do While Not TextStream.AtEndOfStream
		  dim Line
		  Line = TextStream.readline
	          if not Instr(Line,"CHRYSLER") then response.Write Line & vbcrlf
		Loop
	
		Set TextStream = nothing
	End If
	Set FSO = nothing

End If
%>
```

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

## #6 — voigtann1, 2006-11-28T11:53Z

kolla vad filepath är... ser om filen finns där filepath är :D

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

## #7 — oskars, 2006-11-28T11:57Z

Filen finns där :)

JO!

Nu går det igenom utan felmeddelande, men dom raderna som innehåller CHRYSLER försvinner inte ... hhmmm... ska spana lite..

nått tips?

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

## #8 — voigtann1, 2006-11-28T12:02Z

är det med Upper case CHRYSLER? eller Chrysler?

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

## #9 — oskars, 2006-11-28T12:03Z

up-up-up-up-uppercase!

precis så som jag skrivit :)

och filen är Ej skrivskyddad :)

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

## #10 — voigtann1, 2006-11-28T12:07Z

bara prova:

```
	          if not Instr(Line,"CHRYSLER") then response.Write Line & vbcrlf else response.write ">>" & Line & vbcrlf
```

Och se vad som händer :)

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

## #11 — oskars, 2006-11-28T12:12Z

fixade till lite saker, så nu printar scriptet ut alla raderna från textfilen... 

men den rensar inte... och det blir inga "\>\>"-rader med din nya kod :/

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

## #12 — voigtann1, 2006-11-28T12:14Z

ge den kod du använder just nu av..

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

## #13 — oskars, 2006-11-28T12:14Z

Så här ser det ut nu :

```
<form name="do" method="post" action="tabort.asp?do=CreateThatCoolTextFile">
Välj textsträng: <input name="textStr" type="text" /><br />
<input type="submit" value="HIT IT!" />
</form>
<p style="font-size:10px;">
<%
	If Request.Querystring("do") = "CreateThatCoolTextFile" AND NOT Request.Form("textStr") = "" Then

		Const Filename = "testfilen.txt" ' File to read
		Const ForReading = 1, ForWriting = 2, ForAppending = 3
		Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

		' Create a filesystem object
		Dim FSO
		set FSO = Server.CreateObject("Scripting.FileSystemObject")
		Dim Filepath
		Filepath = Server.MapPath(Filename)
		Response.Write FilePath + "<br />"
		if FSO.FileExists(Filepath) Then
			Dim file
			set file = FSO.GetFile(Filepath)

			Dim FileSize
			FileSize = file.Size

			' Open the file
			Dim TextStream
			Set TextStream = file.OpenAsTextStream(ForReading, TristateUseDefault)

			' Read the file line by line
			Do While Not TextStream.AtEndOfStream
			  dim Line
			  Line = TextStream.ReadLine
		        If not Instr(Line,""&Request.Form("textStr")&"") then response.Write Line & vbcrlf else response.write ">>" & Line & vbcrlf
		        Response.Write("<br />")
			Loop

			Set TextStream = nothing
		End If
		Set FSO = nothing
		
		Response.Write("Textfilen är rensad på rader som innehåller """&Request.Form("textStr")&""".")

	Else

		Response.Write("Knas!")

	End If
%>
</p>
```

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

## #14 — oskars, 2006-11-28T12:22Z

Vill ju att raderna ska tas bort från textfilen.. inte att dom ska skrivas ut på sidan, förövrigt :)

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

## #15 — voigtann1, 2006-11-28T12:26Z

du måste ju få igång den innan du kan hoppa till nästa steg :P

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

## #16 — voigtann1, 2006-11-28T12:34Z

```
<%

set objfso = server.createobject("scripting.filesystemobject")
set objFile = objFso.getFile(server.mappath("testfilen.txt"))
Set textStream = objfso.OpenTextFile(server.mappath("testfilen.txt"),1, False)
arrRows = split(textStream.ReadAll , vbCrLf) 
textStream.close 

function getText(arrRows,ord)
  for i = lbound(arrRows) to ubound(arrRows)
    if instr(ArrRows(i),ord) then str = str & "" else str = str & ArrRows(i)
    if cint(ubound(arrRows)-1) <> cint(i) then str = str & vbCrLf
  next 
  getText = trim(str)
end function

'Skriv ut text filen men inte där raden med pelle
response.write getText(arrRows,"pelle")

%>
```

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

## #17 — oskars, 2006-11-28T12:52Z

Det är grymt nu!

Nu skriver den bara ut dom raderna som inte innehåller ordet som man specificerat.

Kollar man källkoden för sidan då så är de rader som är "borttagna" bara blanka rader.. kan man få dom blanka raderna att försvinna? Och hur gör man för att få detta direkt till textfilen?

  :stud  Tack för att du tar dig tid!

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

## #18 — voigtann1, 2006-11-28T12:56Z

```
    if instr(ArrRows(i),ord) then str = str & "" else str = str & ArrRows(i)
    if cint(ubound(arrRows)-1) <> cint(i) AND NOT instr(ArrRows(i),ord) then str = str & vbCrLf
```

kanske?

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

## #19 — oskars, 2006-11-28T13:03Z

Njäeh, det funkade inte :/

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

## #20 — voigtann1, 2006-11-28T13:07Z

```
    if instr(ArrRows(i),ord) then str = str & "" else str = str & ArrRows(i) & vbCrLf
```

 fungera nog :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/154289-hantera-textfil-ta-bort-instr-rad-ord  
Nästa sida: https://www.webforum.nu/amne/asp/154289-hantera-textfil-ta-bort-instr-rad-ord/page2.md
