История изменений
Исправление saahriktu, (текущая версия) :
А ты уверен в TFPCustomHTTPClient?
Да.
чтение побайтово помимо этого приведёт к миллиардам переключений контекста, отсюда и тормоза в первую очередь
Зачем? Вы что, думаете, что при побайтном чтении после каждого нового символа вызывают realloc()? В C, например, достаточно прочитать один раз в никуда, подсчитав кол-во байтов до EOF, затем сделать rewind(), выделить один раз память, а затем прочитать в этот только что выделенный буфер. В других языках тоже наверняка есть подобные методы.
Ты можешь изменять их размер и градацию, как в си?
Да, размер строк в Паскале можно менять. Однако, обычно это всё не так уж и актуально. Юзер может просто манипулировать строками. В т.ч. читать файлы строками.
Например, возьмём файл
111
2222
33333
program filetest2;
var
fptr: text;
s: UnicodeString;
filebuf: UnicodeString = '';
begin
assign(fptr,'test1.txt');
reset(fptr);
while not eof(fptr) do
begin
readln(fptr, s);
filebuf := filebuf + s;
end;
close(fptr);
writeln(filebuf);
end.
111222233333
Исходная версия saahriktu, :
А ты уверен в TFPCustomHTTPClient?
Да.
чтение побайтово помимо этого приведёт к миллиардам переключений контекста, отсюда и тормоза в первую очередь
Зачем? Вы что, думаете, что при побайтном чтении после каждого нового символа вызывают realloc()? В C, например, достаточно прочитать один раз в никуда, подсчитав кол-во байтов до EOF, затем сделать rewind(), выделить один раз память, а затем прочитать в этот только что выделенный буфер. В других языках тоже наверняка есть подобные методы.
Ты можешь изменять их размер и градацию, как в си?
Да, размер строк в Паскале можно менять. Однако, обычно это всё не так уж и актуально. Юзер может просто манипулировать строками. В т.ч. читать файлы строками.
Например, возьмём файл
111
2222
33333
program filetest2;
var
fptr: text;
s: UnicodeString;
filebuf: UnicodeString = '';
begin
assign(fptr,'test1.txt');
reset(fptr);
while not eof(fptr) do
begin
readln(fptr, s);
filebuf := filebuf + s;
end;
close(fptr);
writeln(filebuf);
end.
111222233333