Jag har den här kod snutten som jag tar ut selekterad info ur ett htm sida Utan att ha den blekaste aning om vad det är du ska göra så låter det ju inte omöjligt att det skulle kunna vara enklare att lösa det med regular expressions. (för info om syntax kika på www.regexlib.com, för info om tillämpning fråga google ;-)) det problemet jag har kanske blir lite klarare om du får en större kod att titta på Så här löste jag mitt problem Jag har problem med InStr
start_pos = InStr(sTxt, "<body>") + 6
end_pos = InStr(sTxt, "</body>")
Sen så redigerar jag det och spar ner till htm filen med den här koden
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.CreateTextFile(Server.MapPath(Session("path")))
f.write(Request.Form("Message"))
f.close
set f=nothing
set fs=nothing
sen så vill jag använda instr för att det som ska skrivas till bara blir mellan dom taggarna det är det jag har problem med.
Vore jätte tacksam om det är någon som vet
MVH AndréasSv: Jag har problem med InStr
Om du bara vill ha in text mellan <body> och </body> så borde det ju ananrs funka med något istil med, du kanske måste plusa på lite eller dra ifrån lite på start och end pos men det lär ju märkas ;)
s_nyText = Left(sTxt, start_pos)
s_nyText = s_nyText + s_forandring
s_nyText = Right(sTxt, (Len(sTxt)-end_pos))
Som sagt, har inte riktigt grepp om vad du vill lösa men något av dessa alternativ borde ju funka...
//KalleSv: Jag har problem med InStr
Men det jag vill göra är att . Jag hämtar info från en html fil eller någon annan ex. ASP fil men om jag ska lyckas med det så får jag ju bara hämta den information som ska redigeras annars så skriver min editor över allt och lämnar bara den ny redigerade texten kvar i filen så att förhindra det så använder jag InStr för att kunna hämta upp den info jag ska redigera mellan dom gällande taggarna. Och det gör jag med den här koden.
hämtar upp text i från filen
ElseIf Request.Querystring("type")="file" then
Dim sTxt, fs, f
sFile = Server.MapPath(Request.Querystring("path"))
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile(sFile, 1)
sTxt = ""
do while not f.AtEndOfStream
sTxt = sTxt & f.ReadLine
loop
start_pos = InStr(sTxt, "<body>") + 6
end_pos = InStr(sTxt, "</body>")
sTxt = Mid(sTxt, start_pos, end_pos-start_pos)
f.Close
Set f=Nothing
Set fs=Nothing
Session("message") = sTxt
Session("action")="../admin.asp?alt=save_data&type=file&path=" & Session("path")
End If 'type
Sen så ska jag spara ner den och det gör jag så här
ElseIf Request.Querystring("type")="file" then
response.write("hej3")
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.CreateTextFile(Server.MapPath(Session("path")))
f.write(Request.Form("Message"))
'start_pos = InStr(Message, "<body>") + 6 (det är här jag har problem )
'end_pos = InStr(Message, "</body>") (det här är felet ligger)
f.close
set f=nothing
set fs=nothing
End If 'type
hoppas att det här sprider lite ljus över det hela
MVH AndréasSv: Jag har problem med InStr
Inläsning av fil
Dim sTxt, fs, f
sFile = Server.MapPath(Request.Querystring("path"))
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile(sFile, 1)
sTxt = ""
do while not f.AtEndOfStream
sTxt = sTxt & f.ReadLine
loop
start_pos = InStr(sTxt, "<body>")
end_pos = InStr(sTxt, "</body>")
Session("start") = Left(sTxt, start_pos + 5)
Session("message") = Mid(sTxt, start_pos + 6, end_pos - start_pos - 6)
Session("end") = Mid(sTxt, end_pos)
f.Close
Set f=Nothing
Set fs=Nothing
Till baka sparning av samma fil
ElseIf Request.Querystring("type")="file" then
sTxt = Session("start") & Request.Form("Message") & Session("end")
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.CreateTextFile(Server.MapPath(Session("path")))
f.write(sTxt)
f.close
set f=nothing
set fs=nothing
End If 'type