Файл в переменную.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
al addin
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.07.2002 (Чт) 11:56

Файл в переменную.

Сообщение al addin » 14.04.2003 (Пн) 9:26

Люди, как открыть файл и положить его в переменную типа Binary?

Всем Гуру заранее спасибо!
alla ambar:)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.04.2003 (Пн) 9:46

Нет такого типа! Binary - этото режим открытия файла. Если нужно стырить файл целиком, то это делается либо так:

Код: Выделить всё
  Dim a() As Byte
  ReDim a(FileLen("MyFile"))
  Open "MyFile" For Binary As #1
  Get #1, , a()
  Close #1


либо так:

Код: Выделить всё
  Dim a As String
  Open "MyFile" For Input As #1
  a = Input(LOF(1), #1)
  Close #1
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

al addin
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.07.2002 (Чт) 11:56

Сообщение al addin » 14.04.2003 (Пн) 9:49

Супер! Спасибо!

А если мне этот файл надо в таблицу на SQL сервере положить?
Можно тип String использовать?
И смогу ли я потом считать это из базы и записать на диск?
alla ambar:)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.04.2003 (Пн) 9:54

Можно тип Стринг использовать. А вот массив байт нельзя. И ограничение на длину строки в БД учитывай. Если файл слишком длинный, поле должно иметь тип МЕМО.
А пишется файл на диск просто (предполагается, что строка MyStr содержит взятый из базы текст файла):
Код: Выделить всё
  Open "MyFile" For Output As #1
  Print #1, MyStr;
  Close #1
Последний раз редактировалось GSerg 14.04.2003 (Пн) 9:57, всего редактировалось 1 раз.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

al addin
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.07.2002 (Чт) 11:56

Сообщение al addin » 14.04.2003 (Пн) 9:56

Спасибо еще раз. Попробую.

Если получится, с меня много пива и сигарет:)
alla ambar:)

al addin
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.07.2002 (Чт) 11:56

Сообщение al addin » 14.04.2003 (Пн) 10:25

Наверное должно быть так:

Код: Выделить всё
Input #1,a


Так работает...
alla ambar:)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.04.2003 (Пн) 10:56

Работает. Но читает только первую строку из файла. Для прочтения всего файла это годится, только если файл состоит из одной строки. А вот
Код: Выделить всё
a = Input(LOF(1), #1)


надёжно тырит весь текст. Я же весь код проверял перед постингом :P
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

al addin
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.07.2002 (Чт) 11:56

Сообщение al addin » 14.04.2003 (Пн) 11:51

Но не все оказалось так просто, как хотелось бы.

Существует OLE контейнер. Там создан или импортирован OLE объект (к примеру файл Excel). Надо его по нажатии кнопочки положить в базу. А затем, по нажатии другой кнопочки, вытащить в этот объект и предъявить людям.

Я решил сохранить объект в файл, затем его считать в переменную и отправить в базу. Проблема в том, что при такой ерунде теряется формат объекта.

Вот такая задача. Извините, если не с того начал:)
alla ambar:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 4

    TopList  
cron