Экспорт через dialog

Автор ali_vlad, 7 марта 2025, 21:07

0 Пользователи и 1 гость просматривают эту тему.

ali_vlad

Есть скрипт выгрузки диапазонов ячеек в текстовый файл. В скрипте жестко прописан путь выгрузки. Хочу сделать через диалог сохранения файла, чтобы можно было выбрать путь для сохранения, но самому мозгов не хватает.
Файл будет открываться под линуксом в LOO, а так у каждого пользователя свой уникальный путь (например /home/aaa/ivavovap), то и путь сохранения у каждого свой.
Прошу сильно не ругать, так как у самого не хватило мозгов понять dialog
Sub saveTXT()
dim col,row as integer
dim stroka as string
oDoc = ThisComponent.Sheets(0)
FName = oDoc.getCellbyPosition(2,0).String &" остатки на "& oDoc.getCellbyPosition(1,0).String & ".txt"
Open "D:\" & FName for OutPut as #1'вот тут надо вызвать диалог сохранения файла
For row = 1 to 4
for col = 1 to 8
stroka=stroka + oDoc.getCellbyPosition(col,row).string
if col <8 then
stroka=stroka+";"
else
stroka=stroka+"."
end if
next col
Print #1, stroka
stroka=""
Next row

For row = 12 to 15
stroka=stroka+oDoc.getCellbyPosition(1,row).string+";"+oDoc.getCellbyPosition(2,row).string+";"+oDoc.getCellbyPosition(4,row).string+";"+oDoc.getCellbyPosition(5,row).string+"."
Print #1, stroka
stroka=""
Next row
Close #1
End sub 
экспорт.ods

sokol92

Попробуйте добавить такой фрагмент (вместо строки Open ...):

Dim oFolderPicker As Object, folder As String
oFolderPicker = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
With oFolderPicker
  .setTitle "Укажите каталог для сохранения файла " & Fname
  If .execute()=0 Then
    Msgbox "Каталог не выбран!"
    Exit Sub
  End If
  folder=.getDirectory()
End With

Open folder & "/" & FName for OutPut as #1
Владимир.

ali_vlad

#2
Переменная folder имеет значение "file:///D:/"
Пришлось применить костыль по откидыванию лишнего текста лева
folder=mid(folder,9,2)

mikekaganski

Цитата: ali_vlad от  8 марта 2025, 17:01Придется применить костыль по откидыванию лишнего текста лева

Этот костыль называется ConvertFromURL.
С уважением,
Михаил Каганский

sokol92

Цитата: ali_vlad от  8 марта 2025, 17:01Придется применить костыль
Насколько я понимаю, знак "/" в конце будет только при записи файла в корневой каталог диска Windows. Никогда так не делайте!  :)
 
Владимир.

ali_vlad

Цитата: sokol92 от  8 марта 2025, 17:20
Цитата: ali_vlad от  8 марта 2025, 17:01Придется применить костыль
Насколько я понимаю, знак "/" в конце будет только при записи файла в корневой каталог диска Windows. Никогда так не делайте!  :)
 
Ещё раз внимательно прочитайте самое первое сообщение

ali_vlad

Цитата: mikekaganski от  8 марта 2025, 17:08
Цитата: ali_vlad от  8 марта 2025, 17:01Придется применить костыль по откидыванию лишнего текста лева

Этот костыль называется ConvertFromURL.
Огромное спасибо,это то, что нужно