Насколько я понимаю URLEncode() в GetUrlScript.txt использовать нельзя? Как можно реализовать?
Пробовал копипастить разные интернет-варианты в GetUrlScript.txt, но ни один у меня так и не заработал - все выдавали ошибку компиляции (сразу оговорюсь - с паскалем/делфи вообще не знаком ).
К примеру:
Этот говорит, что Unknown identifier 'CharIsInSet':
- Код: Выделить всё
function URLEncode(const ASrc: string): string;
var
UnsafeChars: string;
i: Integer;
begin
Result := '';
UnsafeChars := '*#%<> []';
for i := 1 to Length(ASrc) do begin
if CharIsInSet(ASrc, i, UnsafeChars) or (not CharIsInSet(ASrc, i, CharRange(#33,#128))) then begin
Result := Result + '%' + IntToHex(Ord(ASrc[i]), 2);
end else begin
Result := Result + ASrc[i];
end;
end;
end;
Этому нужна ';' где-то в if:
- Код: Выделить всё
function URLEncode(s: string): string;
var
i: integer;
source: PChar;
begin
result := '';
source := PChar(s);
for i := 1 to length(source) do begin
if not ( source[i - 1] in ['A'..'Z', 'a'..'z', '0'..'9', '-', '_', '~', '.', ':', ''] ) then begin
result := result + '%' + inttohex(ord(source[i - 1]), 2);
end else begin
result := result + source[i - 1];
end;
end;
end;
В чем может быть проблема?
И в догонку еще один вопрос: можно ли в GetUrlScript.txt получить статус http-запроса тайла указанного в ResultURL? Можно конечно использовать Downloader(), но в этом случае к одному и тому же тайлу будет создаваться
два одинаковых запроса - один чтобы получить response_code, второй уже на скачивание. И это не очень хорошо, имхо.
Тут сам разобрался - if GetHeaderValue(ResponseHead, 'Status') = '404 Not Found' then ... вроде бы должно решить ситуацию. Поправьте, если не прав. Проверить пока не могу ибо не ясен основной вопрос.
Заранее благодарен за помощь.