В коде изменений не было. В общем, ближе к делу.
Опытным удалось понять, что проблема в строке
version:=IdHTTP1.Get('https://xn--90abhbolvbbfgb9aje4m.xn--p1ai/images/lpro-base-version.txt');
Если написать version:='111'; тогда механизм срабатывает без проблем.
версия берётся из текстового файла на сайте, и если версия в программе не соответствует версии на сайте, тогда обновляем.
Помогите пожалуйста решить проблему с получением версии из текстового файла
- Код: Выделить всё
procedure TfUpdate.bUpdateBaseClick(Sender: TObject);
var
version:WideString;
Response:TFileStream;
begin
try
version:=IdHTTP1.Get('https://xn--90abhbolvbbfgb9aje4m.xn--p1ai/images/lpro-base-version.txt');
if version=lVersionBase.Caption then
begin
Application.MessageBox('У Вас самая новая версия базы','Внимание',MB_OK);
Exit;
end
else
begin
Application.MessageBox('Появилась новая версия базы, сейчас она будет загружена.','Внимание',MB_OK);
Response:=TFileStream.Create('Lpro.db', fmCreate);
IdHTTP1.Get('https://xn--90abhbolvbbfgb9aje4m.xn--p1ai/images/Lpro.db',Response);
// нужно сохранить архив
TMemoryStream(Response).SaveToFile('Lpro.db');
end;
except
on e:Exception do
//-//-//-//-//-//
end;
//меняем версию
AssignFile(FileVerBase, UTF8ToSys('base.txt'));
try
Rewrite(FileVerBase);
Append(FileVerBase);
Write(FileVerBase, version);
finally
CloseFile(FileVerBase);
end;
TMemoryStream(Response).Free;
//Меняем надпись версий
AssignFile(FileVerBase, UTF8ToSys('base.txt'));
Reset(FileVerBase);
AssignFile(FileVerProg, UTF8ToSys('prog.txt'));
Reset(FileVerProg);
Readln(FileVerBase, VerBase);
Readln(FileVerProg, VerProg);
lVersionBase.Caption:=VerBase;
lVersionProgram.Caption:=VerProg;
CloseFile(FileVerBase);
CloseFile(FileVerProg);
Application.MessageBox('Загрузка завершена','Внимание',MB_OK);
end;