Robie tak i zwraca mi siezke z zaznaczonym katalogiem tyle ze jego nazwa jest w klamerkach []. Jak sie ich pozbyc?
if FileListBox1.ItemIndex > -1 then
begin
sciezka := FileListBox1.FileName;
end;
Robie tak i zwraca mi siezke z zaznaczonym katalogiem tyle ze jego nazwa jest w klamerkach []. Jak sie ich pozbyc?
if FileListBox1.ItemIndex > -1 then
begin
sciezka := FileListBox1.FileName;
end;
np.
if FileListBox1.ItemIndex > -1 then
begin
sciezka := FileListBox1.FileName;
sciezka := StringReplace(sciezka, '[', '', []);
sciezka := StringReplace(sciezka, ']', '', []);
//tu już masz zmienną sciezka bez klamerek
end;
Jeżeli te klamry są na pierwszej i ostatniej pozycji, to:
S := FileListBox1.FileName;
Delete(S, 1, 1);
Delete(S, LenGth(S), 1);
ShowMessage('Nazwa pliku: '+S);
Proponuję taki kod:
if FileListBox1.ItemIndex > -1 then
begin
sciezka := FileListBox1.FileName;
If Not FileExists(sciezka) then
sciezka:=ExtractFilePath(sciezka)+Copy(ExtractFileName(sciezka), 2, length(ExtractFileName(sciezka))-2);
end;
Delete po obejrzeniu komponentu :P
Wydaje mi się że powinno być OK bo do plików nie dodaje klamry więc plik będzie istniał i nic nie modyfikuje ścieżki, co do katalogów zawsze dostaje klamrę do ostatniego katalogu w ścieżce a więc ją można bezpiecznie usunąć (nawet jeżeli ostatni katalog ma klamry w nazwie to i tak usunie te dodane)..
var
sciezka: string;
begin
if FileListBox1.ItemIndex > -1 then
begin
sciezka := FileListBox1.FileName;
if not FileExists(sciezka) then
begin
Delete(sciezka, LastDelimiter('\' , sciezka) + 1, 1);
Delete(sciezka, LastDelimiter(']' , sciezka), 1);
end;
ShowMessage(sciezka)
end;
end;