Вопрос № 173218: Здравствуйте, уважаемые эксперты Помогите пожалуйста разобраться с ошибкой при работе с OLE. Необходимо открыть уже существующий файл, использовать его как шаблон, и выполнить определенные преобразования над ним. По статьям из интернета наброс...
Вопрос № 173228: Здраствуйте Уважаемые эксперты, Написал програмку под windows, использовал функцию из conio.h kbhit() теперь хочю зделать чтобы програма компилировалась и под linux, но как я понел conio.h в линуксе нету, подскажите как решить эту проблему? т.е. м...
Вопрос № 173218:
Здравствуйте, уважаемые эксперты Помогите пожалуйста разобраться с ошибкой при работе с OLE. Необходимо открыть уже существующий файл, использовать его как шаблон, и выполнить определенные преобразования над ним. По статьям из интернета набросал код, приведенный в приложении, но проблема с открытием файла 1.xls, программа почему то его не видит в строке app.OlePropertyGet("Workbooks").OleProcedure("Add","1.xls") и выдает ошибку. Этот файл точно лежит в папке с программой,
FileExists("1.xls") это подтверждает... Если прописывать путь в явном виде, например "D:\\1.xls" то все работает. В чем может быть ошибка? p.s. программа пишется в среде c++ builder 6
Отвечает amnick, 3-й класс :
Здравствуйте, Блок Иван/ Blin. Насколько я понимаю, проблема в текущих каталогах — они разные для Вашего приложения и Excel. Файл 1.xls находится в текущем каталоге Вашего приложения, поэтому FileExists("1.xls") его находит. А вот для Excel текущий каталог — другой, и поэтому требуется указывать полный путь ("D:\\1.xls"). Мой подход — всегда передавать полный путь, во избежание подобных недоразумений.
Вот цитата от Microsoft (http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/Mixture/FileSystem/165.mspx): Что
такое каталоги Windows и System — в целом понятно. Их имена раз и навсегда жестко фиксируются в момент инициализации Windows. С текущим каталогом дела обстоят посложнее. Это каталог, где содержится запущенное на выполнение приложение. Соответственно, если вы запускаете Tip164.vbp в среде VB, то текущим будет каталог, где находится VB. Если же вы создадите и запустите автономное приложение Tip164.exe, то текущим будет каталог, где ра
змещается этот файл.
успехов
Ответ отправил: amnick, 3-й класс
Ответ отправлен: 12.10.2009, 21:23
Оценка ответа: 5 Комментарий к оценке: спасибо, почему то не подумал,что Excel может использовать другой каталог...решил проблему использованием ф-ии _fullpath из библиотеки stdlib
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 255352
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 173228:
Здраствуйте Уважаемые эксперты, Написал програмку под windows, использовал функцию из conio.h kbhit() теперь хочю зделать чтобы програма компилировалась и под linux, но как я понел conio.h в линуксе нету, подскажите как решить эту проблему? т.е. может есть какой-нибуть аналог функции kbhit() под линукс? заранее спасибо.
Отвечает vladisslav, 5-й класс :
Здравствуйте, Станислав. Можно проверять наличие данных, доступных для чтения из стандартного ввода, с помощью ioctl FIONREAD #include <sys/ioctl.h> int kbhit() { size_t size=0; ioctl(stdin,FIONREAD,&size); return (size>0); };
Правильный код:
Код:
#include <iostream> #include <termios.h> #include <sys/ioctl.h> using namespace std; //----------------------------------------------------- void ReadKey() { static const int ciSTDIN = 0; static bool bInitialized = false; int iSize = 0;
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.