Obcinanie stringa aż do znaku '"/" [DELPHI]

Obcinanie stringa aż do znaku '"/" [DELPHI]
N9
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 9 lat
  • Postów:125
0

Jak obciąć stringa aż do napotkania znaku "/". Wiem jak obcinać o kilka znaków ale jak to zrobić kiedy chce by np.
to:
D:\Gry\LFS\LFS.exe
zmieniło się w to:
D:\Gry\LFS\

pomożecie ?


programuję w Delphi status: początkujący
xeo545x39
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Lokalizacja:Kosmos
  • Postów:1571
0

Czyli do ostatniego "" tak? Wystarczy w pętli zapamiętywać ostatnie pozycję backslasha i przy wyjściu z pętli obciąć do takiej pozycji stringa.


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
edytowany 1x, ostatnio: xeo545x39
N9
mam szukać pos'em w pętli while ?
unikalna_nazwa
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 10 lat
0

do tego konkretnego problemu:

Kopiuj
ExtractFilePath('D:\Gry\LFS\LFS.exe')

Pół giga extra na dropboxie? Pół giga extra na dropboxie! Tyle wygrać! >>Klik here<<
edytowany 1x, ostatnio: unikalna_nazwa
N9
Dzięki wielkie działa jak natura chciała :D :D
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Tuchów
  • Postów:12171
0

Lub ręcznie:

Kopiuj
function ExtractFilePath(FileName: String): String;
var
  I: Word;
begin
  Result := '';

  for I := Length(FileName) downto 1 do
    if FileName[I] = '\' then
      begin
        Result := Copy(FileName, 1, I);
        Exit;
      end;
end;

lub tak (jak napisał @kAzek);

Kopiuj
function ExtractFilePath(FileName: String): String;
begin
  Result := Copy(FileName, 1, LastDelimiter('\', FileName));
end;

Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 2x, ostatnio: flowCRANE
KA
jeszcze można się bawić: ShowMessage(Copy(FileName, 1, LastDelimiter('', FileName)));
flowCRANE
Nie znałem takiej funkcji jak "LastDelimiter"... Dzięki @kAzek :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.