Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Открытие файла Excel в Visual Basic 2010 (http://forum.oszone.net/showthread.php?t=219346)

neo21 31-10-2011 11:41 1785572

Открытие файла Excel в Visual Basic 2010
 
Добрый день! Как открыть файл info.xlsx без за давания его полного пути?
Файл находится в папке Debug и включен в проект.

Delirium 01-11-2011 06:00 1786223

Код:

Application.StartupPath + "\\info.xlsx"

neo21 01-11-2011 13:02 1786404

Решил таким способом:
Код:

Process.Start("info.xlsx", Environment.CurrentDirectory)

Delirium 01-11-2011 13:44 1786430

если вообще не указывать путь, то по умолчанию будет идти поиск сначала в папке с программой, затем в системных папках, ну а если не найдет, то будет ошибка.

neo21 01-11-2011 13:56 1786450

Delirium, Так и есть, Спасибо
Код:

Process.Start("info.xlsx")

neo21 02-11-2011 19:36 1787440

Delirium, как открыть файл info.xlsx без за давания его полного пути в этом примере:

Код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim objXL, objWorkbook  ' Объявляем переменные

        ' Открытие файла
        objXL = CreateObject("Excel.Application")
        objXL.Visible = True

        objWorkbook = objXL.Workbooks.Open("C:\Users\kl27\Desktop\Проэкт\WindowsApplication1\WindowsApplication1\bin\Debug\info.xlsx")

End Sub
End Class


LilLoco 02-11-2011 21:19 1787542

neo21, Если файл info.xlsx будет лежать "рядом" с исполняемым файлом, то можно просто
Код:

objWorkbook = objXL.Workbooks.Open(AppDomain.CurrentDomain.BaseDirectory+"info.xlsx")
Если же нет, то без указания полного пути не обойтись.

LilLoco 02-11-2011 22:02 1787577

Цитата:

Цитата Delirium
то по умолчанию будет идти поиск сначала в папке с программой, затем в системных папках, ну а если не найдет »

Я бы сказал не в папке с программой, а в "текущей" папке. Не всегда же они совпадают? Или я не прав?

Iska 02-11-2011 22:28 1787596

Цитата:

Цитата LilLoco
Или я не прав? »

Правы.

Delirium 03-11-2011 00:50 1787698

Application.StartupPath всегда укажет на ту папку, где лежит exe-файл, поэтому во избежание ошибок лучше все таки указывать эту статическую переменную при прописывании имени файла. И обязательно надо делать проверку существования файла перед запуском:
Код:

if(System.IO.File.Exist(Application.StartupPath + "\\file.xlsx"))
.....
else
MessageBox("File not found");


neo21 03-11-2011 02:37 1787748

LilLoco, Спасибо большое, очень помогли мне.

Iska 03-11-2011 22:21 1788294

Delirium, не понял эту мысль:
Цитата:

Цитата Delirium
…лучше все таки указывать эту статическую переменную при прописывании имени файла. »

Поясните, пожалуйста.

ferget 03-11-2011 23:34 1788316

речь об этом

Код:

public static string StartupPath { get; }

Delirium 04-11-2011 08:54 1788400

Iska, я к тому, что не надо просто указывать имя файла, не указывая перед этим переменную StartupPath. Мало ли что там будет с текущей папкой, и т.д. и т.п. В моем же случае мы 100%-но будем искать файл в той папке, откуда была запущена программа.

михаил5 23-07-2016 14:33 2653462

здравствуйте.
у меня назрел такой вопрос: можно ли в Visual Basic почесть файл любого расширения (текст, картинка, видео, звук, архив, командный файл или файл другого типа) по байтам (1,0), чтобы затем с ними работать (записать байты в масив, применить алгоритмы сжатия, ...).
а затем произвести обратный процесс: собрать из байтов файл исходного типа.
будет ли работать собранный так же, как исходник?
если в Visual Basic такое невыполнимо, то пожалуйста посоветуйте другой язык.

для чего:
хочется написать программу сжатия файлов (наподобие архиваторов rar, zip, ... а заодно ознакомиться с программными тонкостями такого рода софта). все потому, что самый крутой "ужиматель" kgb-arhiver не всегда справляется. а это очень нежелательно, когда нужно паковать кучу мелких файлов, комплексом входящих в одну программу, потом только ищи концы.

извините, что не по теме.

Iska 23-07-2016 14:59 2653467

Цитата:

Цитата михаил5
можно ли в Visual Basic почесть файл любого расширения (текст, картинка, видео, звук, архив, командный файл или файл другого типа) по байтам (1,0), чтобы затем с ними работать (записать байты в масив, применить алгоритмы сжатия, ...). »

Можно.

Цитата:

Цитата михаил5
а затем произвести обратный процесс: собрать из байтов файл исходного типа. »

Можно.

Цитата:

Цитата михаил5
хочется написать программу сжатия файлов (наподобие архиваторов rar, zip, ... а заодно ознакомиться с программными тонкостями такого рода софта). »

А Вы знакомы с базовыми принципами сжатия информации?

Цитата:

Цитата михаил5
потому, что самый крутой "ужиматель" kgb-arhiver не всегда справляется. »

Это как?

михаил5 23-07-2016 20:36 2653541

хорошо, что подобное возможно.
на паскале алгоритм хафмана работает идеально, но только с файлами тхт. хочется расширить возможности.
kgb-arhiver не всегда справляется потому, что если исходник великоват, то распаковка может дать результат с потерями, чего хотелось бы избежать. для видео или фото это мало значимо, а вот программу может повредить.

Iska 24-07-2016 11:26 2653653

Цитата:

Цитата михаил5
на паскале алгоритм хафмана работает идеально, но только с файлами тхт. хочется расширить возможности. »

Алгоритму совершенно без разницы, работать с текстом или не с текстом.

Цитата:

Цитата михаил5
kgb-arhiver не всегда справляется потому, что если исходник великоват, то распаковка может дать результат с потерями, »

Как такое может быть? Если такое действительно имеет место — это явная ошибка в приложении.

михаил5 27-07-2016 14:22 2654514

согласен, алгоритму без разницы, работать с текстом или не с текстом, да вот только функции паскаля, на которых реализуется алгоритм, не позволяют реализовать сжатие файлов exe, mpg, jpg и т. д.
вы сказали, что на Visual Basic можно реализовать побайтовое чтение любого формата файла, и его обратную сборку из байтов до рабочего файла, аналогичного исходнику. это как раз то, что мне и нужно, потому, что данная "универсальность" функций Visual Basic должна позволять написать упаковщик для разных форматов файлов.

что на счет kgb-arhiver, то вероятно вы правы,- может попалась поломанная версия.
тестирование проводилось 1 раз, распаковка длилась 5 часов (из архива 174мгб программа распаковала на 4Ггб). распаковка завершилась "нерабочестью" результата. второй раз тестирование не проводилось.


Время: 06:33.

Время: 06:33.
© OSzone.net 2001-