![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с TMemoryStream
genek84 © (2003-10-22 09:14:00)
Как проверить переменную TMemoryStream что она не пуста и очистить её.
Программа получает рабочий стол и пересылает его клиенту.
Не знаю почему но конец пересылаемого файла иногда не доходит и при следующем запросе необходимо очищать переменную с проверкой что она не пуста.
Что посотоветуете программеры... мучаюсь уже неделю ... буду очень благодарен за помощь
Digitman (2003-10-22 09:54:00) [1]
Image1.LoadFromStream(FileStream);
где Image1 - указатель на объект TJPEGImage, коль речь идет о потоке данных в формате *.jpg
genek84 (2003-10-22 09:48:00) [2]
Я сохраняю картинку в файл, а можно как нибудь
без
FileStream.SaveToFile("temp_client.jpg");
Image1.Picture.LoadFromFile("temp_client.jpg");
напрямую?
genek84 (2003-10-22 09:45:00) [3]
// Anatoly Podgoretsky
Спасибо, мне кажется это я и искал..
Reindeer Moss Eater (2003-10-22 09:43:00) [4]
а как проверить
ЧТО?
genek84 (2003-10-22 09:42:00) [5]
привожу код:
try
ProgressBar1.Position := FileStream.Size*100 div Size; // Выводим прогресс закачки файла
if FileStream.Size < Size then
// Если принято байт меньше размера файла, то...
FileStream.Write(frame[1], length(frame));
// Записываем в буфер
if FileStream.Size = Size then
begin
FileStream.Position:=0;
FileStream.SaveToFile("temp_client.jpg");
Image1.Picture.LoadFromFile("temp_client.jpg");
FileStream.Free;
Receive:= false;
ProgressBar1.Position:=0;
end;
except
FileStream.Free;
end;
end;
Anatoly Podgoretsky (2003-10-22 09:42:00) [6]
genek84 © (22.10.03 09:34) [9]
if assigned(FS) then ...
genek84 (2003-10-22 09:36:00) [7]
"об объекте класса TMemoryStream (который хранит прочитанные в него из файла данные)"
genek84 (2003-10-22 09:34:00) [8]
а как проверить
genek84 (2003-10-22 09:34:00) [9]
а как проверить
Digitman (2003-10-22 09:32:00) [10]
> в TMemoryStream я помещаю файл и пересылаю его
на здоровье) ... но при чем тут переменная ? ты вообще речь ведешь об объекте класса TMemoryStream (который хранит прочитанные в него из файла данные) или о переменной типа TMemoryStream (которая хранит лишь указатель на объект) ? что "чистить"-то собрался ?
сам объект "очищается" вызовом метода MyMemStrmVar.Clear, переменная же MyMemStrmVar "очищается" прямым присвоением nil либо вызовом ф-ции FreeAndNil(MyMemStrmVar), в ходе работы которой сначала уничтожается объект, на который указывало содержимое переменной MyMemStrmVar, а затем выполняется MyMemStrmVar := nil;
Reindeer Moss Eater (2003-10-22 09:31:00) [11]
TMemoryStream.Clear
Digitman (2003-10-22 09:26:00) [12]
> Anatoly Podgoretsky
лавры Железного Птица)
genek84 (2003-10-22 09:26:00) [13]
в TMemoryStream я помещаю файл и пересылаю его, а вопрос-то по TMemoryStream
Anatoly Podgoretsky (2003-10-22 09:24:00) [14]
Лавры покоя не дают
Digitman (2003-10-22 09:22:00) [15]
> Как проверить переменную TMemoryStream что она не пуста
> и очистить её.
переменную "очистить" нельзя, можно лишь присвоить ей некое значение
Reindeer Moss Eater (2003-10-22 09:18:00) [16]
Сначала речь про TMemoryStream, потом про конец какого - то файла ...
Ты не мучайся, ты сосредоточься