Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Доступ к «плоским» файлам
8 февраля 2009

Многие унаследованные приложения хранят данные в текстовых файлах, поэтому
может потребоваться возможность чтения такого файла в объект DataSet. Общий
подход, описанный в предыдущем разделе, позволяет читать данные из текстовых
файлов и записывать их в объект DataSet во время выполнения. Члены простран-
ства имен System. 10 упрощают доступ к текстовым файлам, а методы класса System.
String позволяют выполнять их синтаксический разбор.
При чтении данных из текстового файла прежде всего необходимо определить
формат данных. Обычно значения, хранящиеся в текстовых файлах, разделены
стандартным символом — разделителем. Это может быть запятая, двоеточие, точка
с запятой или что-то еще. Данные часто хранятся в виде текстовых строк, заканчи-
вающихся символом возврата каретки, обозначающим начало новой строки. Число
полей в каждой строке должно совпадать с числом столбцов таблицы.
Определив формат, в котором хранятся данные, пора приступать к конструиро-
ванию объекта DataSet. Способы программного создания объекта DataSet описаны
в предыдущем разделе. Необходимо создать по одному объекту DataTable на каж-
дую таблицу с данными. Далее к объекту DataTable следует добавить соответствую-
щее число столбцов. Иногда имена столбцов берут из первой строки текстового
файла. Для этого следует прочитать значения из первой строки текстового файла и
программными средствами назначить столбцам соответствующие имена.
Для чтения текстового файл используют класс System.IO.StreamReader, который
способен открыть файл и вернуть содержащиеся в нем символы. Открыв файл, мож-
но воспользоваться классом System.String, чтобы выделить элементы данных и за-
писать их в новые строки.
Естественно, формат хранения данных в «плоских» файлах может отличаться,
поэтому подходящий способ доступа к данным необходимо выбрать в каждом кон-
кретном случае. Следующий пример демонстрирует типичную ситуацию, в которой
требуется получить доступ к данным текстового файла, где записи представлены
строками, а поля разделены запятыми.
Visual Basic .NET
Этот пример предполагает наличие текстового файла myFile.txt.
содержащего неизвестное число строк, каждая из которых состоит
из семи полей.
Создать новый объект DataSet.
Dim myDataSet As New DataSet()
Создать новый объект DataTable и добавить его к набору Tables,
Dim aTable As New DataTableC"Table 1")
myDataSet.Tables.Add("Table 1")
Создать семь столбцов, присвоить им имена и добавить их к Table 1,
Dim Counter As Integer
Dim aColumn As DataColumn
For Counter = 0 to 6
aColurnn = New DataColumn("Column " & Counter.ToStringO)
myDataSet.Tables("Table 1").Columns.Add(aColumn)
Next
Создать объект StreamReader для чтения файла и строковую переменную для
хранения выходных данных объекта StreamReader.
Dim myReader As New System. 10.StreaniReader("C:\myFile.txt")
Dim mystring As String
1 Проверить, достиг ли StreamReader конца потока.
While myReader.Peek <> -1
' Прочитать строку данных из текстового файла,
mystring = myReader.ReadLine
' Вызвать метод String.Split, чтобы создать массив строк, представляющий
все элементы строки, и добавить этот массив к Table 1 как новый объект
' DataRow.
myDataSet.Tables("Table 1").Rows.Add(mystring.Solit(", "c)>
End While
Visual C#
// Этот пример предполагает наличие текстового файла myFile.txt,
// содержащего неизвестное число строк, каждая из которых состоит
If из семи полей.
// Создать новый объект DataSet.
DataSet myDataSet = new DataSetO;
// Создать новый объект DataTable и добавить его к набору Tables.
ir.yDataSet. Tables. Add( "Table 1");
/7 Создать семь столбцов, присвоить им имена и добавить их к Table 1.
DataColumn aColurnn;
-or (int counter - 0; counter < 7; counter ++)
// Создать объект StreamReader для чтения файла и строковую переменную для
// хранения выходных данных объекта StreamReader.
System. 10. StreamReader myReader - new
System. 10. StreamReader("C: \\myFiie.txt");
string myString;
// Проверить, дос~иг ли StreamReader конца потока.
while (myReader, Peekf) != -1)
{
// Считывает строку данных из текстового файла
myString = myReader. Readl_ine( );
If Вызвать метод String. Split, чтобы создать массив строк,
// представляющий все элементы строки, и добавить этот массив к Table 1
/7 как нозэй объект DataRow.
myDataSet. Tables[ "Table 1"].
Rows. Add( myString. Split (char. Pa^sef". ")));

Теги: .NET

Статьи по теме:

Модификаторы доступа к типам
Применение отладочных инструментов
Интерфейсы CTS
Работа с элементами управления
Структуры CTS
Применение типов .NET Framework в приложениях
Применение GDI+
Обработка и генерация исключений
Создание обработчиков событий элементов управления
Принципы дизайна интерфейса
Редактор реестра
Окна Locals, Autos и Watch
Наборы
Сокрытие членов базового класса в Visual C#
Достоинства сертификации Microsoft
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Доступ к «плоским» файлам. Регион сайта: Москва и Санкт-Петербург