Lazarus - Filelistbox i FileExist polish font in name file

0

Witajcie.

Programuje w Lazarusie i napotkalem na taki dziwny problem ( w delphi tego problemu nie ma )
Problem dotyczy nazewnictwa plikow.
To znaczy majac w folderze pliki o nazwach

śnieg_nie_lubi_lata.pdf
pióro lubi papier.pdf
śnieg lubi zime.pdf
snieg.pdf

I teraz tak w listaplikow ( FilelistBox ) wyswietlaja mi sie poprawnie nazwy plikow takze i te z naszymi "ogonkami"
Problem jednak polega na tym jak juz chce sie odwolac do pliku w jakiejkolwiek postaci np tym:

if FileExists(katalog+''+listaplikow.Items[listaplikow.ItemIndex])) then showmessage('ZNALAZLEM PLIK');

to przy plikach z "ogonkami" wcale ich nie znajduje, ( nie pokazuje komunikatu znalazlem ).

czy ktos wie z was jak moge rozwiazac ten problem w Lazarus ?

0

to jeszcze ja dodam ze "katalog" i sciezka sa prawidlowe gdyz pliki bez "ogonkow" pokazuja komunikat znalazlem.

katalog:="d:\test"; //i w nim sa pliki
if FileExists(katalog+''+lista_plikow_mp3.Items[lista_plikow_mp3.ItemIndex]) then showmessage('ZNALAZLEM PLIK'

0

1.Ja don't know czemu you pisać in dwóch languages na raz.
2.Dlatego plików nie powinno się nazywać z tymi znakami, bo to generuje problem. Próbowałeś wykonać zwykłe otwarcie pliku na tym? Nie wiem jak pobierasz dane, ale zapewne są one konwertowane na UTF-8 a z powrotem nie.
3.Skoro znasz angielski to zapytaj na forum/IRC/mailing listach FPC, tam pewnie będą bardziej znali przyczyny i rozwiązania.

0

We FreePascalu/Lazarusie od paru wersji ciągle coś modzą z kodowaniem. Wygląda to tak: wysyła Rusek buga że mu nie działa. Zmieniają bez wielkiego zastanowienia, Ruskowi zaczyna działać, reszcie świata przestaje. Ale to już ich nie obchodzi.
Wygląda na to, że nie wiedzą co czynią.

czy ktos wie z was jak moge rozwiazac ten problem
Napisz przynajmniej, pod jakim systemem masz ten problem (i jaka to wersja językowa systemu).

0

tak:

 if FileExistsUTF8('c:\ąść.żźó') then ShowMessage('jest plik'); 

lub tak:

  if FileExists(UTF8ToAnsi('c:\ąść.żźó')) then ShowMessage('jest plik');
0

Dzieki za przyklad niestety on nie dziala w Lazarusie (wersja 9.30)
z polskimi literami w nazwie pliku jest cos nie tak w delphi dziala bez problemu ech....

0

Dzieki za przyklad niestety on nie dziala w Lazarusie (wersja 9.30)

Śmieszne bo u mnie na najnowszym Lazarusie z najnowszym FPC działa magicznym sposobem.
if FileExistsUTF8('d:\ąę.txt') then writeln('jest plik');
FileExistsUTF8 wziąłem z modułu fileutil.

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