webForumDet fria alternativet

Updatera en text fil

ASPur ASP

5 svar · 242 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1

Jag har en ASP fil med värden såsom:

[settings]
language = "Swedish"
bgcolor    = "#FFFFFF"
....

att få ut informationen är inte svårt... hur gör jag om jag vill "uppdatera" värderna?
vi säger att alla <input> har samma namn som strängarna... ex:

<input type='text' name='[b]language[/b]' value='<%=[b]language[/b]%>'>

filen med värderna heter config.asp

Medlem sedan juni 20019 519 inlägg
#2

Måste man köra en "readline" sak eller addline för att detta ska fungera i helhet?

Medlem sedan nov. 20017 144 inlägg
#3

Det är klart att det går, men att lita på att det läses och skrives på rätt rad skulle inte jag göra... :)

Medlem sedan juni 20019 519 inlägg
#4

Hur tycker du att jag ska göra? Köra allt i databasen?

Medlem sedan juni 200032 967 inlägg
#5

Antingen i db eller i en XML-fil.

Medlem sedan jan. 20032 285 inlägg
#6

Nu såg jag att du redan har fått tips på smartare lösning, men det är väl onödigt att bara "slänga" koden när man väl har skrivit den? ;)

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("config.asp"))
arrText = Split(objTS.ReadAll, vbCrLf)
objTS.Close : Set objTS = Nothing

For i = 0 To UBound(arrText)
  If arrText(i) = "[settings]" Then intStart = i + 1

  If Left(arrText(i), 1) = "[" AND intStart < (i + 1) Then
    intStop = i - 1
    Exit For
  End If
Next

If intStop <= 0 Then intStop = UBound(arrText)

For i = intStart To intStop
  arrTemp = Split(arrText(i), "=")
  strAttr = Trim(arrTemp(0))
  strVal = Trim(arrTemp(1))

  If Trim(Request.Form(strAttr)) <> "" Then strVal = """" & Trim(Request.Form(strAttr)) & """"

  strSettings = strSettings & strAttr & " = " & strVal & vbCrLf
Next

For i = 0 To intStart - 1
  strSettings = arrText(i) & vbCrLf & strSettings
Next

If intStop < UBound(arrText) Then
  For i = intStop + 1 To UBound(arrText)
    strSettings = strSettings & arrText(i) & vbCrLf
  Next
End If

Set objTS = objFSO.OpenTextFile(Server.MapPath("config.asp"), 2)
objTS.Write(strSettings)
objTS.Close : Set objTS = Nothing
Set objFSO = Nothing
135 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)