Fileexists nie dziala jaka jests przyczyna?

0

WItam,
Uzywam funkcji fileexists, jesli wpisze wartosc sciezki w postaci stringa wszystko jest ok, fukcja zwraca wartosc true, jesli odwolam sie do komorki w stringgridzie, w ktorej zapisana jest nazwa pliku,
np If Fileexists('Dane'+Form1.Stringgrid1.Cells[11,Form1.Stringgrid1.Row]); funkcja nie dziala, plik jest zdjeciem *.jpeg sciagnietym z serwera ftp. Uzywam prehistorycznego delphi 5.

pozdrawiam,

1

Może ten string zawiera nie to, co myślisz? Ew.są tam znaki spoza alfabetu łacińskiego, jak ą czy ó.
Sprawdź debuggerem.

1

jak wyżej lub mylisz się co do wartości bieżącej ścieżki.

0

Wartosc biezacej sciezki jest ok, sprawdzalem przed wczytaniem z showmessage(Form1.Stringgird1.Cells[11,Form1.Stringgrid1.Row]) i otrzymuje wartosc w rodzaju 'Zdjecie jakiestam.jpeg', zadnych znakow oprocz spacji, podmieniajac w Fileexists('Dane'+Form1.Stringgird1.Cells[11,Form1.Stringgrid1.Row]) na Fileexists('Dane\Zdjecie jakiestam.jpeg') dziala ok, ale odwolujac sie do stringgrida juz nie. W polu stringgrid nie ma zadnej sciezki tylko nazwa pliku. Czytalem gdzies na forum ze funkcjia fileexists w D5 moze mic problemy z plikami sciagnietymi z internetu. Proadzicie cos oprocz nowszej wersji Delphi? Moze ma tez problemy z czytaniem zmiennych ... sam juz nie wiem

A i dodam ze jesli do zmiennej dodam cala sciezke w postaci np. 'Dane\Zdjecie jeskiestam.jpg' i wykorzystam zmienna w Fileexists rowniez funkcja nie dziala, jesli ta sama wartosc ze stringa skopiuje pomiedzy ' ' i wykorzystam w fileexists jest ok. O.o

1

Proadzicie cos oprocz nowszej wersji Delphi?

Nowa wersja Lazarusa.

0

Zgadza sie, wg. wskazowek Patryka i Dragona, cos namieszalem, string posiadal dodatkowy znak na koncu... nie byl to enter, tab ani spacja, gdyz probowalem wczesniej wykasowac je przy uzyciu stringreplace. Zaladwoalem komorke stringa do Richedita i przy uzyciu Findtext (jpg) i Copy pozbylem sie go. Bardzo dziekuje za pomoc:)

2
M.wrona napisał(a)

string posiadal dodatkowy znak na koncu... nie byl to enter, tab ani spacja, gdyz probowalem wczesniej wykasowac je przy uzyciu stringreplace.

Mogłeś sobie wyrzucić spacje z wnętrza łańcucha, jeśli funkcją StringReplace próbowałeś je usunąć z ustawioną flagą [rfReplaceAll];

Jeśli masz jakieś dziwne znaki w tym łańcuchu to jak już nie chcesz użyć debugera i w oknie Watches podglądnąć sobie tę ścieżkę, to do usuwania zbędnych znaków (spacji i znaków kontrolnych) stąjących na początku i na końcu łańcucha możesz wykorzystać funkcje Trim, TrimLeft lub TrimRight; Wszystko jednak zależy od tego jakie są te znaki i skąd się tam wzięły.

0

Dzieki, nie pomyslalem o tym ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1