РефератыИнформатикаОбОбъект Recordset и текстовые файлы ASP

Объект Recordset и текстовые файлы ASP

Объект Recordset и текстовые файлы (ASP)


Христофоров Юрий


В этой статье речь пойдет о построении объекта Recordset на основе информации из текстового файла. Сталкиваясь с задачей представления данных из текстовых файлов (с поддержкой сортировок по нескольким полям, разбиением набора данных по страницам) возникает вопрос: как решить данную задачу наиболее просто? Первый вариант решения - использование массивов. Второй вариант, о котором и пойдет речь, - создание объекта Recordset и дальнейшая работа с ним.


Постановка задачи:


Есть текстовый файл (country.txt), который представляет собой набор записей вида: Страна,Столица. Необходимо вывести постранично (5 записей на страницу) в виде HTML таблицы содержимое этого файла с сортировкой по полю Страна.


ASP-скрипт, который осуществляет этот вывод:




<% option explicit


Response.Expires = 0


Dim fs, fd, buffer, rs, arrTxT, Page, i, nPages


'создаемобъект Recordset


Set rs = Server.CreateObject("ADODB.Recordset")


rs.Fields.Append "Страна", 200, 255


rs.Fields.Append "Столица", 200, 255


rs.Open


Set fs = Server.CreateObject("Scripting.FileSystemObject")


Set fd = fs.OpenTextFile(Server.MapPath("country.txt"), 1)


'построчно считываем содержимое файла


Do While (Not fd.AtEndOfStream)


'добавляем строку


rs.AddNew


buffer = fd.ReadLine


arrTxT = Split(CStr(buffer), ",")


rs("Страна") = arrTxT(0)


rs("Столица") = arrTxT(1)


rs.Update


Loop


Set fs = Nothing


'сортируем по полю Страна


rs.Sort="Страна"


'по 5 записей на страницу


rs.PageSize = 5


if Request.QueryString("Page") <> "" then


Page = CInt(Request.QueryString("Page"))


else


Page=1


end if


If rs.PageCount > 0 Then


rs.AbsolutePage = Page


Else


Page = 0


End If


Response.Write "<table bor

der = 1 width=200 bordercolor='#000000'>"


Response.Write "<tr><td align=center bgcolor='#EEEEEE'><b>Страна</b></td>"


Response.Write "<td align=center bgcolor='#EEEEEE'><b>Столица</b></td></tr>"


i = 0


'собственновывод


Do While (Not rs.EOF) And (i < rs.PageSize)


Response.Write "<tr>"


Response.Write "<td align=center>" & rs("Страна") & "</td>"


Response.Write "<td align=center>" & rs("Столица") & "</td>"


Response.Write "</tr>"


rs.MoveNext


i = i + 1


Loop


nPages = rs.PageCount


'панель навигации по страницам


If nPages > 1 then


Response.Write "<tr><td colspan=2 align=center>"


If Page <> 1 then


Response.Write "<a href=""" & Request("script_name") & "?Page=" & Page - 1 & """>&lt;</a>"


Else


Response.Write "&lt;"


End If


For i = 1 to nPages


If i = 1 then


Response.Write " | "


End If


If i = Page then


Response.Write i & " | "


Else


Response.Write "<a href=""" & Request("script_name") & "?Page=" & i & """>" & i & "</a> | "


End If


Next


If Page <> nPages then


Response.Write "<a href=""" & Request("script_name") & "?Page=" & Page + 1 & """>&gt;</a>"


Else


Response.Write "&gt;"


End If


Response.Write "</td></tr>"


End If


Response.Write "</table>"


rs.Close


Set rs = Nothing


%>



Пример работы скрипта:


Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Объект Recordset и текстовые файлы ASP

Слов:416
Символов:4912
Размер:9.59 Кб.