Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Прочитать бинарный файл в строку   Найти похожие ветки 

 
w666w   (2007-08-22 14:53) [0]

Как прочитать бинарный файл в строку, допустим картинку jpeg.

Прекрасно понимаю что это ошибочный код, но не могу найти решения в инете - везде буффера какието, массивы и т.п. Нужно просто в строку..

function ReadFile(aFileName: String) : string;
var f:TFileStream;
   fReaded : string;
begin
 if FileExists(aFileName) then begin
   F := TFileStream.Create(aFileName, fmOpenRead);
   try
     F.Read(fReaded,sizeof(F));
   finally
     f.Free;
     Result := fReaded;
   end;
 end;
end;

Зраранее спасибо!


 
Игорь Шевченко ©   (2007-08-22 14:54) [1]

а зачем его читать в строку ?


 
Германн ©   (2007-08-22 14:57) [2]


>    try
       SetLength(fReaded,sizeof(F));
>      F.Read(fReaded[1],sizeof(F));
>    finally
>


 
umbra ©   (2007-08-22 15:02) [3]

function ReadFile(aFileName: String) : string;
var f:TFileStream;
    dst: TStringStream;
  fReaded : string;
begin
Result := "";
if FileExists(aFileName) then begin
  F := TFileStream.Create(aFileName, fmOpenRead);
  dst := TStringStream.Create;
  try
    dst.CopyFrom(f, f.Size);
    Result := dst.DataString;
  finally
    f.Free;
    dst.Free;
  end;
end;
end;


 
w666w   (2007-08-22 15:17) [4]

Спасибо, работает. delphimasters как всегда помогли быстро и без лишних вопросов. Респект!


 
DrPass ©   (2007-08-22 15:21) [5]


>  delphimasters как всегда помогли быстро и без лишних вопросов

Буду краток: гы-гы-гы :)


 
Юрий Зотов ©   (2007-08-22 15:22) [6]

> w666w   (22.08.07 15:17) [4]

Вопросы могут начаться позже, но уже у Вас. Смотря, что Вы теперь с этой строкой делать будете.

А вот если бы ОДИН раз разобрались с "буфферами какими-то, массивами и т.п.", то НИКАКИХ вопросов уже бы НИКОГДА не возникло.

Тем более, что это несложно. Но дело Ваше, конечно.


 
w666w   (2007-08-22 15:28) [7]

http сервер обрабатывает запросы и возвращает данные именно в формате строки. Можно конечно конвертить туда-сюда, но зачем если задача намного проще.

Отсюда и задача. Еще раз спасибо.


 
Reindeer Moss Eater ©   (2007-08-22 15:30) [8]

и возвращает данные именно в формате строки.

"А мужики-то и не знают"


 
Юрий Зотов ©   (2007-08-22 16:32) [9]

> w666w   (22.08.07 15:28) [7]

> возвращает данные именно в формате строки

Думаю, наоборот - именно, что НЕ в формате строки. Формат ASCIIZ-строки не допускает нулевых байтов в теле строки, а у Вас они, скорее всего, есть. И если это так, то, как только Вы попытаетесь работать с этими данными именно как со строкой, то данные будут обрезаны на первом же нулевом байте.

Скорее всего, тело строки здесь используется всего лишь как буфер, а формат - бинарный.

Как видите, снова эти буфера. Ну никуда от них не деться...
:о)


 
Плохиш ©   (2007-08-22 16:58) [10]


> w666w   (22.08.07 15:28) [7]
> http сервер обрабатывает запросы и возвращает данные именно
> в формате строки.

А потом удивляются и почему это в браузере какие-то кроказябры вместо голых тётков... :-)


 
Gydvin ©   (2007-08-23 07:29) [11]

и наверное не просто строка, а base 64...



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.161 c
11-1169551012
MTsv DN
2007-01-23 14:16
2007.09.16
Поменять LVItems с наименьшими временными затратами...


15-1187771820
Jeer
2007-08-22 12:37
2007.09.16
Библиотека DC


15-1187600182
@!!ex
2007-08-20 12:56
2007.09.16
ИНтересно, мне будет втык...


2-1187682566
em240
2007-08-21 11:49
2007.09.16
обработка строки


15-1187427670
del-l-lphi
2007-08-18 13:01
2007.09.16
UTF