Главная страница
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.031 c
2-1187889271
@!!ex
2007-08-23 21:14
2007.09.16
Аналог TImage c поддержкой png.


2-1187952310
Adios
2007-08-24 14:45
2007.09.16
вопрос про местоположение формы


3-1179323715
AlexeiBerkov
2007-05-16 17:55
2007.09.16
Соединение с сервером ( TADOConnection )


2-1187631898
b86
2007-08-20 21:44
2007.09.16
научите меня как работает dragdrop


2-1187710522
Sonic90
2007-08-21 19:35
2007.09.16
Целое число