Wczytywanie pliku

0

Czesc
Moze najpierw dokładnie wyjasnie o co chodzi:
Po dokonaniiu odpowiedniego wpisu w rejestrze systemu klikam na plik np z rozszerzeniem "*.cos" i otwiera mi sie program z komponentem MEMO . Jak zrobic zeby juz na starcie programu wpisała mi zawartoosc tego pliku do memo??? Jak pobrac nazwe (sciezke dostepu) tego pliku z rozszerzeniem *.cos?????????

z gory dzieki
pozd.

0

Jeżeli otwierasz plik klikając go podwójnie, to zapewne w rejestrze masz wpisane jako akcję domyślną "TwójProgram.exe %s" (czy tam %1 :)) - wtedy nazwa pliku wraz ze ścieżką jest podana do programu jako parametr. Masz ją pod ParamStr(1);.

0

Wtedy twój program otwiera się z parametrem...

twojprogram.exe parametr

Parametrem jest ściężka do pliku otwieranego.. Informacja ta jest przechowywana w "ParamStr(1)" .. ale jeśl któryś z katalogów w scieżce do pliku otwieranego zawiera chociaż jedną spację, to na Windowsie 9.x .. jest to odczytywane jak drugi parametr.. więc bezpieczniej jest zrobić tak:

// Sprawdzenie czy otworzono plik
  Prm := '';
  if (ParamStr(1) <> '') then
  begin
    i := 1;
    repeat
      if ParamStr(i) <> '' then Prm := Prm + ParamStr(i);
      i := i + 1;
      if ParamStr(i+1) <> '' then Prm := Prm + ' ';
    until ParamStr(i) = '';

Teraz zmienna Prm typu String zawiera ściezke do pliku otwieranego, który normalnie wczytujesz do Memo np. przez LoadFromFile(Prm) ..

W/w procedure można dać w OnCreate formy..

0

.. ale jeśl któryś z katalogów w scieżce do pliku otwieranego zawiera chociaż jedną spację, to na Windowsie 9.x .. jest to odczytywane jak drugi parametr.. więc bezpieczniej jest zrobić tak:

na pewno tylko na 9.x bo mi się wydaje że na XP także,
może najbezpieczniej dać w rejestrze program.exe "%1" i jest git...

0

w windowsie 95 jak w rejestrze było "%1" to nie było problemów, poza tym jak uuchamiany był program z konsoli to ludzie powinni wpisywac ścieżkę w """" i działa bez żadnych petelek (przynajmniej na wszystkich systemach na których próbowałem takich numerów (czyli: Win 95 OSR1, Win 95 OSR2, Win 98, Win 98SE, Win ME, Win 2000 Pro, Win XP pro))

0

Tu nie chodzi o sprawy rejestru, a co jeśli ktoś weźnie PPM i "otwórz za pomocą", następnie wybierze nasz program.. - zatem bezpieczniej jest dać moją procedurę "łączenia parametrów"...

0

dzieki
dopisałem cudzusłów tzn "%1" i działa tylko z ParamStr(1) ; :)

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