powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Копирование потока или возврат в его начало
34 сообщений из 34, показаны все 2 страниц
Копирование потока или возврат в его начало
    #39816154
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня.
Подскажите как получить копию потока или вернуться в его начало?
Код: vbnet
1.
2.
3.
4.
5.
6.
            Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
            Dim ReceiveStream As Stream = myWebResponse.GetResponseStream()
            Dim encode As Encoding = System.Text.Encoding.GetEncoding("windows-1251")
            Dim readStream As New StreamReader(ReceiveStream, encode)
            Page_Stream = readStream.ReadToEnd
readStream.Close()
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816165
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скопировать его в MemoryStream, а с ним уже делать все что угодно.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816166
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereПодскажите как получить копию потока или вернуться в его начало?.CopyTo()
.CopyToAsync()
.Seek()
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816168
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,
если можно пример на vb
Dim Mstream As MemoryStream = ReceiveStream
ругается Unable to cast object of type 'System.Net.ConnectStream' to type 'System.IO.MemoryStream'.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816171
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-spherefkthat,
если можно пример на vb
Dim Mstream As MemoryStream = ReceiveStream
ругается Unable to cast object of type 'System.Net.ConnectStream' to type 'System.IO.MemoryStream'.

Я на VB не пишу, если сможешь перевести с шарпа, то как-то так:

Код: c#
1.
2.
3.
4.
5.
using(var memoryStream = new MemoryStream())
{
    await receiveStream.CopyToAsync(memoryStream);
    memoryStream.Seek(0);
}
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816183
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблему не решил, подскажите волшебную строчку кода
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816195
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereпроблему не решил, подскажите волшебную строчку кода
Это уже не ко мне. Если тебе лень в документацию посмотреть, то мне из-за твоей проблемы учить VB тем более :))
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816257
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,
лень, это точно.
Я два дня с этим бился перед тем как на форум постучаться.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816318
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-spherefkthat,
лень, это точно.
Я два дня с этим бился перед тем как на форум постучаться.
Ну что тут сложного-то? У тебя исходный стрим - это стрим, который читает данные из HTTP - понятно, что ни пистаь в него, ни ходить по нему туда-сюда куда хочешь нельзя. MemoryStream - это специальный стрим который все свои данные хранит в буффере в памяти. Тебе просто нао создать новый MemoryStream, скопировать туда все данные из исходного (тебе уже тут два раза сказали как это сделать), а потом уже работать с этим MemoryStream, потому что он уже позволяет хоть читать, хоть писать, хоть позиционироваться куда угодно.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816436
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,
я с вами согласен по всем пунктам.
Это также просто как, к примеру, построить самолет.
Просто я с другой галактики, не программист я.
Строчку кода или ссылку, если знаете.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816706
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

А если ты не программист, то зачем оно тебе вообще нужно? Мне вот сейчас надо во всей квартире стены поштукатурить, а я вообще никогда этим не занимался. Пойду сейчас на форум строителей: "Мужики, покажите мне волшебный шпатель, чтобы у меня само-собой все получилось".
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816731
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,
там тебе скажут
-"Дык шпателем стены не штукатурят. Возьми, мил человек правило и будет тебе счастье."
И еще ролик покажут с кучей способов как это сделать.
Зачем тогда форум, если здесь вопрос нельзя задать?
Вопрос снят. Найду решение - напишу код.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39816773
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос былit-sphereПодскажите как получить копию потока или вернуться в его начало?ответ был дан. Других вопросов не было. Покажите волшебную строчку - это не вопрос, потому что непонятно, что эта волшебная строчка должна делать. Переводчик с шарпа на VB и обратно http://converter.telerik.com
Что ещё хочет автор - неясно.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817474
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817478
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Был вопрос it-sphereПодскажите, как получить копию потока или вернуться в его начало?
Как по вашему, что должна делать "волшебная строчка кода"? На мой взгляд ответ очевиден - создать копию потока.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817479
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

перходи на C#, не мучайся.
VB.NET для какого-нибудь прикладного кода только годиться.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817491
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

От него, вроде бы как собирались вообще отказаться, но, в VS2019 он нежданно снова вылез из своей первобытной пещеры, и даже под коре можно код писать. Но, по-любому, я думаю, он уже развиваться не будет, т.е. каких-то новых языкофич там ждать не следует.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817494
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

напиши так:

Код: c#
1.
receiveStream.CopyTo(memoryStream);



