Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение порции двоичных данных, из памяти (переменной) 
V
    Опции темы
vitaly1979
Дата 17.4.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



например чтобы не сохранять-открывать-читать картинку с диска при работе с ImageMagick
нужно прочитать по 57 байт из blob-а в и закодировать в base64 и сразу в браузер
base64 нужен

Добавлено @ 22:18 
substr на нулевых символах не споткнется? 
PM MAIL   Вверх
korob2001
Дата 18.4.2006, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Не споткнётся, если включишь прагму компилятора bytes, т.е.:
Код

# Работаем со строками
my $size = length("строка");

# Переключаемся на работу с байтами
use bytes;
# Здесь length уже будет работать не символами, а с байтами, соответственно размер она будет
# возвращать в байтах.

my $size = bytes::length("Строка");

Тоже самое отнисится и substr.
Код

my $first = bytes::substr($str, 0, 1);

Для того, что бы вернуться в режим работы со строками, нужно отключить эту прагму:
Код

no bytes;

Эта прагма с лексической областью видимости, потому можешь подключать её непосредственно в нужно м блоке и там же отключать. Например:
Код

#!/usr/bin/perl
my $str = "This is a test variable";

sub bytes_length {
       my $str = shift;
       use bytes;
       my $length = bytes::length($str);
       no bytes;
       return $length;
}

print "Size in simbols is: " . length($str) . "\n";
print "Size in bytes is: " . bytes_lengh($str) . "\n";

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


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
vitaly1979
Дата 18.4.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



хвала экспертам!
за столь подробный ответ 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.