извлечение директории из path

Тема в разделе "WASM.BEGINNERS", создана пользователем e4key, 21 сен 2009.

  1. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    а как собственно можно извлечь директорию файла из пути до него? например, есть C:\hello\hello.exe и мне нужно получить только C:\hello. winapi функции такой не нашел =(
     
  2. Mankubus

    Mankubus New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2009
    Сообщения:
    76
    отсекать все, начиная с последнего символа "\"
     
  3. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    ну сам подумай...ладно вот тебе алгоритм за 5 минут :)

    ищешь с конца позицию первого слэша и удаляешь все что после него,поиск можно легко реализовать через scasb.

    вот пример функции вовзращающей имя файла,функция вовзращает подкорректированный указатель на путь к файлу,ее легко переделать под твою задачу.

    Код (Text):
    1. GetNameFromPath proc uses edi pszName:DWORD
    2.    
    3.     invoke lstrlen,pszName
    4.     mov ecx,eax
    5.    
    6.     mov edi,pszName
    7.     add edi,ecx     ;go to the end of string
    8.     mov al,'\'      ;search for slash
    9.     std         ;form end to the begin ( DF = 1 )
    10.     repnz scasb     ;search for slash
    11.     cld         ;restore DF ( = 0 )
    12.     mov eax,edi
    13.     add eax,2       ;correct pointer
    14.  
    15. ret
    16. GetNameFromPath endp
     
  4. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    спасибо :)
     
  5. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    перового встретившегося*
     
  6. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    e4key
    А лень самому, так shlwapi.
     
  7. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    причем надо проверять как на прямой, так и на обратный слэш