Google Chrome почти заменил мне ось =(

Раньше пользовался FireFox'ом и был доволен. Особенно плагином ADBlock. Но однажды Лис дал сбой и пришлось его выпилить. С тяжелым камнем на сердце установил я Google Chrome (будь он не ладен). Из-за этого пришлось искать ADBlock в виде приложения, и начать думать по поводу установки Outpost Firewall'а.

Но сегодня я понял, что все компенсировалось за счет плагинов Хрома (даже тот факт, что для каждой вкладки, зараза выделяет дополнительный процесс). Мой экран весь улеплен записками (встроенное приложение Windows Seven). Но плагин Quick Note намного лучше! А вместе с Flash Cards для небольших тренировок памяти вообще незаменим. Нужен был метроном - он есть (Basitempo), клиент Evernote, Gmail, игры... В общем перехожу на Chrome окончательно.

28 декабря, 0:13
206

Заметка быдла пишущего ногами, запись III

Рекурсивный метод удаления файлов и вложенных папок по заданному пути:

function KillDir (Dir: AnsiString): boolean;
var
  Sr: SysUtils.TSearchRec;
begin
{$I-}
  if (Dir <> '') and (Dir[length(Dir)] = '\') then
    Delete(Dir, length(dir), 1);
  if FindFirst(Dir + '\*.*', faDirectory + faHidden + faSysFile +
    faReadonly + faArchive, Sr) = 0 then
    repeat
      if (Sr.Name = '.') or (Sr.Name = '..') then
        continue;
      if (Sr.Attr and faDirectory <> faDirectory) then
   begin
if AnsiLowerCase(ExtractFileExt(sr.Name)) = '.tmp' then 
 begin
        FileSetReadOnly(Dir + '\' + sr.Name, False); 
        DeleteFile(Dir + '\' + sr.Name);
 end
   end
      else
        KillDir(Dir + '\' + sr.Name);
    until FindNext(sr) <> 0;
  FindClose(sr);
  RemoveDir(Dir); // Удалит пустой каталог
  KillDir := (FileGetAttr(Dir) = -1);
end;
 
24 декабря, 18:15
183

Beeline ^_^

Дело было вечером, делать было нечего.

Открыл я значит "Сеть", уныло глянул и увидел кучу сторонних компов в сети. Возник вопрос - откуда? о_О Спасибо Beeline и его "Домашнему интернету", мало того что интернет мне протянули, так еще и локальную сеть тем самым организовали по подъезду.

На всякий случай потыкал по каждому компу, и о чудо, один из них включен и не защищен паролем ^_^ Кинул ему в Shared Docs тестовую папку (как раз для курсача нужен был локальный комп, для проверки получения файлов о_О). Спасибо STAS (так по крайней мере зовут комп без пароля), курсач писать стало удобнее ^^

Осталось надеяться на то, что этот самый Стас не поставит пароль, не узнает что в общем разделе я у него папку храню и не даст мне пиздюлей) Интересно, кто этот Стас оО

15 декабря, 15:19
208

Заметки быдла пишущего ногами, запись II

Для импорта Excel из файла в таблицу:

uses
  ComObj;

function Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
const
  xlCellTypeLastCell = $0000000B;
var
  XLApp, Sheet: OLEVariant;
  RangeMatrix: Variant;
  x, y, k, r: Integer;
begin
  Result := False;
  // Create Excel-OLE Object
  XLApp := CreateOleObject('Excel.Application');
  try
    // Hide Excel
    XLApp.Visible := False;

    // Open the Workbook
    XLApp.Workbooks.Open(AXLSFile);

    // Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];

    // In order to know the dimension of the WorkSheet, i.e the number of rows
    // and the number of columns, we activate the last non-empty cell of it

    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
    // Get the value of the last row
    x := XLApp.ActiveCell.Row;
    // Get the value of the last column
    y := XLApp.ActiveCell.Column;

    // Set Stringgrid's row &col dimensions.

    AGrid.RowCount := x;
    AGrid.ColCount := y;

    // Assign the Variant associated with the WorkSheet to the Delphi Variant

    RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
    //  Define the loop for filling in the TStringGrid
    k := 1;
    repeat
      for r := 1 to y do
        AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R];
      Inc(k, 1);
      AGrid.RowCount := k + 1;
    until k > x;
    // Unassign the Delphi Variant Matrix
    RangeMatrix := Unassigned;

  finally
    // Quit Excel
    if not VarIsEmpty(XLApp) then
    begin
      // XLApp.DisplayAlerts := False;
      XLApp.Quit;
      XLAPP := Unassigned;
      Sheet := Unassigned;
      Result := True;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Xls_To_StringGrid(StringGrid1, 'C:\Table1.xls') then
    ShowMessage('Table has been exported!');
end;

Исходник немного спорный, но всё же полезный. Запостил, чтобы потом не искать.

2 декабря, 17:15
185

Cон I

Позавчера приснилось что убил человека и попытался скрыться в другом городе. Надеюсь не сбудется.

Сегодня с утра уронил моноблок и в итоге на дисплее образовалась сравнительно небольшая трещина. Работе не мешает, но вид всё же портит. Очень грустно. Замена дисплея стоит 113(+7.5) тысяч. Немного добавить, и просто можно покупать новый моноблок...

7 ноября, 13:00
153

Заметки быдла пишущего ногами, запись I

Для отображения русского языка при пропускании его через недоделанный Zeos в zConnection нужно добавить: ZConnection1.Properties.Append('codepage=cp1251');

P.S. Забыл как в Turbo Pascal ставить однострочный комментарий о_О Двойной слэш работать отказался.

27 октября, 21:15
291

Не понимаю

Не понимаю я метафоричного языка Хулио Кортасара. Не понимаю. Пытаюсь прочесть "Жизнь хронопов и фамов", но после каждого отрывка у меня происходит надрывание шаблона в 5 местах...

27 октября, 13:50
201

Общественный транспорт

Какой вид общественного транспорта (и желательно номер) ходит до Городской клинической больницы №7 (той что в Калкамане)?

Поправка - г.Алматы

23 октября, 19:10
178

MySQL+Delphi+Zeos7 (удалённый доступ)

Задание: организовать простое клиент-серверное приложение для работы с СУБД MySQL для нескольких машин.

Что сделано на данном этапе: создано простое клиент-серверное приложение которое работает пока только локально с MySQL. При переносе приложения на другую машину и запуске, выдает ошибку Can't connect to MySQL server on '127.0.0.1' (10061).

IP сервера 127.0.0.1, порт 3306, выполняю в приложении вход под рутом (пользователь root). Появилась идея, что под рутом зайти можно только с машины на которой поставлен сервер, то есть для новой машины - нужно создавать отдельного пользователя (пусть и со всеми правами).

Вопрос - как это сделать? Как именно должен выглядеть запрос создания нового пользователя для определенной (и не очень) машины, чтобы был доступ к серверу?

Cyberforum пока отмалчивается.

21 октября, 19:17
218

Запись V - Тоска

Запись V - Тоска

Проснулся по зову будильника, не обычно. Как-то смог расслышать его сквозь играющее радио Тенгри (уже несколько месяцев не могу заснуть без играющей музыки). Утро выдалось серым.

Чашка сваренного ночью супа, ICEReader и "Охота на овец" Мураками. 40 минут тоскливого, "тягучего и безвкусного, как растаявшее желе" настроения. Закончив завтрак, сел в кресле боком, подобрал ноги и прислонился к спинке. Почувствовал еще большую тоску.

"Протупил" несколько минут. Наверное в книжном шкафу будет дырка. Сходил на кухню, чай (сволочь) в заварнике закончился (странно, русский словарь FireFox не знает слова заварник и Firefox). Пришлось наливать себе ненастоящий кофе, с ненастоящим концентрированным молоком, да и сахар рафинированный...

Через 10 минут на выход. По обыкновению натяну пальто, повяжу как попало шарф и отправлюсь по делам. И так будет до весны.

В понедельник обязательно съезжу в больницу...

21 октября, 7:45
182
  • 2
  • 1