Вопрос Запись значения в файл без расширения

volente

Новичок
Как записать значение определения #define MyAppVersion "версия" с удалением предыдущего значения в файл без расширения после успешной установки?
 
Последнее редактирование:

Хамик

Старожил
@volente, а если удалить файл и записать строку с помощью savestringtofile? Проканает? Атрибут read only сильно важен?
 

volente

Новичок
@Хамик, я не знаю Pascal. Атрибут Read-only не важен. Достаточно того, что файл сделан системным файлом.

1624378826762.png
 

Хамик

Старожил
@volente, попробуй так. Путь уже под себя поправь.
code_language.pascal:
#define MyAppVersion "0.0.1-beta.3"

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.

[Code]
#define A = (Defined UNICODE) ? "W" : "A"
function SetFileAttributes( lpFileName: String; dwFileAttributes: DWORD ): BOOL; external 'SetFileAttributes{#A}@kernel32.dll stdcall';

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssDone then
  begin
    //DeleteFile(ExpandConstant('{src}\version'));
    SaveStringToFile(ExpandConstant('{src}\version'), '{#MyAppVersion}', false);
//    SetFileAttributes( ExpandConstant('{src}\version'), FILE_ATTRIBUTE_SYSTEM );
  end;
end;
 
Последнее редактирование:
Сверху