Strona 1 z 1

Otwieranie katalogu

PostNapisane: Pt paź 29, 2010 11:25 am
przez pruszko
Witam Wszystkich :D

Mam znowu prośbę o pomoc :)
takie oto makro w pliku calc które otwiera mi wybrany katalog:

Kod: Zaznacz cały   Rozszerz widokZwiń widok
REM  *****  BASIC  *****
Sub otworz_katalog()
Dim FP As Object
Dim ShExec As Object
Dim X As Integer
FP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
FP.SetDisplayDirectory("C:\Documents and Settings\PiotrP\Moje dokumenty\")
FP.appendFilter("All files", "*.*")
X = FP.Execute()
If X = 1 Then
ShExec = createUnoService("com.sun.star.system.SystemShellExecute")
ShExec.execute(FP.Files(0), "", 0)
End If
End Sub

no i wsio ok, ale teraz mam potrzebę aby to makro otwierało katalog, w którym jest zapisany ten plik , w którym to makro jest zaszyte. Tzn jak wyślę komuś plik calc z makrem to nie wiem gdzie on sobie go zapisze więc nie jestem w stanie okreslić w tym makrze ścieżki. Makro to ma otwierać lokalizację pliku , he ale jak to zrobić? :?

Re: Makro w Calku otwierające katalog

PostNapisane: Pt paź 29, 2010 12:02 pm
przez Jan_J
W miejsce
Kod: Zaznacz cały   Rozszerz widokZwiń widok
  FP.SetDisplayDirectory("C:\Documents and Settings\PiotrP\Moje dokumenty\")
wstaw
Kod: Zaznacz cały   Rozszerz widokZwiń widok
  dim n as integer
  q = split(thisComponent.Location, "/")
  n = ubound(q)
  redim preserve q(n-1)
  FP.SetDisplayDirectory(join(q, "/") & "/")
Da się to napisać ładniej.

Czy o to chodziło?

Re: Makro w Calku otwierające katalog

PostNapisane: Pt paź 29, 2010 12:14 pm
przez pruszko
Tak o to chodziło! :D
Do prawdy jestem pod wrażeniem
Wielkie dzięki! :D

Re: Otwieranie katalogu

PostNapisane: Pt paź 29, 2010 6:06 pm
przez pruszko
Jan,
Dopiero teraz udało mi się dokonac testu na innym kompie.
Efekt jest taki że otwiera się katalog z programem OpenOffice a nie puplit gdzie umieściłem ten plik, coś jest nie tak chyba. A może to dla tego że ten komputer ma vistę?

Re: Otwieranie katalogu

PostNapisane: Pt paź 29, 2010 10:05 pm
przez Jan_J
Kod obliczający kartotekę przez usunięcia nazwy pliku jest niezależny od systemu.
OpenOffice używa "/" jako separatora katalogów w ścieżce, tak jak w URL-ach, także pod Windows.

Trudno mi w tym momencie samemu sprawdzić, bo nie mam Windowsa XP pod ręką, a Visty w ogóle.