среда, 2 ноября 2011 г.

Незнал

У Perl:

my @arr;
push @arr,'element';


В PHP:

$arr = array();
$arr[] = 'element';


Вот такой push в PHP

пятница, 14 октября 2011 г.

Почему и нет?

Вот удивляюсь почему в Perl нет унарных правых циклов?

Ну как бы красиво смотрелось print("Daesh molodeshz!") for($i=0;$i<10;$i++);

Почему унарные условия есть, а циклы (те-же яйца только в профиль) нету?

Чтож за убожество писать for($i=0;$i<10;$i++) {print("Daesh molodeshz!")}

среда, 11 мая 2011 г.

Алкоголь - это зло

И точка.

И такое чувство что я это уже писал...

пятница, 8 апреля 2011 г.

PHP – гавно

В конце зимы, наша фирма взяла новый проект, который нужно было срочно сделать до конца марта, и который , билиать, должен быть сделан на PHP, потому что, гребанные программисты из депо из контры не разберутся.

Ну что же – партия сказала надо – комсомол ответил есть. Начали писать, да мне вообще побоку на каком скриптовом языке писать, пусть сегодня на PHP.

Куча кода (действительно несколько сотен килобайт) – база (билиать вы не поверите – mysql), однако к сегодняшнему дню все работает, даже база (что стоит сказать мускул не так уж плох, как я раньше думал – почти миллион записей – работает, ежели конечно от туда чего нить не удалить – тогда жопа).

Но язык – ужас, одним словом – выкидыш от C и Perl. Но простой и легкий. Как ежик – как и все PHP-программисты.

пятница, 11 февраля 2011 г.

Жизнь и Хмель

Довольное время я приходя с работы, покупал пару не пару пива, и начинал кодить.

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

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

Сегодня, у девочки из бухгалтерии было день рождения, и потому выпили. Чуть-чуть, за здоровье, ножки и прочие части именинницы.

Думал сегодня чего-нить дописать, и понял максимум - что смогу - это эту запись в блог.
Зато Мариночка так страстно поцеловала на прощание ;)

вторник, 25 января 2011 г.

Строки и функции с ними

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

Сегодня рассмотрим функции, которые можно использовать на кошках строках.

Отмечу, что легко написать свои аналогичные функции и они будут выполняться также быстро, как и библиотечные (в этом и прелесть Си), но с другой стороны на какой изобретать велосипед?
Начнем-с.

Длина строки strlen - возвращает количество символов до символа \0. При передаче мусора – программа может выпасть или зависнуть, если будет искать этот самый символ бесконечно.
Возвращает – без знаковое целое число (unsigned int), что в принципе логично – длина строки явно положительная величина.

Копировать строку в строку strcpy. Копирует в заданную строку, другую без ограничения размера первой строки, пока у второй строки не попадется символ \0, символ \0 также копируется. Синтаксис strcpy(v, ”Hello”);

Для копирования определенного количества символов нужно использовать strncpy, где указывается количество копируемых символов, также не контролируется размер исходной строки, синтаксис strncpy(v, ”Hello”, 4), но в этом случае символ \0 не добавляется в конец исходной строки (иными словами strncpy это алиас memcpy и не более того)


Поиск заданного символа в строке strchr - возвращает указатель на символ, либо NULL, если символа увы нет. Синтаксис - v=strchr(str,'a'), где v, указатель на char (char *).

Поиск заданной подстроки в строке strstr - возвращает указатель на первый символ в строке в случае успеха, а в случае неудачи возвращает… NULL!
Синтаксис: v = strstr(str, "Hello");

Сравнение строк strcmp - возвращает 0 в случае полного сравнения, 1 если первая строка больше, -1 если меньше. Больше и меньше – это конечно по ASCII-коду символа, который не совпал. Удобно для сортировки.
У функции есть более прогрессивный потомок strncmp, который также сравнивает строки, но только до определенной позиции(длины).
Синтаксис: strncmp(str, "hello", 4) - т.е. добавилось только количество сравниваемых символов.

Даже не знаю, что добавить. Хотя, помню когда я пришел в Си из Бейсика мне часто не хватало функции MID, или substr.

Ответ пришел очевиден – допустим нужно сравнить строку на совпадение трех символов, начиная с второго как 'ID:', а последующие 4 тогда определить как число. Исходная строка: xID:0034User
В Си if ( (v = strnstr(str+1,’ID:’))) {strncpy(temp,str+4,4);temp[4]=0;id=atoi(temp);}