Skocz do zawartości

Skracanie ścieżki


Recommended Posts

Napisano

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 \...\)

Napisano

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

Napisano

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.

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...