Христофоров Юрий
В этой статье речь пойдет о построении объекта 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 border = 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 & """><</a>" Else Response.Write "<" 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 & """>></a>" Else Response.Write ">" End If Response.Write "</td></tr>" End If Response.Write "</table>" rs.Close Set rs = Nothing %> |
Пример работы скрипта:
Похожие работы
... /загружать в/из файла. Его можно сохранять/загружать в/из текстовой строки. Он может загружать данные из объекта Record или какого-либо ресурса по URL. Его можно клонировать. Для иллюстрации работы с объектом Stream приведу-таки пример на VB6, который сохраняет изображение в файл без использования инструкции Put: Dim stream As New ADODB.stream 'Тип потока - бинарный stream.Type = ...
... форматами поддерживает OLE DB Persistence Provider. Кроме сохранения, можно также загружать (восстанавливать) объект Recordset из файлов. Сохранение и последующая загрузка рекордсета из файла в формате XML дали возможность использования XML-документов в качестве баз данных. OLE DB Persistence Provider жестко задает формат результирующего XML-документа: для описания структуры и типов узлов всегда ...
... обследования домашних хозяйств. Формирование потребительских корзин начинается с определения набора продуктов питания, продовольственных товаров и услуг, разработанных по соответствующим нормам и нормативам. Финансовая система РФ, гос. Кредит (83). Понятие финансовой системы является развитием более общего понятия - финансы. Если финансы - это экономические отношения по поводу, то финансовая ...
... "> </td></tr><tr><td> </td><td> <INPUT type="submit" value="Вход" ></td></tr> </table> </form> <p> [<ahref= "start.htm">На Loginстраницу</a>] register.asp - страница для занесения новых пользователей в БД <% nm = Request.Form("user") ps = Request.Form("passwd") Set obj = CreateObject("Auth.Security") obj. ...
0 комментариев