Страница 1 из 7

Visual Basic в вопросах и ответах

Добавлено: Вс окт 14, 2007 19:31:08
P-cad
Я занимабсь программированием на Visual Basic 6.0.
Подскажите, пожалуйста:
1. Почему он не хочет удалять файлы с атрибутом "для чтения" и файлы с названием, начинающимися с пробела?
вот код:
_____
Private Sub OPN click()
Dim FN as string
CD.ShowOpen
FN = CD.FileName
Kill (FN)
End Sub
_____
где OPN - кнопка, при нажатии которой появляется объект типа CommonDialog(имя - CD), а после открытия файл (FN - имя файла) удаляется.
2.Есть объект типа OLE с именем OLE1 типа "файл презентации". Есть кнопка (OPN), при нажатии которой программа выдаёт объект CommonDialog (CD) с фильтром файлов формата PPT(файлы презентаций). после открытия презентация должна показываться в OLE1. Но она не хочет. Где ошибка:
_____
Private Sub OPN click()
CD.ShowOpen
OLE1.SourceDoc = CD.FileName
End Sub

Re: Где ошибка

Добавлено: Вс окт 14, 2007 22:03:46
\\Sergey//
P-cad писал(а):1. Почему он не хочет удалять файлы с названием, начинающимися с пробела?
вот код:
_____
Private Sub OPN click()
Dim FN as string
CD.ShowOpen
FN = CD.FileName
Kill (FN)
End Sub
_____

Все прекрасно удаляется вот код:

Код: Выделить всё

Private Sub OPN_Click()
Dim FN As String
CD.ShowOpen
FN = CD.FileName
Kill FN
End Sub

Добавлено: Пн окт 15, 2007 18:55:35
P-cad
Странно...
а насчет файлов для чтения? Пробовал?

Добавлено: Пн окт 15, 2007 18:59:39
\\Sergey//
Да, пробовал. Они удаляться не хотят. Собственно, на то они и файлы для чтения. :)

Добавлено: Пт окт 26, 2007 17:58:18
P-cad
А вот и идея!
----------
SetAttr FN, VbNormal
----------
Автоматически устанавливает атрибуты файла на "обычный" перед удалением!

Добавлено: Пт окт 26, 2007 18:18:29
\\Sergey//
Хорошая идея!
Но можно и WIN32API использовать.

Добавлено: Пт окт 26, 2007 18:37:27
P-cad
Тоже мысль:-)

Добавлено: Пт ноя 02, 2007 19:43:20
P-cad
Вот еще проблем:
----------
open (c:/"text.txt") for random , #1
line input #1, a
----------
почему он говорит "неправильный режим файла"?

Добавлено: Сб ноя 03, 2007 12:41:32
\\Sergey//
Это же произвольный доступ. В нем считывание информации производится командой Get, а не Line Input.
Короче, вот правильный код:
Dim Temp As Variant
Open "C:\text.txt" For Random As #1
Get #1, 1, Temp
Close #1
MsgBox Temp

Только в файле должен находится какой либо текст.

Добавлено: Сб ноя 03, 2007 18:14:06
P-cad
а цифирка 1 между запятыми - номер считываемой строки?

Добавлено: Сб ноя 03, 2007 21:40:02
\\Sergey//
Порядковый номер байта.

Добавлено: Вс ноя 04, 2007 19:05:31
P-cad
А что он говорит "неправильная длина записи"?

Добавлено: Вс ноя 04, 2007 20:29:07
\\Sergey//
Ты мой код использовал?
Если да, то в этом коде во второй строчке после #1 с помощью ключевого слова Len укажи нужную длину строки.
Например так:

Код: Выделить всё

Open "C:\text.txt" For Random As #1 Len=10

Вообще, лучше сначала с помощью Put запиши информацию в файл, открой и посмотри его, а потом с помощью Get считай. Так наглядней будет.

Добавлено: Вс ноя 04, 2007 21:02:34
P-cad
len - это длина считываемого текста?

Добавлено: Вс ноя 04, 2007 21:58:29
\\Sergey//
Да. Если мы считываем, то при Len=10, считается 10 байт. Если записываем, то при Len=10 записываться будет только та информация, вес которой 10 байт или меньше. А если эта инфа весит более 10 Байт, то произойдет ошибка.

Добавлено: Вс ноя 04, 2007 22:16:55
P-cad
А если мне нужно считать конкретно какую-либо строчку?

Добавлено: Вс ноя 04, 2007 22:28:03
\\Sergey//
Строчки создаются во время записи комбинированием порядкового номера байта и параметра Len. При считывании ты используешь и номер байта и длину считываемого текста. То-есть опять-таки ты комбинируешь номер байта и параметр Len. Таким образом и считываешь конкретную строчку.

Добавлено: Вт ноя 06, 2007 22:11:32
P-cad
Сорри, но как я говорил, тоже можно сделать.
Ошибка у меня была в том, что в режиме надо было писать input вместо rаndоm.

Добавлено: Ср ноя 07, 2007 07:24:58
\\Sergey//
Чего, чего? Input задает последовательный доступ для чтении файла.
Random задает произвольный доступ. Они не взаимозаменяемы.
Или я тебя неправильно понял?

Добавлено: Ср ноя 07, 2007 22:10:31
P-cad
Не знаю. Может у меня в компе чо глючит.
--
open ("c:/test.txt") for input as #1
dim a as string
input #1, a
msgbox (a)
--
а так - ругается:
--
open ("c:/test.txt") for random as #1
dim a as string
input #1, a
msgbox (a)
--