вторник, 15 мая 2012 г.

Выход из .NET программы

В WinForms приложениях для завершения работы программы существует метод Application.Exit(). Для того чтобы немедленно завершить работу консольного приложения, нужно выполнить следующую команду:
Environment.Exit(0);
Метод Environment.Exit(int exitCode) является аналого сишной функции exit(int code).

воскресенье, 6 мая 2012 г.

Ввод строки с консоли в Java

Запрос ввода строки с консоли в Java выполняет следующий фрагмент кода:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = in.readLine();
В C# ввод строки с консоли реализуется так:
Console.ReadLine();

Запрос .NET программой прав администратора при запуске

Для того чтобы при запуске программы на C# выводился запрос на получение прав администратора нужно:
Добавить в проект Visual Studio файл монифеста Project->New Item->Application Manifest File
В добавившемся файле заменить строку:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
на следующую:
<requestedExecutionLevel level="requireAdministrator" uiaccess="false" />
После этого рядом с иконкой программы появится картинка щита, указывающая что запуск программы требует прав администратора.

пятница, 4 мая 2012 г.

Apache + PHP + PostgreSQL

В Windows может быть недостаточно подключить к PHP расширение php_pgsql.dll для того чтобы коннект к базе работал. В случае если при попытке подключиться в PostgreSQL, PHP выдает одну из следующих ошибок:
  • Call to undefined function pg_connect();
  • PDOException: could not find driver,
убедитесь что правильно настроили расширение php_pgsql:
  • добавили или раскоменторовали строки extension=php_pgsql.dll и extension=php_dbo_pgsql.dll в файле php.ini;
  • перезагрузке веб-сервер.
Проверьте выводит ли информацию о расширении phpinfo(), если нет - расширение не загрузилось.
В этом случае в конфигурационный файл httpd.conf нужно добавить строку:
LoadFile "C:\Program Files\PostgreSQL\9.1\bin\libpq.dll"
и перезагрузить веб-сервер.

вторник, 10 апреля 2012 г.

C#: Чтение файла без блокировки

Для того чтобы прочиталь файл без блокировки его на запись и удаление другими процессами, нужно открыть его следующим образом:
FileStream stream = new FileStream(pathName, FileMode.Open, 
FileAccess.Read, FileShare.ReadWrite | FileShare.Delete);

суббота, 31 марта 2012 г.

Массивы PHP и SplFixedArray

Оказывается, под любой элемент массива в PHP выделяется 144 байта. Почему, написано в этой статье http://habrahabr.ru/post/141093/. Для того чтобы сэкономить оперативную память при работе с большими массивами, можно использовать класс SplFixedArray. При использовании этого класса, можно экономить 88 байт на элемент (под каждый элемент выделяется всего 56 байт:).