Как получить только названия файла, из полного пути на нево ? (VC++)

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

  1. mikityak

    mikityak Забанен

    Публикаций:
    0
    Регистрация:
    5 авг 2007
    Сообщения:
    160
    Код (Text):
    1. #include "stdafx.h"
    2.  
    3. int APIENTRY WinMain(HINSTANCE hInstance,
    4.                      HINSTANCE hPrevInstance,
    5.                      LPSTR     lpCmdLine,
    6.                      int       nCmdShow)
    7. {
    8.     // TODO: Place code here.
    9.     MessageBox(NULL, lpCmdLine ,"Caption",MB_OK);
    10.     return 0;
    11. }
    lpCmdLine = http://www.ollydbg.de/odbg110.zip
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    выделить строку справа до первого слеша
     
  3. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    char *lpFileName = strrchr(lpCmdLine, '\\') + 1;
     
  4. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    PathFindFileNameA
     
  5. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    _splitpath, _wsplitpath
    Break a path name into components.
    h**p://msdn.microsoft.com/en-us/library/e737s6tf%28VS.80%29.aspx
     
  6. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    [\\/]([^\\/]+)\s*$
     
  7. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    qqwe
    :)
    Кстати, достаточно "([^\\/]+)\s*$" т.к. + по умолчанию greedy.
     
  8. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Код (Text):
    1. #include <windows.h>
    2.  
    3. #pragma comment(linker, "/ENTRY:start")
    4. #pragma comment(linker, "/opt:nowin98")
    5. #pragma comment(lib, "kernel32.lib")
    6. #pragma comment(lib, "user32.lib")
    7.  
    8.  
    9. void start(void)
    10. {
    11.     DWORD len;
    12.     char  buf[512];
    13.  
    14.     if ( 0 == (len = GetModuleFileName(NULL, buf, sizeof(buf))) )
    15.         ExitProcess(0);
    16.     while ( buf[len - 1] != '\\' )
    17.     {
    18.         if ( ! --len )
    19.             ExitProcess(0);
    20.     }
    21.     MessageBox(NULL, &buf[len], "FileName is", MB_OK | MB_ICONINFORMATION);
    22.     ExitProcess(0);
    23. }
     
  9. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Asterix
    Что за хрень ты написал?
     
  10. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Asterix
    Сам то читал
     
  11. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Asterix
    if ( ! --len )
    ExitProcess(0);
    что жто
     
  12. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Asterix
    Беру свои возражения обратно. И прошу извинений.
     
  13. mikityak

    mikityak Забанен

    Публикаций:
    0
    Регистрация:
    5 авг 2007
    Сообщения:
    160
    ..тему можно закрыть.. (кричу через марлеву повязку) спасибі [​IMG]