Получение не полного имени файла

Тема в разделе "WASM.WIN32", создана пользователем base64, 31 окт 2004.

  1. base64

    base64 New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2004
    Сообщения:
    5
    Адрес:
    Bolivia
    GetModuleFileName получает полное имя файла, например

    C:\test.exe. Существуют ли простые способы получения только имени(без пути и расширения, например test)?
     
  2. out_Lander

    out_Lander New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2004
    Сообщения:
    2
    Ну можно же отсечь до знака "/" (если смотреть справа на лево)... Аналогично до знака "."...
     
  3. Johnikum

    Johnikum Member

    Публикаций:
    0
    Регистрация:
    6 июн 2003
    Сообщения:
    97
    Только до знака "." нужно отсекать с конца.
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Если не обрабатывать исключительные ситуации, как отсутствие в пути '.' и '\', то код может быть приблизительно такой:
    Код (Text):
    1.        invoke GetModuleFileName, NULL, OFFSET sBuff, 01000h
    2.        test eax, eax
    3.        jz @exit
    4.        lea edx, [eax+sBuff-1]
    5. @@:
    6.        cmp BYTE PTR [edx], '.'
    7.        je @F
    8.        dec edx
    9.        jmp @B
    10. @@:
    11.        mov BYTE PTR [edx], 0
    12. @@:
    13.        cmp BYTE PTR [edx-1], '\'
    14.        je @F
    15.        dec edx
    16.        jmp @B
    17. @@:
    18.        invoke MessageBox, 0, edx, 0, 0
    19. @exit: