IDK1011 Click to edit Master title style Основы программирования Диалоговые окна

advertisement
IDK1011
Click to edit Master title style
Основы программирования
Диалоговые окна
Чтение файлов и директорий
Диалоговые окна
•
•
•
•
•
Выбор файла (OpenFileDialog)
Сохранение файла (SaveFileDialog)
Выбор шрифта (FontDialog)
Выбор цвета (ColorDialog)
Выбор параметров печати страницы
(PageSetupDialog)
OpenFileDialog.ShowDialog()
OpenFileDialog.FileOk() -- event
OpenFileDialog.FileName()
Работа с файлами
• Поковое чтение - IO.StreamReader
• Потоковая запись – IO.StreamWriter
Dim sr As New
IO.StreamReader(“C:/inputs.txt”)
• Поток (Stream)
• Текущая позиция в потоке
• Конец потока
Режимы чтения / записи
• Буферизованный (Buffered)
 Чтение: данные из потока читаются в
буфер (область памяти). Программа
читает этот буфер и производит
необходимые операции над данными.
 Запись: программа записывает данные
в буфер, откуда после они заносятся в
поток.
• Прямой (Direct)
 Чтение: чтение данных напрямую из
потока (например, чтение строки)
 Запись: запись данных напрямую в
поток
Режимы чтения / записи
• Синхронный (synchronous)
 Каждая последующая операция
чтения/записи осуществляется только
после завершения предыдущей
операции.
• Асинхронный (asynchronous, async)
 Каждая последующая операция
чтения/записи осуществляется в
момент запроса (в момент запуска
соответствующего метода), не
дожидаясь завершения предыдущих
вызовов.
 Часто нужна синхронизация.
Чтение файлов
• Прямой режим чтения:
 Read() – возвращает следующий
символ из потока и передвигает
указатель текущей позиции в потоке на
следующий
 ReadAsync() – то же самое что и
Read(), только в асинхронном режиме.
• Буферизованный режим чтения:
 ReadBlock() – читает заданное число
символов из потока и записывает их в
буфер по указанному смещению.
 ReadBlockAsync() – то же что и
ReadBlock(), только в асинхронном
режиме.
Чтение файлов
• Проверка конца потока
 Peek() – возвращает следующий символ
в потоке но не перемещает указатель
текущей позиции. Если следующего
символа нет (достигли конца потока) –
то возвращает -1.
If sr.Peek() = -1 Then
‘ достигли конца потока
End If
• Признак того что мы достигли конца
файла!
Чтение файлов
• Чтение строки из потока
 ReadLine() – Читает символы один за
другим из потока пока не встретит
символ конца строки.
• Что такое признак конца строки?





CR (Сarrige Return)
LF (Line Feed)
CRLF – последовательность байт
0x0D 0x0A
Не \0 – это признак конца строки в
памяти.
• Возвращает строку String
Чтение файла построчно
Dim filePath As String
Dim sr As IO.StreamReader
Dim str As String
filePath = “C:\Users\user\Desktop\file.txt”
sr = New IO.StreamReader(filePath)
While sr.Peek() <> -1
str = sr.ReadLine();
End While
Label1.Text = str
Чтение директорий
• Класс IO.Directory
 EnumerateDirectories(path) – коллекция
всех директорий в заданной
директории
 EnumerateFiles(path) – коллекция всех
файлов в заданной директории
 EnumerateFileSystemEntries(path) –
коллекция всех файлов и директорий в
заданной директории
 Exists(path) – возвращает true, если
файл или дректория указанная в
параметре path существует в файловой
системе
Чтение директорий
 GetDirectories(path) – массив всех
директорий в заданной директории
 GetFiles(path) – массив всех файлов в
заданной директории
 GetFileSystemEntries(path) – массив
всех файлов и директорий в заданной
директории
 CreateDirectory(path) – создает все
дерево каталогов в указанном пути
 Delete(path) – удаляет пустую
директорию указанную в path
 Move(source, destination) – перемещает
файл или директорию вместе с ее
содержимым из source в destination
Чтение директорий -- пример
Dim files As
Collections.Generic.IEnumerable(Of String)
Dim path As String
path = “C:\users\user\Desktop”
files = IO.Directory.EnumerateFiles(path)
For each file As String In files
ListBox1.items.Add()
Next
Чтение директорий -- пример
Dim files As
Collections.Generic.IEnumerable(Of String)
Dim path As String
path = “C:\users\user\Desktop”
files = IO.Directory.EnumerateFiles(path)
For each file As String In files
ListBox1.items.Add(file)
Next
???
Повторение пройденного
• Компоненты
 Кнопка (размеры, позиция, надпись,
события)
 Текстовое поле (значение, события)
 Выпадающий список (элементы,
выбранный элемент, события)
 Полоса прокрутки (типы, границы
значений, значения, шаг)
 Таймер (свойства, запуск/остановка,
события)
 Меню (2 типа меню, составление,
обработка событий)
 Список (элементы, добавление,
выбранный элемент)
Повторение пройденного
• Функции и процедуры. Сходства и
различия.
• Передача параметров в функцию ( по
значению, по ссылке, различия )
Какие значения будут у a и b?
Dim a As Integer, b As Integer
Public Sub init()
Dim a As Integer, b As Integer
a = 1 : b = 2 : x(a,b)
MsgBox("a = " & a & " b = " & b)
x(a,b)
MsgBox("a = " & a & " b = " & b)
End Sub
Public Sub x(ByRef a, ByVal b)
a=5:b=5
End Sub
Повторение пройденного
Классы и объекты
Конструктор класса
Методы класса (режимы доступа)
Область видимости переменных.
Переменные класса и переменные
методов
• Переменная объекта
• Создание объекта
•
•
•
•
• Пример (калькулятор)
Download