Страница: 1 |
Страница: 1 |
Вопрос: сохранить как?
Добавлено: 02.06.06 03:29
Автор вопроса: Tony Corleone | Web-сайт:
Как вывести форума подобную "Сохранить как...", которая есть во многих приложениях? Для примера нужно сохранить осдержимое Текст1 в файл *.ххх.
Зарание спасибо за помощь.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #1
Добавлено: 02.06.06 09:23
С помощью этого компонента можно вызывать окно открытия файлов, сохранения, выбора цвета... Для начала подключи его(если забыл то посмотри в шаге 34). На форму кинь текстовое поле, 3 кнопки, и CommonDialog(назови его CD1). Начнем мы с открытия файлов.
1. Открытие файлов:
Сделай свойство Caption у Первой кнопки = "Открыть". Вот сейчас мы программу сделаем, у которой выбранный файл в Окне Открытия файлов записывался в текстовое поле. Код:
Private Sub Command1_Click()
CD1.ShowOpen ' Вызываем окно открытия файлов
Text1.Text = CD1.FileName ' Свойство FileName нужно для того чтоб узнать какой файл был выбран
End Sub
Свойства:
1. InitDir - это свойство определяет папку, которая будет при открытии Окна выбора файлов первой. Короче сделай свойство InitDir = A:\, и тогда при запуске окна выбора файлов первый будет диск Aможно написать c:\games - тогда первый будет папка Games)
2. DialogTitle - это свойство определяет заголовок окна(например у окна выбора файлов заголовок по умолчанию - "Открыть"
4. FilterName это свойство указывает начальные значения текстового поля(Имя Файла). Например если туды вписать Базик, то при запуске окна в поле Имя файла будет вписанно Базик
5. Filter - Это что - то типа фильтра, т.е. здесь можно указать чтоб можно было выбирать только текстовые файлы, или exeшники... Например можно написать так:
Private Sub Command1_Click()
CD1.ShowOpen ' Вызываем окно открытия файлов
End Sub
Private Sub Form_Load()
CD1.Filter = "Ворд|*.doc|Текстовые|*.txt|Приложения|*.exe|Все файла|*.*|" ' Даем право выбора юзеру
End Sub
Работа с файлами. Введение:
В этом разделе я расскажу о файлах, верней не о них, а как с ними работать, т.е. открывать, изменять, кидать...
Для открытия файлов(НЕ ЗАПУСКА!!!) есть функция open:
open "имя файла" for режим as номер канала
Функции для работы с файлами
Close Номер св. канала
Имя файла - полный путь к файлу(если файл находится в той же папке где и сама программа, то можно написать просто имя файла(например, 1.txt))
Режим - режим открытия файла, есть около 7 режимов, но в этом шаге мы рассмотрим только 3 основных:
1. Input - служит для чтения данных из файла, если файла не существует, то происходит ошибка
2. Append - файл открывается(НЕ ДЛЯ ЧТЕНИЯ!!!) для записи, если файла не существует, то он создается. Если в файле уже есть какие либо данные, то запись идет в конец этих данных.
3. Output - файл открывается(НЕ ДЛЯ ЧТЕНИЯ!!!) для записи, если файла не существует, то он создается. Все данные которые были в файле стираются, и запись идет в "чистый файл"
Номер канала - это номер канала открываемого файла, если номер открываемого файла уже открыт, то происходит ошибка
Запись:
Для записи текста служит функция Print(и Write)
Open "c:\1.txt" For Append As #1 'Открываем файл для добавления записи, с номером канала 1
Print #1, "Твой ТЕКСТ"' Записываем в файл 1.txt текст
Close #1 'Закрываем файл
Есть еще функция для определения свободного канала - FreeFile. Например:
f = FreeFile 'Возвращает номер свободного канала
Open "c:\1.txt" For Append As f 'Открываем файл для добавления записи
Print #f, "Твой ТЕКСТ"'Записываем в файл 1.txt текст
Close #f 'Закрываем файл
Чтение:
Считать данные из файла сложнее чем записать. Есть два способа чтения данных из файла. Первый:
f = FreeFile
Open "c:\1.txt" For Input As f' Открываем файл 1.txt для чтения
Text1.Text = Input(LOF(f), f) 'Считываем текст из открытого файла в текстовое поле(Оператор LOF(Len Of File) определяет длину файла)
Close f
Второй:
Dim txt as String
Open "c:\1.txt" For Input As #1' Открываем файл 1.txt для чтения
Do While Not EOF(1) ' Функция EOF(End Of File) проверяет, достигнут ли конец файла
Line Input #1, txt ' Читаем строку данных
Text1.Text = txt
Loop
Close #1
Взято из учебника Padre
Номер ответа: 2
Автор ответа:
Tony Corleone
ICQ: 312123
Вопросов: 11
Ответов: 19
Web-сайт:
Профиль | | #2
Добавлено: 02.06.06 15:05
хм. а как записать какие нибудь данные в файл?
CommonDialog1.ShowSave
а далее?
Номер ответа: 3
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #3
Добавлено: 02.06.06 15:16
Open "c:\1.txt" For Append As #1 'Открываем файл для добавления записи, с номером канала 1
Print #1, "Твой ТЕКСТ"' Записываем в файл 1.txt текст
Close #1 'Закрываем файл
Прочитай все заново и на этот раз повнимательнее Пояснения кода тоже
Номер ответа: 4
Автор ответа:
Tony Corleone
ICQ: 312123
Вопросов: 11
Ответов: 19
Web-сайт:
Профиль | | #4
Добавлено: 02.06.06 15:29
спасиб
Номер ответа: 5
Автор ответа:
Tony Corleone
ICQ: 312123
Вопросов: 11
Ответов: 19
Web-сайт:
Профиль | | #5
Добавлено: 02.06.06 15:33
так правильней. сохраняться будет файл, под "вашим" именем.
Private Sub 2_Click()
CommonDialog1.ShowSave
Dim MyFile
MyFile = FreeFile
Open CommonDialog1.FileName For Output As #MyFile
Print #MyFile, "Text"
Close #MyFile
End Sub
Номер ответа: 6
Автор ответа:
Tony Corleone
ICQ: 312123
Вопросов: 11
Ответов: 19
Web-сайт:
Профиль | | #6
Добавлено: 02.06.06 21:52
а как-нибудь исправить ошибку, которая выскакивает при нажатии кнопки "Отмена" в окне "Сохранить как..." возможно?
Номер ответа: 7
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #7
Добавлено: 03.06.06 08:07
Отловить ее или установить свойство CancelError в False. Правда при этом ты никогда не узнаешь какую кнопку нажал.
Номер ответа: 8
Автор ответа:
Nj
ICQ: 223663115
Вопросов: 21
Ответов: 285
Профиль | | #8
Добавлено: 03.06.06 20:41
Механизм обработки ошибок знаешь?
Попробуй
on error goto CathErr:
...
твой код
...
exit sub
CathErr:
А здесь обработчик ошибки -
т.е. если будет ошибка то выполняется этот код.
Кстати, кто-нибудь знает другой способ обработки ошибок на ВБ6 кроме on error {resume [next]|goto label}?
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 04.06.06 01:33
CancelError = False
On error resume next