Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2011, 21:12   #1
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию string, TMemoryStream, TBitmap и я

всем привет...
мне сейчас грустно скучно и одиноко, а все почему?
потому что у меня ничего не получается!
я вот думал, сейчас приду домой и сделаю что-нибудь
большое чистое и светлое,а хрен там!
была идея сделать битмап, который будет загружать свою картинку из файла,
именно из файла, а не сам файл как картинку.
т.е. куча картинок свалена в файл, а битмап выцепляет одну из них.
план был такой:
1. нужный кусок файла выцепляется в строку
2. строка превращается в stream
3. bitmap.LoadFromStream

Кроме всего прочего я столкнулся вот еще с какой проблемой:

assignfile(test,'c:/2.bmp');
reset(test);
assignfile(test2,'c:/22.bmp');
rewrite(test2);

d:=FileSize(test);

str:='';

for i:=0 to d-1 do
begin
read(test,a);
str:=str+a;
end;

for i:=0 to d-1 do
begin
a:=str[i];
write(test2,a);
end;

все файлы of char.

если разум мне не изменяет,
этот код должен прочитать весь файл в строку,
а потом эту строку переписать в новый файл,
т.е. по-сути скопировать файл.
но получается хрень =((

поэтому у меня к вам собственно три вопроса:
1. какого хрена, ой, извините, почему так происходит?
2. как строку запихнуть в TMemoryStream?
3. что таке buffer???
в контексте TMemoryStream, только и слышно, buffer! buffer! buffer!
а что это такое толком нигде и не написано =(
что за тип данных?
function TMemoryStream.Write(const Buffer; Count: Longint): Longint;

чует мое сердце, что на форуме есть темы по этим вопросам,
но мне правда, очень впадлу искать...
и вообще я уже спать хочу...

может кто-нибудь добрый разъяснит мне эти вопросы,
ну так в порядке бла-бла-бла?
поэтому и тему создаю в соответствующем разделе,
не убивайте меня, я хороший =)


p.s.
кстати, написал все это в стороннем редакторе, перечитал и
допер почему глюки с переписыванием файла =)
str[i]...
for i:=0...
str[0]... !!!
нету str[0]! в стринге символы с 1 идут...
xrob вне форума Ответить с цитированием
Старый 19.05.2011, 21:41   #2
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

xrob
Цитата:
была идея сделать битмап, который будет загружать свою картинку из файла, именно из файла, а не сам файл как картинку.
Зачем?

Не знаю в тему ли, но tar создаёт архивы без сжатия.
http://www.gnu.org/software/tar/
the_deer_one вне форума Ответить с цитированием
Старый 19.05.2011, 21:55   #3
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

э, не, спасибо =)
кучку файлов в один свалить я и сам могу...
я же описал в чем проблема, проблема в том, что как string в bitmap засунуть.
а по поводу зачем...
да все за тем же =)
вы возможно уже заметили что у меня мания все с нуля делать?
ну вот, я просто хочу запихать файлы с картинками в файл программы.
только не надо мне рассказывать про ресурсы =)
я сделаю свою систему ресурсов - нужные файлы
тупо дописываются в файл с прогой,
и читаются прямо оттуда во время выполнения.
xrob вне форума Ответить с цитированием
Старый 20.05.2011, 00:35   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
только не надо мне рассказывать про ресурсы =)
я сделаю свою систему ресурсов - нужные файлы
тупо дописываются в файл с прогой,
и читаются прямо оттуда во время выполнения.
А как по-вашему работают ресурсы?
MaTBeu вне форума Ответить с цитированием
Старый 20.05.2011, 07:51   #5
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

дададададададда! именно так они и работают, я знаю! =)
но я не хочу связываться со стандартными средствами создания ресурсов.
просто не хочу и все.
и вообще я хочу писать что-то типа
Bitmap.LoadFromXrResousre('myImag') ;
xrob вне форума Ответить с цитированием
Старый 20.05.2011, 09:01   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
var
  ms: TMemoryStream;
  fs: TFileStream;
begin
  ms := TMemoryStream.Create();
  fs := TFileStream.Create('myfile.dat');
  try
    //
    fs.Seek(1234);                       // offset to bitmap
    //
    ms.CopyFrom(fs, 199999);             // size of bitmap
    //
    Image1.Picture.Bitmap.LoadFromStream(ms);
  finally
    FreeAndNil(fs);
    FreeAndNil(ms);
  end;
end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка с TMemoryStream Ecosasha Общие вопросы Delphi 3 25.03.2011 12:57
IdHTTP и TMemoryStream и String syserg Работа с сетью в Delphi 2 02.04.2010 20:31
TMemoryStream Владимир1988 Помощь студентам 0 13.02.2010 13:04
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57