Paramstr i dlugie nazwy plikow

0

Ostatnio mam pewien problem: pisze notatnik i mam problem z paramstr. Prze zdarzeniu TForm1.OnCreate ustawilem Memo1.Lines.LoadFromFile(ParamStr(1)) [podane w duzym uproszczeniu]. Nastepnie dodalem do rejestru, aby po nacisnieciu prawego klawisza pojawiala sie opcja np. Podglad. Wszystko dzialalo ok, do czasu gdy sprobowalem otworzyc plik np. "C:\mhz new.txt". Param str zwraca taki ciag znakow: "C:\mhz~1.txt", a gdy proboje wczytac go do Memo np. Memo1.Lines.LoadFromFile(Paramstr(1)) - pokazuje blad, ze nie moze znalezc pliku "c:\mhx". I teraz mam pytanie: czy zna moze ktos windowsowy odpowiednik paramstr (bo paramstr to jeszcze z Pascala pochodzi) obslugujacy dlugie nazwy, lub ktos wie jak ten problem rozwiazac. Dzieki z gory...

0

Zapewne w rejestrze umisciles takie cos
TenzeTwojNotatnik.exe %1
a powinno byc
TenzeTwojNotatnik.exe "%1"
poniewaz w pierwszym przykladzie przy otwarciu pliku 'c:\mhz new.txt' paramstr(1) to 'c:\mhz', a paramstr(2) to 'new.txt' wiec wstawienie tego w "" powoduje ze paramstr(1) bedzie mial wartosc 'c:\mhz new.txt' [delphi rozdziela parametry spacjami]. Przed chwila sprawdzalem to z "%1" i spoko dziala. A nawet gdybys mial plik 'c:\mhz new.txt' to nazwa dosowa czyli 'c:\mhznew~1.txt' [dosowa nazwa jest skladana z 6 pierwszych znakow nazwy bez spacji, a potem ~x] jest poprawna i program powinien taki plik otworzyc.
-------[ Delphi 6 Rulez 4 Ever!, przynajmniej do czasu gdy naucze sie C++ :) ]------

0

Wielkie dzienki, jak wroce do domu, to sprawdze...

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.