т.е. без "await" и "Async" - я не уверен что в VB вообще аналог этому есть.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817524
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,
ReceiveStream.CopyTo
пишет CopyTo не является членом System.IO.Stream
Приговор?
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817538
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
т.е. без "await" и "Async" - я не уверен что в VB вообще аналог этому есть.
Есть , будь спок!
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817604
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-spherefkthat,
ReceiveStream.CopyTo
пишет CopyTo не является членом System.IO.Stream
Приговор?

У тебя там что - фреймворк еще второй версии, что ли? Stream.CopyTo Method
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817610
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatit-spherefkthat,
ReceiveStream.CopyTo
пишет CopyTo не является членом System.IO.Stream
Приговор?

У тебя там что - фреймворк еще второй версии, что ли?
Stream.CopyTo Method
версии 3.5 походу
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817612
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-spherefkthat,
ReceiveStream.CopyTo
пишет CopyTo не является членом System.IO.Stream
Приговор?
https://stackoverflow.com/questions/5730863/how-to-use-stream-copyto-on-net-framework-3-5
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817632
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мухверсии 3.5 походу
3.5 ведь, это и есть 2.0, просто с добавлением WCF, WWF, EF, WPF (наcчет этого точно не помню). Сам рантайм там тот же самый и BCL, кажется, тоже.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817782
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает так
Код: vbnet
1.
2.
3.
Dim M_stream As New MemoryStream
ReceiveStream.CopyTo(M_stream)
M_stream.Seek(0, SeekOrigin.Begin)


На ПК фреймворк 3.5
Остался один вопрос. Можно ли после чтения потока прочитать его еще раз?
Код: vbnet
1.
M_stream.Seek(0, SeekOrigin.Begin)

не возвращает к началу.
Сейчас спасаюсь повторным копированием M_stream до его чтения.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817808
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем это надо? может нужен StreamReader ?
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817817
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
так я не с файла качаю.
А нужно с вязи с тем, что не всегда можно узнать кодировку страницы до ее скачивания.
Для ускорения процесса декодирования нужно иметь виртуальную копию страницы.
Как то так
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817818
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

Как тут стримридер вообще поможет? Это просто разновидность абстрактного TextReader для работы с потоком.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817823
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereKonst_One,
так я не с файла качаю.
А нужно с вязи с тем, что не всегда можно узнать кодировку страницы до ее скачивания.
Для ускорения процесса декодирования нужно иметь виртуальную копию страницы.
Как то так

Стопендо. Так дело только в этом (в кодировке)? А через вот это его разве нельзя cразу получить?

"А тут он такой говорит: Доктор, вы знаете, а еще у меня член позеленел" (с)
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39817842
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat"А тут он такой говорит: Доктор, вы знаете, а еще у меня член позеленел" (с)
Я же написал it-sphere А нужно с вязи с тем, что не всегда можно узнать кодировку страницы до ее скачивания.
Не все, к сожалению, умеют настраивать сервер, чтобы он правильно отдавал заголовки и объявляют о кодировании в
Код: html
1.
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39818110
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereНе все, к сожалению, умеют настраивать сервер, чтобы он правильно отдавал заголовки и объявляют о кодировании

Актуальность проблема, о которой вы пишите, потеряла много лет назад. Нет никакой проблемы с заголовками.
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39818123
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereОстался один вопрос. Можно ли после чтения потока прочитать его еще раз?
Код: vbnet
1.
M_stream.Seek(0, SeekOrigin.Begin)
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39818124
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereОстался один вопрос. Можно ли после чтения потока прочитать его еще раз?
Код: vbnet
1.
M_stream.Seek(0, SeekOrigin.Begin)


Не всякий поток поддерживает seek
В данном случае нельзя
Но можно совместить чтение с анализом кодировки
...
Рейтинг: 0 / 0
Копирование потока или возврат в его начало
    #39818143
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю, ты хочешь прочитать тело ответа HTTP и выковырять charset из его заголовка, да? В принципе, если тебе потом все равно надо парсить html (как я сильно подозреваю), то можно сразу взять HAP - забожиться за него насчет этого не могу, но, думаю, он <meta http-equiv="Content-Type" content="bla-bla-bla"/> должен корректно обработать. А иначе ты еще потом зашибешься этот сharset руками из html meta-тегов выковыривать.
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Копирование потока или возврат в его начало
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]