В идеальном случае у нас должно быть достаточно памяти для чтения файла в одной операции чтения. Это было бы лучшим исполнителем, потому что мы позволяем системе управлять Файловой системой, единицами выделения и жестким диском по желанию. На практике Вам повезло знать размеры файла заранее, просто использовать средний размер файла, окруженный для 4K (единица выделения по умолчанию на NTFS). И лучший из всех: создайте сравнительный тест для тестирования нескольких опций.
Я думаю, что удаление любого HTML-тега из входных данных даст вам что-то довольно безопасное, за исключением случаев, когда кто-то найдет способ ввести некоторые действительно испорченные данные в Markdown, заставив его генерировать еще более беспорядочные -up output ^^
Тем не менее, вот две вещи, которые мне приходят в голову:
Первая: strip_tags
- это не чудо-функция: у нее есть некоторые недостатки ...
uses
GIFImg;
procedure TForm1.btn1Click(Sender: TObject);
var
MS : TMemoryStream;
GIf: TGIFImage;
begin
MS := TMemoryStream.Create;
GIf := TGIFImage.Create;
try
IdHTTP1.get('http://www.google.com/intl/en_ALL/images/logo.gif',MS);
Ms.Seek(0,soFromBeginning);
Gif.LoadFromStream(MS);
img1.Picture.Assign(GIF);
finally
FreeAndNil(GIF);
FreeAndNil(MS);
end;
end;