У меня есть класс, который создает файл сеанса на диске с написанными внутри разделенных двоеточиями полями.Чтение и запись массивов из файла
<%
Class MySession
Private session_key, stream
Private Sub Class_Initialize
set stream = createobject("adodb.stream")
session_key = request.cookies("sessionkey")
if len(session_key) = 0 then
CreateSession()
end if
End Sub
' read from session file
Public Property Get val()
on error resume next
val = ""
stream.open
stream.loadfromfile "d:\" & session_key
val = stream.readtext
stream.close
End Property
' write session to file
Public Property Let val(userval)
on error resume next
stream.open
stream.writetext mycstr(userval)
for err11 = 0 to 50
stream.savetofile "d:\" & session_key, 2
if Err.Number = 0 then exit for
Err.Clear
next
stream.close
End Property
End Class
%>
Теперь, чтобы заполнить файл сеанса я
Set SessionID = new MySession
FillArr = FillArr & Request.cookies("sessionkey") & ":" & now()+1
For Row = 0 to Ubound(arrRst,1)
FillArr = FillArr & ":" & arrRst(Row, 0)
Next
SessionID.val() = FillArr
Чтобы прочитать все данные в файле сеанса я использую
AllData = sessionID.val()
Теперь мне нужно, чтобы добавить дополнительное поле в этот файл. Задача:
- Как проверить, существует ли это поле в файле?
- Как обновить только это поле в файле?
Так что я думаю, что есть хорошие возможности использовать массивы, которые я могу назвать им именами.
В файле сеанса мне нужно записываемые данные, как:
{"sessionkey":"3yut267d273";"session_exp":"51453463";"username":"Alex"}
Я думаю, что это должно быть что-то вроде этого, чтобы получить необходимые подал из файла:
AllData = sessionID.val("username")
Так помочь мне написать право синтаксис для этого:
- Как написать массив в файл?
- Как вызвать только необходимый элемент массива из файла?
- Как изменить только необходимый (или несколько заданных полей) элемент массива в файле, а если он не существует, то создайте его?