Есть скрипт выгрузки диапазонов ячеек в текстовый файл. В скрипте жестко прописан путь выгрузки. Хочу сделать через диалог сохранения файла, чтобы можно было выбрать путь для сохранения, но самому мозгов не хватает.
Файл будет открываться под линуксом в 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
Попробуйте добавить такой фрагмент (вместо строки 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
Переменная folder имеет значение "file:///D:/"
Пришлось применить костыль по откидыванию лишнего текста лева
folder=mid(folder,9,2)
Цитата: ali_vlad от 8 марта 2025, 17:01Придется применить костыль по откидыванию лишнего текста лева
Этот костыль называется ConvertFromURL (https://help.libreoffice.org/latest/en-US/text/sbasic/shared/03120313.html?DbPAR=BASIC).
Цитата: ali_vlad от 8 марта 2025, 17:01Придется применить костыль
Насколько я понимаю, знак "/" в конце будет только при записи файла в корневой каталог диска Windows. Никогда так не делайте! :)
Цитата: sokol92 от 8 марта 2025, 17:20Цитата: ali_vlad от 8 марта 2025, 17:01Придется применить костыль
Насколько я понимаю, знак "/" в конце будет только при записи файла в корневой каталог диска Windows. Никогда так не делайте! :)
Ещё раз внимательно прочитайте самое первое сообщение
Цитата: mikekaganski от 8 марта 2025, 17:08Цитата: ali_vlad от 8 марта 2025, 17:01Придется применить костыль по откидыванию лишнего текста лева
Этот костыль называется ConvertFromURL (https://help.libreoffice.org/latest/en-US/text/sbasic/shared/03120313.html?DbPAR=BASIC).
Огромное спасибо,это то, что нужно