Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


saurn,
Цитата saurn:
только последняя папка »
пардон (не сделал в перд. коде), имя последней папки пути (путь без имени файла на конце) получаешь так:

читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application\Folder\saurn


[code  ]
function GetLastPathFolderName(const UndefPath: String): String;
var
    Len, i: Integer;
    BuffStr: String;
begin
    BuffStr := RemoveBackslash(UndefPath);
    Len := Length(BuffStr);
    for i := Len downto 1 do
    begin
        if BuffStr[i] = '\' then Break;
        Result := Result + BuffStr[i];
    end;
    
    BuffStr := Result;
    Result := '';
    Len := Length(BuffStr);
    for i := Len downto 1 do Result := Result + BuffStr[i];
end;


procedure InitializeWizard();
begin
    MsgBox(GetLastPathFolderName(WizardForm.DirEdit.Text), mbInformation, MB_OK);
end;


или так MsgBox(ExtractFileName(ExtractFileName(WizardForm.DirEdit.Text)), mbInformation, MB_OK);

PS: функция GetLastPathFolderName написана на низком уровне, работает бетонно. В Си была бы длиннее, тк нужно было бы писать вручную RemoveBackslash() и Length()
Скорость работы GetLastPathFolderName на максимальном уровне. Всё остальное зависит от компилятора и я фиг знает как написана ExtractFileName. Поэтому к ExtractFileName нет доверия

Последний раз редактировалось Johny777, 17-07-2013 в 22:29.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:11, 17-07-2013 | #787