Skocz do zawartości

Skracanie ścieżki


Trace

Recommended Posts

Jak ze scieżki np: c:\moje dokumenty\folder1\folder2\folder3\dokumnent.txt zrobić coś w stylu c:\moje dokumenty\...\dokument.txt

Chodzi mi o to, żeby w menu zrobić listę ostatnio otwieranych plików , a nie chcę, aby mi ta scieżka zajmowała pół ekranu :). Myślałem nad podaneim samej nazwy pliku (GetFileTitle), ale wolałbym zrobić to tak, jak jest w wordzie (czyli wstawieniem \...\)

Link do komentarza
Udostępnij na innych stronach

To chyba bardziej pytanie z C/C++ ale niech bedzie. Nie spotkalem sie z gotową funkcją do robienia tego ;) bo pewnie i nie ma. Przeszukaj string w poszukiwaniu "/" i wycinaj to co Ci jest niepotrzebne. Mozesz przyjąć na wstępie, że bedziesz wywalal wszystko co sie znajduje po 2 / i wstawial to co jest po ostatnim / Albo pobawisz sie w bardziej zaawansoawny algorytm. Nie bede Cie pozbawiał satysfakcji z rozwiązania problemu. Jak bedziesz mial kłopoty z tym to wal smiało.

powodzenia

Link do komentarza
Udostępnij na innych stronach

Skrócenie ścieżki do żądanej długości w pixelach:

BOOL PathCompactPath(
    HDC hDC, //kontekst urządzenia, na którym ma byc "wyrysowana" scieżka (potrzebny, żeby odczytać rozmiar czcionki)
    LPTSTR lpszPath, //tekst do skrócenia, tutaj znajdzie się też wynik
    UINT dx //żądana długość tekstu w pixelach
);

Skrócenie ścieżki do żądanej ilości znaków:

BOOL PathCompactPathEx(
    LPTSTR  pszOut, //bufor wyjściowy
    LPCTSTR pszSrc, //bufor wejściowy
    UINT    cchMax, //maksymalna żądana długość ciągu
    DWORD   dwFlags //wartosc nie uzywana
);

Obie funkcje w bibliotece Shlwapi.dll w wersji 4.71 i wyższych.

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...