сохранение изображений на диск

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: сохранение изображений на диск

Сообщение FireFenix » 13.08.2012 (Пн) 20:31

Invader писал(а):
edyapd писал(а):С одной стороны мне как новичку интересно порешать всякие задачки:

спасио за пример но после выдачи сообщения в MsgBox что удалёный сервер не отвечает, жму ок и вылетает прога с ошибкой в строке
Код: Выделить всё
Dim FileData As Byte() = WC.DownloadData(Address)

Значение не может быть неопределенным.
Имя параметра: address
перед строками MsgBox
вставил строчку exit try проблема осталась

Изображение
Начните заново изучать язык с учебника по .NET ибо уже все вопросы перерастают в неумение пользоваться средой или языком
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: сохранение изображений на диск

Сообщение Invader » 13.08.2012 (Пн) 23:20

edyapd писал(а):На форме Бутон, Текстбокс, Лебл
Я не проверяю чего он там грузит, но факт что грузит или выводит сообщение об отсутствие адреса.
Код: Выделить всё
Imports System.Web
Imports System.Net
Public Class Form1

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim Address As String = TextBox1.Text '"http://tonkosti.ru/images/9/95/%254D0%25A5%25D0%25BE%25D0%25BB%25D0%25BB_Aladdin_Beach.jpg"
            Address = HttpUtility.UrlDecode(Address)
            Address = HttpUtility.UrlDecode(Address)
            Using WC As New Net.WebClient
                WC.Headers(Net.HttpRequestHeader.Cookie) = "nm=val"
                Dim FileData As Byte() = WC.DownloadData(Address)
                'Здесь запись на диск
                '=========================
                ' IO.File.WriteAllBytes("c:\100\542\88171.jpg", FileData)
                '=========================
                Label1.Text = "Данные сохранены"
            End Using
        Catch ex As WebException
            If ex.Status = WebExceptionStatus.ProtocolError Then
                If CType(ex.Response, HttpWebResponse).StatusCode = 404 Then
                    Label1.Text = "Адреса не существует"
                End If
            End If
        End Try
    End Sub
End Class

я благодарю за ответ спасибо всем но, во первых не составит ли вам труда передать исходник у меня проблема с инициализацией HttpUtility, это раз, второе в моем плохом скажем коде, есть передача в цикле через функцию и может она меня подводит....
пока стыдно полный код разместить, но извиняюсь за ранее если ночью не решу вопрос прошу не осуждать за код, это не шаблон... это для другой задачи, но уверен что в финале тема будет полезна
умён и жаден,
характер отсуствует

edyapd
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 03.10.2011 (Пн) 19:54

Re: сохранение изображений на диск

Сообщение edyapd » 14.08.2012 (Вт) 5:45

Начните заново изучать язык с учебника по .NET ибо уже все вопросы перерастают в неумение пользоваться средой или языком[/quote]
Учебник хорош, только когда есть учитель. Сколько их не читал, знаний не прибавилось. Все свои задачи решал поиском подобного в MSDN и переделыванием под себя. VB изучаю чисто из интереса.
Если есть ошибки, ткните, и я их постараюсь не повторять.

edyapd
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 03.10.2011 (Пн) 19:54

Re: сохранение изображений на диск

Сообщение edyapd » 14.08.2012 (Вт) 6:12

Invader писал(а): не составит ли вам труда передать исходник у меня проблема с инициализацией HttpUtility,

Я не сохраняю таких исходников. Половину кода взял с форума, половину из MSDN. Вы спрашивали как обойти 404 ошибку, только это и показывал.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 14.08.2012 (Вт) 10:46

edyapd писал(а):WC.Headers(Net.HttpRequestHeader.Cookie) = "nm=val"

Это зачем?

edyapd писал(а):Сколько их не читал, знаний не прибавилось.

Прибавляются знания в плане того, что вообще возможно. А когда понадобится, можно легко найти то, что нужно.

edyapd писал(а):Все свои задачи решал поиском подобного в MSDN и переделыванием под себя.

Так он даже поиском не пользуется. Даже совсем элементарных вещей типа блоков Try-Catch...

edyapd писал(а):Я не сохраняю таких исходников.

Надо их сразу выкладывать, вместе с exe'шником.

edyapd
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 03.10.2011 (Пн) 19:54

Re: сохранение изображений на диск

Сообщение edyapd » 14.08.2012 (Вт) 10:58

Qwertiy писал(а):
edyapd писал(а):WC.Headers(Net.HttpRequestHeader.Cookie) = "nm=val"

Это зачем?

Я не вникал в код, просто скопировал с этого топика из того, что было выложено.
Задача стояла показать как отловить 404 ошибку.
Qwertiy писал(а):
edyapd писал(а):Сколько их не читал, знаний не прибавилось.

Прибавляются знания в плане того, что вообще возможно. А когда понадобится, можно легко найти то, что нужно.

Значит мне не попадались хорошие учебники. Такое ощущение, что они написаны для тех кто уже в совершенстве владеет VB.
Qwertiy писал(а):Надо их сразу выкладывать, вместе с exe'шником.
Буду иметь ввиду.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re:

Сообщение Invader » 23.08.2012 (Чт) 3:52

Qwertiy писал(а):
Invader писал(а):то есть синхронная, если я подставлю вместо адреса в строчку кода

Синхронная операция - та, которая выполняется в том же потоке. Асинхронная - которая выполняется в другом потоке, т. е. паралельно.
Я не пользовался классом Net.WebClient, но судя по названию метода и возвращаемому типу, он является синхронным, что означает, что сохранение в файл даже не начнётся до завершения его скачивания.

вот и странно, получилось много сохранённых файлов .jpg с нулевым размером - пустышек. Предполагаю картинка была найдена, но во время формирования пути и имени будущего файла было подставлена другая ссылка на копирование - весь процесс в цикле
умён и жаден,
характер отсуствует

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 29.08.2012 (Ср) 12:48

Ерунда какая-то.
Ответ сервера какой, пустой?

Пред.

Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

    TopList  
cron