Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Описание класса QByteArray
[модуль QtCore]

Класс QByteArray предоставляет массив байт. Далее...

 #include <QByteArray>

От него наследуется Q3CString.

Замечание: Все функции в этом классе реентерабельны.

Открытые функции

Статические открытые члены

Связанные не-члены


Подробное описание

Класс QByteArray предоставляет массив байт.

QByteArray может быть использован для хранения как сырых байт (включая и '\0'), так и традиционных 8-битных нуль-терминированых строк. Использование QByteArray много более удобно, чем использование const char *. Здесь всегда гарантировано, что данные завершаются '\0' и используется неявное совместное использование данных (copy-on-write) для экономии памяти и избежания ненужного копирования данных.

В дополнение к QByteArray, Qt также предоставляет класс QString для хранения строковых данных. Для большинства случаев вам больше подойдет класс QString. Он хранит 16-битные символы Unicode, делая более простым сохранение не-ASCII/Latin-1 символов в вашем приложении. Кроме того, QString используется всюду в Qt API. Два основных случая, когда нужно применять QByteArray - когда нужно хранить сырые двоичные данные и когда приложение критично к памяти (например, в Qtopia Core).

Один из способов инициализации QByteArray - просто передать const char * в конструктор. Например, следующий код создает массив из 5 байт, содержащий данные "Hello":

 QByteArray ba("Hello");

Несмотря на то, что size() равен 5, байтовый массив также содержит в конце дополнительный символ '\0', так что, если используется функция, требующая указатель на непосредственно данные, (т.е. вызов data()), то эти данные будут гарантированно заканчиваться '\0'.

QByteArray делает полную копию данных const char *, так что вы можете модифицировать их без возникновения побочных эффектов. (Если, из соображения производительности, вы не хотите делать полное копирование данных, используйте QByteArray::fromRawData().)

Другой способ - установить размер массива, используя resize() и инициализировать данные байт за байтом. QByteArray использует индексы начинающиеся с 0, как принято в массивах C++. Для доступа к байту в конкретной позиции индекса, вы можете использовать оператор [](). В неконстантных массивах оператор []() возвращает ссылку на байт, которая может быть использована с левой стороны операции присваивания. Например:

 QByteArray ba;
 ba.resize(5);
 ba[0] = 0x3c;
 ba[1] = 0xb8;
 ba[2] = 0x64;
 ba[3] = 0x18;
 ba[4] = 0xca;

Для доступа "только для чтения", существует альтернативный синтаксис at():

 for (int i = 0; i < ba.size(); ++i) {
     if (ba.at(i) >= 'a' && ba.at(i) <= 'f')
         cout << "Found character in range [a-f]" << endl;
 }

at() может работать быстрее, чем оператор [](), потому что при этом не происходит полного копирования.

Чтобы извлечь множество байт за раз, используйте left(), right() или mid().

QByteArray может вставлять байты '\0'. Функция size() всегда возвращает размер всего массива, включая вставленные '\0'. Если вы хотите получить длину данных вплоть до первого символа '\0', но не включая его, вызовите для массива qstrlen().

После вызова resize(), перераспределенные байты будут иметь неопределенные значения. Чтобы установить все байты в конкретные значения, вызовите fill().

Чтобы получить указатель непосредственно на символьные данные, вызовите data() или constData(). Эти функции возвращают указатель на начало данных. Указатель гарантировано остаётся правильным до тех пор, пока не будет вызвана неконстантная функция на QByteArray. Это также гарантирует, что данные заканчиваются байтом '\0'. Этот байт '\0' автоматически предоставляется классом QByteArray и не учитывается в size().

QByteArray предоставляет следующие основные функции для модификации байт данных: append(), prepend(), insert(), replace() и remove(). Например:

 QByteArray x("and");
 x.prepend("rock ");         // x == "rock and"
 x.append(" roll");          // x == "rock and roll"
 x.replace(5, 3, "&");       // x == "rock & roll"

В функциях replace() и remove() первые два аргумента указывают на позицию, от которой начинается удаление, и количество байт, которое должно быть удалено.

Когда вы добавляете данные с помощью append() в непустой массив, масив будет перераспределен (в памяти) и новые данные будут скопированы в него. Вы можете избежать этого поведения, вызвав функцию reserve(), которая выделит точное количество памяти. Вы также можете вызвать capacity(), чтобы узнать, как много памяти занимает QByteArray в действительности. Данные, добавляемые в пустой массив, не копируются.

Частое требование - удалить пробельные символы (whitespace) из массива ('\n', '\t', ' ' и т.п.). Если вы хотите удалить пробельные символы с обоих концов QByteArray, используйте trimmed(). Если вы хотите удалить пробельные символы с обоих концов и заменить последовательные пробельные символы одним пробелом внутри байтового массива, используйте simplified().

Если вы хотите найти все совпадения конкретного символа или подстроки в QByteArray, используйте indexOf() или lastIndexOf(). Первая функция осуществляет поиск вперед от указанной позиции, а последняя - осуществляет поиск назад. Обе функции возвращают индекс позиции символа или подстроки, если они были найдены, в противном случае возвращается -1. Например, здесь приведен типичный цикл, который находит все совпадения конкретной подстроки:

 QByteArray ba("We must be <b>bold</b>, very <b>bold</b>");
 int j = 0;
 while ((j = ba.indexOf("<b>", j)) != -1) {
     cout << "Found <b> tag at index position " << j << endl;
     ++j;
 }

Если вы просто хотите только проверить, содержит ли QByteArray конкретный символ или подстроку, используйте contains(). Если вы хотите узнать, сколько раз конкретный символ или подстрока встречаются в массиве, используйте count(). Если вы хотите заменить все совпадения конкретного значение на другое, используйте одну из двух перегруженных функций replace() принимающих два параметра.

QByteArray могут сравниваться, используя перегруженные операторы такие, как<(), <=(), ==(), >=() и т.д. Сравнение базируется исключительно на числовых значениях символов и и очень быстро, но это не то, что ожидал бы человек. Функция QString::localeAwareCompare() - лучший выбор для сортировки строк пользовательского интерфейса.

По историческим причинам, в QByteArray существует различие между неинициализированным (null byte) массивом и пустым (empty) массивом. Неинициализированный (null) массив - это массив, который инициализируется с помощью конструктора QByteArray по умолчанию или конструктором с аргументом (const char *)0. Пустой (empty) массив - это любой массив, имеющий размер 0. Неинициализированный (null) массив всегда пустой (empty), но пустой массив необязательно будет неинициализированным:

 QByteArray().isNull();          // вернёт true
 QByteArray().isEmpty();         // вернёт true

 QByteArray("").isNull();        // вернёт false
 QByteArray("").isEmpty();       // вернёт true

 QByteArray("abc").isNull();     // returns false
 QByteArray("abc").isEmpty();    // вернёт false

Все функции, за исключением isNull(), рассматривают неинициализированный (null) массив, как пустой (empty). Например, data() вернет указатель на '\0' для неинициализированного (null) массива (не указатель null), а QByteArray(), при сравнении, равен QByteArray(""). Мы рекомендуем вам всегда использовать isEmpty() и избегать isNull().

Обратите внимание на сравнение 8-битовых символов

В QByteArray понятие о верхнем и нижнем регистре символов, и который из символов "больше чем" или "меньше чем" другой - являются зависимыми от локали. Это касается функций, которые поддерживают параметры регистрозависимости или, которые сравнивают свои аргументы в верхнем или нижнем регистрах. Нерегистрозависимые операции и сравнения будут точны, если обе строки содержат только ASCII символы. (Если установлен $LC_CTYPE, большинство Unix систем делают "правильные вещи".) Это касается следующих функций contains(), indexOf(), lastIndexOf(), operator<(), operator<=(), operator>(), operator>=(), toLower() и toUpper().

Это вопрос не касается строк QString, так как они представляют символы используя Unicode.

Смотрите также QString и QBitArray.


Описание функций-членов

QByteArray::QByteArray ()

Конструирует неинициализированный байтовый массив.

Смотрите также isEmpty().

QByteArray::QByteArray ( const char * str )

Конструирует байтовый массив, проинициализированный строкой str.

QByteArray делает глубокую (полную) копию строки.

QByteArray::QByteArray ( const char * data, int size )

Конструирует байтовый массив, содержащий первые size байт из массива data.

Если data равен 0, создастся неинициализированный массив.

QByteArray делает глубокую (полную) копию строки.

Смотрите также fromRawData().

QByteArray::QByteArray ( int size, char ch )

Конструирует байтовый массив размером size, каждый байт которого проинициализирован символом ch.

Смотрите также fill().

QByteArray::QByteArray ( const QByteArray & other )

Создаёт копию other.

Эта операция требует постоянного времени, потому что QByteArray является классом с неявным совместным использованием данных. Это делает возвращение QByteArray, как результата функции, очень быстрым. Если экземпляр с разделением данных изменяется, то он будет скопирован (copy-on-write), и это потребует линейного времени.

Смотрите также operator=().

QByteArray::~QByteArray ()

Уничтожает байтовый массив.

QByteArray & QByteArray::append ( const QByteArray & ba )

Добавляет массив ba в конец этого массива.

Пример:

 QByteArray x("free");
 QByteArray y("dom");
 x.append(y);
 // x == "freedom"

То же самое, что и insert(size(), ba).

Обычно, это очень быстрая операция (занимающая постоянное время), потому что QByteArray резервирует дополнительное место после данных так, что он может расти без перераспределения внутренних данных при каждом изменении размера массива.

Смотрите также operator+=(), prepend() и insert().

QByteArray & QByteArray::append ( const QString & str )

Это перегруженная функция, предоставленная для удобства.

Добавляет строку str в этот массив. Данные в кодировке Unicode конвертируются в 8-битныные символы с помощью QString::toAscii().

Если QString содержит не-ASCII Unicode символы, использование этой функции может привести к потере информации. Вы можете запретить эту функцию объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вы должны будете явно вызвать QString::toAscii() (или QString::toLatin1(), или QString::toUtf8(), или QString::toLocal8Bit()) , если вам нужно конвертировать данные в const char *.

QByteArray & QByteArray::append ( const char * str )

Это перегруженная функция, предоставленная для удобства.

Добавляет строку str в этот массив.

QByteArray & QByteArray::append ( char ch )

Это перегруженная функция, предоставленная для удобства.

Добавляет символ chв этот массив.

const char QByteArray::at ( int i ) const

Возвращает символ из массива находящегося в позиции с индексом i.

i должен быть действительным индексом в массиве (т.е. 0 <= i < size()).

Смотрите также operator[]().

int QByteArray::capacity () const

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

Единственная цель этой функции обеспечить оптимальное использование памяти в QByteArray . Вообще, у вас крайне редко возникнет необходимость вызывать эту функцию. Если вы хотите узнать сколько байт находится в массиве, вызовите size().

Смотрите также reserve() и squeeze().

void QByteArray::chop ( int n )

Удаляет n байт из конца массива.

Если n больше чем size(), то вы получите пустой массив.

Пример:

 QByteArray ba("STARTTLS\r\n");
 ba.chop(2);                 // ba == "STARTTLS"

Смотрите также truncate(), resize() и left().

void QByteArray::clear ()

Очищает содержимое массива и делает его пустым.

Смотрите также resize() и isEmpty().

const char * QByteArray::constData () const

Возвращает указатель на данные хранящиеся массиве. Указатель можно использовать для доступа к байтам, которые составляют массив. Данные завершаются символом '\0'. Указатель остается действительным до тех пор, пока массив не будет перераспределен в памяти.

Эта функция наиболее полезна для передачи байтового массива в функцию, которая принимает аргумент const char *.

Замечание: QByteArray может хранить любые значения байт, включая '\0', но большинство функций, которые принимают в качестве аргумента char * предполагают, что данные завершаются первым встретившимся '\0'.

Смотрите также data() и operator[]().

bool QByteArray::contains ( const QByteArray & ba ) const

Возвращает true, если массив содержит в себе массив ba; в противном случае возвращает false.

Смотрите также indexOf() и count().

bool QByteArray::contains ( const char * str ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если массив содержит строку str; в противном случае возвращает false.

bool QByteArray::contains ( char ch ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если массив содержит символ ch; в противном случае возвращает false.

int QByteArray::count ( const QByteArray & ba ) const

Возвращает количество (возможно перекрывающихся) вхождений массива ba в этот массив.

Смотрите также contains() и indexOf().

int QByteArray::count ( const char * str ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает количество (возможно перекрывающихся) вхождений строки str в массив.

int QByteArray::count ( char ch ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает количество вхождений символа ch в массив.

Смотрите также contains() и indexOf().

int QByteArray::count () const

Это перегруженная функция, предоставленная для удобства.

То же, что и size().

char * QByteArray::data ()

Возвращает указатель на данные хранящиеся массиве. Указатель можно использовать для доступа и изменения данных, которые составляют массив. Данные завершаются символом '\0'.

Пример:

 QByteArray ba("Hello world");
 char *data = ba.data();
 while (*data) {
     cout << "[" << *data << "]" << endl;
     ++data;
 }

Указатель остается действительным до тех пор, пока массив не будет перераспределен в памяти. Для доступа только для чтения, функция constData() работает быстрее, потому что она никогда не делает глубокое копирование данных.

Эта функция наиболее полезна для передачи байтового массива в функцию, которая принимает аргумент const char *.

Замечание: QByteArray может хранить любые значения байт, включая '\0', но большинство функций, которые принимают в качестве аргумента char * предполагают, что данные завершаются первым встретившимся '\0'.

Смотрите также constData() и operator[]().

const char * QByteArray::data () const

Это перегруженная функция, предоставленная для удобства.

bool QByteArray::endsWith ( const QByteArray & ba ) const

Возвращает true, если этот массив заканчивается массивом ba; в противном случае возвращает false.

Пример:

 QByteArray url("http://www.trolltech.com/index.html");
 if (url.endsWith(".html"))
     ...

Смотрите также startsWith() и right().

bool QByteArray::endsWith ( const char * str ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если массив заканчивается строкой str; в противном случае возвращает false.

bool QByteArray::endsWith ( char ch ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если массив заканчивается символом ch; в противном случае возвращает false.

QByteArray & QByteArray::fill ( char ch, int size = -1 )

Присваивает каждому байту массива значение ch. Если size отличен от -1 (по умолчанию), то размер массива предварительно изменяется до size.

Пример:

 QByteArray ba("Istambul");
 ba.fill('o');
 // ba == "oooooooo"

 ba.fill('X', 2);
 // ba == "XX"

Смотрите также resize().

QByteArray QByteArray::fromBase64 ( const QByteArray & base64 )   [static]

Возвращает копию массива base64, декодированного из кодировки Base64. Входной массив не проверяется на действительность; неверные символы входного массива пропускаются, позволяя продолжить процесс декодирования со следующего символа.

Например:

 QByteArray text = QByteArray::fromBase64("UXQgaXMgZ3JlYXQh");
 text.data();            // вернёт "Qt is great!"

Алгоритм, использующийся при декодировании из кодировки Base64, определен вRFC 2045.

Смотрите также toBase64().

QByteArray QByteArray::fromHex ( const QByteArray & hexEncoded )   [static]

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

Например:

 QByteArray text = QByteArray::fromHex("517420697320677265617421");
 text.data();            // вернёт "Qt is great!"

Смотрите также toHex().

QByteArray QByteArray::fromRawData ( const char * data, int size )   [static]

Создаёт QByteArray, который использует первые size символов в массив data. Байты в data не копировались. Вызывающий должен быть способен обеспечить, что data не будет удаляться или модифицироваться до тех пор, пока существует QByteArray (или его немодифицированная копия).

Любые попытки изменить QByteArray или ее копии приведет к глубокому копированию информации, чтобы гарантировать неизменность сырых данных.

Вот пример того, как можно читать данные, используя QDataStream на сырых данных в памяти без того, чтобы копировать их в QByteArray:

  static const char mydata[] = {
     0x00, 0x00, 0x03, 0x84, 0x78, 0x9c, 0x3b, 0x76,
     0xec, 0x18, 0xc3, 0x31, 0x0a, 0xf1, 0xcc, 0x99,
     ...
     0x6d, 0x5b
 };

 QByteArray data = QByteArray::fromRawData(mydata, sizeof(mydata));
 QDataStream in(&data, QIODevice::ReadOnly);
 ...

Предупреждение: Байтовый массив, созданный с помощью fromRawData() не оканчивается нулем, за исключением исходных данных содержащих символ '\0' в позиции size. В то время как это не имеет значения для QDataStream или функций, подобных indexOf(), передача байтового массива в функцию, принимающую const char * и ожидающую строку с завершающим символом '\0', потерпит неудачу.

Смотрите также data() и constData().

int QByteArray::indexOf ( const QByteArray & ba, int from = 0 ) const

Возвращает индекс позиции первого вхождения массива ba в этот массив, поиск осуществляется вперед начиная с позиции с индексом from. Возвращает -1, если ba не может быть найден.

Пример:

 QByteArray x("sticky question");
 QByteArray y("sti");
 x.indexOf(y);               // вернёт 0
 x.indexOf(y, 1);            // вернёт 10
 x.indexOf(y, 10);           // вернёт 10
 x.indexOf(y, 11);           // вернёт -1

Смотрите также lastIndexOf(), contains(), и count().

int QByteArray::indexOf ( const QString & str, int from = 0 ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает индекс позиции первого вхождения строки str в массив, поиск осуществляется вперед начиная с позиции с индексом from. Возвращает -1, если str не может быть найдена.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Если QString содержит не-ASCII Unicode символы, использование этой функции может привести к потере информации. Вы можете запретить эту функцию объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вы должны будете явно вызвать QString::toAscii() (или QString::toLatin1(), или QString::toUtf8(), или QString::toLocal8Bit()) , если вам нужно конвертировать данные в const char *.

int QByteArray::indexOf ( const char * str, int from = 0 ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает индекс позиции первого вхождения строки str в массив, поиск осуществляется вперед начиная с позиции с индексом from. Возвращает -1, если str не может быть найдена.

int QByteArray::indexOf ( char ch, int from = 0 ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает индекс позиции первого вхождения символа ch в массиве, поиск осуществляется вперед начиная с позиции с индексом from. Возвращает -1, если ch не может быть найден.

Пример:

 QByteArray ba("ABCBA");
 ba.indexOf("B");            // вернёт 1
 ba.indexOf("B", 1);         // вернёт 1
 ba.indexOf("B", 2);         // вернёт 3
 ba.indexOf("X");            // вернёт -1

Смотрите такжеlastIndexOf() и contains().

QByteArray & QByteArray::insert ( int i, const QByteArray & ba )

Вставляет массив ba в позицию с индексом i и возвращает ссылку на этот массив.

Пример:

 QByteArray ba("Meal");
 ba.insert(1, QByteArray("ontr"));
 // ba == "Montreal"

Смотрите также append(), prepend(), replace(), и remove().

QByteArray & QByteArray::insert ( int i, const QString & str )

Это перегруженная функция, предоставленная для удобства.

Вставляет в массив строку str в позицию с индексом i. Данные в Unicode конвертируются в 8-битные символы используя функцию QString::toAscii().

Если i больше чем size(), массив сперва будет расширен с помощью resize().

Если QString содержит не-ASCII Unicode символы, использование этой функции может привести к потере информации. Вы можете запретить эту функцию объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вы должны будете явно вызвать QString::toAscii() (или QString::toLatin1(), или QString::toUtf8(), или QString::toLocal8Bit()) , если вам нужно конвертировать данные в const char *.

QByteArray & QByteArray::insert ( int i, const char * str )

Это перегруженная функция, предоставленная для удобства.

Вставляет в массив строку str в позицию с индексом i.

Если i больше чем size(), массив сперва будет расширен с помощью resize().

QByteArray & QByteArray::insert ( int i, char ch )

Это перегруженная функция, предоставленная для удобства.

Вставляет в массив символ ch в позицию с индексом i. Если i больше чем size(), массив, сначала, будет увеличен используя функцию resize().

bool QByteArray::isEmpty () const

Возвращает true, если массив имеет размер 0; в противном случае возвращает false.

Пример:

 QByteArray().isEmpty();         // вернёт true
 QByteArray("").isEmpty();       // вернёт true
 QByteArray("abc").isEmpty();    // вернёт false

Смотрите также size().

bool QByteArray::isNull () const

Возвращает true, если массив не инициализирован; в противном случае возвращает false.

Пример:

 QByteArray().isNull();          // вернёт true
 QByteArray("").isNull();        // вернёт false
 QByteArray("abc").isNull();     // вернёт false

Qt делает различия между не инициализированным и пустым массивом по историческим причинам. Для большинства приложений имеет значение, содержит ли массив данные или нет, и это можно определить используя функцию isEmpty().

Смотрите также isEmpty().

int QByteArray::lastIndexOf ( const QByteArray & ba, int from = -1 ) const

Возвращает индекс позиции последнего вхождения массива ba в этот массив, поиск осуществляется назад начиная с позиции с индексом from. Если from равен -1 (по умолчанию), поиск начинается с последнего байта. Возвращает -1, если ba не может быть найден.

Пример:

 QByteArray x("crazy azimuths");
 QByteArray y("azy");
 x.lastIndexOf(y);           // вернёт 6
 x.lastIndexOf(y, 6);        // вернёт 6
 x.lastIndexOf(y, 5);        // вернёт 2
 x.lastIndexOf(y, 1);        // вернёт -1

Смотрите также indexOf(), contains() и count().

int QByteArray::lastIndexOf ( const QString & str, int from = -1 ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает индекс позиции последнего вхождения строки str в массив, поиск осуществляется назад начиная с позиции с индексом from. Если from равен -1 (по умолчанию), поиск начинается с последнего (size() - 1) байта. Возвращает -1, если str не может быть найдена.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Если QString содержит не-ASCII Unicode символы, использование этой функции может привести к потере информации. Вы можете запретить эту функцию объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вы должны будете явно вызвать QString::toAscii() (или QString::toLatin1(), или QString::toUtf8(), или QString::toLocal8Bit()) , если вам нужно конвертировать данные в const char *.

int QByteArray::lastIndexOf ( const char * str, int from = -1 ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает индекс позиции последнего вхождения строки str в массив, поиск осуществляется назад начиная с позиции с индексом from. Если from равен -1 (по умолчанию), поиск начинается с последнего (size() - 1) байта. Возвращает -1, если str не может быть найдена.

int QByteArray::lastIndexOf ( char ch, int from = -1 ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает индекс позиции последнего вхождения символа ch в массив, поиск осуществляется назад начиная с позиции с индексом from. Если from равен -1 (по умолчанию), поиск начинается с последнего (size() - 1) байта. Возвращает -1, если ch не может быть найден.

Пример:

 QByteArray ba("ABCBA");
 ba.lastIndexOf("B");        // вернёт 3
 ba.lastIndexOf("B", 3);     // вернёт 3
 ba.lastIndexOf("B", 2);     // вернёт 1
 ba.lastIndexOf("X");        // вернёт -1

Смотрите также indexOf() и contains().

QByteArray QByteArray::left ( int len ) const

Возвращает массив, содержащий len крайних слева байт из исходного массива.

Массив будет возвращен полностью, если len больше, чем size().

Пример:

 QByteArray x("Pineapple");
 QByteArray y = x.left(4);
 // y == "Pine"

Смотрите также right(), mid(), startsWith() и truncate().

QByteArray QByteArray::leftJustified ( int width, char fill = ' ', bool truncate = false ) const

Возвращает массив размером width, который содержит этот массив, дополненный символом fill.

Если truncate равно false и size() массива больше, чем width, то возвращается копия этого массива.

Если truncate равно true и size() массива больше, чем width, то возвращается копия массива, у которой байты после позиции width отсечены.

Пример:

 QByteArray x("apple");
 QByteArray y = x.leftJustified(8, '.');   // y == "apple..."

Смотрите также rightJustified().

int QByteArray::length () const

То же, что и size().

QByteArray QByteArray::mid ( int pos, int len = -1 ) const

Возвращает массив, содержащий len байт из этого массива, начиная с позиции pos.

Если len равно -1 (по умолчанию), или pos + len >= size(), то возвращается массив, содержащий все байты, начиная с позиции pos и до конца массива.

Пример:

 QByteArray x("Five pineapples");
 QByteArray y = x.mid(5, 4);     // y == "pine"
 QByteArray z = x.mid(5);        // z == "pineapples"

Смотрите также left() и right().

QByteArray QByteArray::number ( int n, int base = 10 )   [static]

Возвращает массив, содержащий строку, эквивалентную числу n с основанием системы счисления base (по умолчанию 10). Параметр base может быть любым значением от 2 до 36.

Пример:

 int n = 63;
 QByteArray::number(n);              // вернёт "63"
 QByteArray::number(n, 16);          // вернёт "3f"
 QByteArray::number(n, 16).toUpper();  // вернёт "3F"

Смотрите также setNum() и toInt().

QByteArray QByteArray::number ( uint n, int base = 10 )   [static]

Это перегруженная функция, предоставленная для удобства.

Смотрите также toUInt().

QByteArray QByteArray::number ( qlonglong n, int base = 10 )   [static]

Это перегруженная функция, предоставленная для удобства.

Смотрите также toLongLong().

QByteArray QByteArray::number ( qulonglong n, int base = 10 )   [static]

Это перегруженная функция, предоставленная для удобства.

Смотрите также toULongLong().

QByteArray QByteArray::number ( double n, char f = 'g', int prec = 6 )   [static]

Это перегруженная функция, предоставленная для удобства.

Возвращает массив, который содержит печатаемое значение n, представленное в формате f с точностью prec.

Аргумент n форматируется в соответствии с форматом f, определенному по умолчанию как g, и может быть одним из следующих:

Формат Значение
eформатируется как [-]9.9e[+|-]999
Eформатируется как [-]9.9E[+|-]999
fформатируется как [-]9.9
gиспользуется тот формат ( e или f), который окажется короче
Gиспользуется тот формат ( E или f), который окажется короче

Для 'e', 'E' и 'f' параметр prec указывает количество цифр после точки. Для 'g' и 'G' параметр prec указывает максимальное количество значащих цифр (замыкающие нули опускаются).

 QByteArray ba = QByteArray::number(12.3456, 'E', 3);
 // ba == 1.235E+01

Смотрите также toDouble().

QByteArray & QByteArray::prepend ( const QByteArray & ba )

Добавляет массив ba перед этим массивом и возвращает ссылку на этот массив массив.

Пример:

 QByteArray x("ship");
 QByteArray y("air");
 x.prepend(y);
 // x == "airship"

Это то же самое, что и insert(0, ba).

Смотрите также append() и insert().

QByteArray & QByteArray::prepend ( const char * str )

Это перегруженная функция, предоставленная для удобства.

Добавляет строку str перед этим массивом.

QByteArray & QByteArray::prepend ( char ch )

Это перегруженная функция, предоставленная для удобства.

Добавляет символ chперед этим массивом.

void QByteArray::push_back ( const QByteArray & other )

Эта функция предоставлена для совместимости с STL. Это эквивалентно append(other).

void QByteArray::push_back ( const char * str )

Это перегруженная функция, предоставленная для удобства.

Тоже самое, что и append(str).

void QByteArray::push_back ( char ch )

Это перегруженная функция, предоставленная для удобства.

Тоже самое, что и append(ch).

void QByteArray::push_front ( const QByteArray & other )

Эта функция предоставлена для совместимости с STL. Это эквивалентно prepend(other).

void QByteArray::push_front ( const char * str )

Это перегруженная функция, предоставленная для удобства.

Тоже самое, что и prepend(str).

void QByteArray::push_front ( char ch )

Это перегруженная функция, предоставленная для удобства.

Тоже самое, что и prepend(ch).

QByteArray & QByteArray::remove ( int pos, int len )

Удаляет len байт из массива, начиная с позиции с индексом pos, и возвращает ссылку на массив.

Если pos вне диапазона, ничего не происходит. Если pos действительный, но pos + len больше, чем размер массива, то массив усекается по позиции pos.

Пример:

 QByteArray ba("Montreal");
 ba.remove(1, 4);
 // ba == "Meal"

Смотрите также insert() и replace().

QByteArray & QByteArray::replace ( int pos, int len, const QByteArray & after )

Заменяет len байт начиная с позиции с индексом pos на байтовый массив after, и возвращает ссылку на этот массив.

Пример:

 QByteArray x("Say yes!");
 QByteArray y("no");
 x.replace(4, 3, y);
 // x == "Say no!"

Смотрите также insert() и remove().

QByteArray & QByteArray::replace ( int pos, int len, const char * after )

Это перегруженная функция, предоставленная для удобства.

QByteArray & QByteArray::replace ( const QByteArray & before, const QByteArray & after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение массива before на массив after.

Пример:

 QByteArray ba("colour behaviour flavour neighbour");
 ba.replace(QByteArray("ou"), QByteArray("o"));
 // ba == "color behavior flavor neighbor"

QByteArray & QByteArray::replace ( const char * before, const QByteArray & after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение строки before на массив after.

QByteArray & QByteArray::replace ( const QByteArray & before, const char * after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение массива before на строку after.

QByteArray & QByteArray::replace ( const QString & before, const QByteArray & after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение строки before на массив after. Данные в Unicode конвертируются в 8-битные символы используя функцию QString::toAscii().

Если QString содержит не-ASCII Unicode символы, использование этой функции может привести к потере информации. Вы можете запретить эту функцию объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вы должны будете явно вызвать QString::toAscii() (или QString::toLatin1(), или QString::toUtf8(), или QString::toLocal8Bit()) , если вам нужно конвертировать данные в const char *.

QByteArray & QByteArray::replace ( const QString & before, const char * after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение строки before на строку after.

QByteArray & QByteArray::replace ( const char * before, const char * after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение строки before на строку after.

QByteArray & QByteArray::replace ( char before, const QByteArray & after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение символа before на массив after.

QByteArray & QByteArray::replace ( char before, const QString & after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение символа before на строку after. Данные в Unicode конвертируются в 8-битные символы используя функцию QString::toAscii().

Если QString содержит не-ASCII Unicode символы, использование этой функции может привести к потере информации. Вы можете запретить эту функцию объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вы должны будете явно вызвать QString::toAscii() (или QString::toLatin1(), или QString::toUtf8(), или QString::toLocal8Bit()) , если вам нужно конвертировать данные в const char *.

QByteArray & QByteArray::replace ( char before, const char * after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение символа before на строку after.

QByteArray & QByteArray::replace ( char before, char after )

Это перегруженная функция, предоставленная для удобства.

Заменяет каждое вхождение символа before на символ after.

void QByteArray::reserve ( int size )

Пытается выделить память размером по крайней мере size байт. Если вы знаете наперёд насколько большим будет массив, вы можете вызвать эту функцию, и, если вы вызываете resize() много раз, то, возможно, получите лучшую производительность. Если size недооценён, то самое худшее, что может произойти это то, что QByteArray будет работать медленнее.

Единственная цель этой функции обеспечить оптимальное использование памяти в QByteArray . Вообще, у вас крайне редко возникнет необходимость вызывать эту функцию. Если вы хотите изменить размер массива, вызовите resize().

Смотрите также squeeze() и capacity().

void QByteArray::resize ( int size )

Устанавливает размер массива в size байт.

Если size больше чем текущий размер, байтовый массив увеличится до size байт, добавив дополнительные байты в конец. Новые байты не инициализированы.

Если size меньше, чем текущий размер, то байты будут удалены с конца массива.

Смотрите также size().

QByteArray QByteArray::right ( int len ) const

Возвращает массив, содержащий len крайних справа байт из этого массива.

Массив будет возвращен полностью, если len больше, чем size().

Пример:

 QByteArray x("Pineapple");
 QByteArray y = x.right(5);
 // y == "apple"

Смотрите также endsWith(), left() и mid().

QByteArray QByteArray::rightJustified ( int width, char fill = ' ', bool truncate = false ) const

Возвращает байтовый массив размером width, который содержит символы заполнители fill за которыми следует этот массив.

Если truncate равно false и размер массива больше, чем width, то возвращается массив являющийся копией этого массива.

Если truncate равен true и размер массива больше, чем width, то возвращается массив, усечённый в позиции width.

Пример:

 QByteArray x("apple");
 QByteArray y = x.rightJustified(8, '.');    // y == "...apple"

Смотрите также leftJustified().

QByteArray & QByteArray::setNum ( int n, int base = 10 )

Устанавливает массив в печатное представление числа n по основанию base (по умолчанию 10) и возвращает ссылку на массив. Параметр base может быть любым значением от 2 до 36.

Пример:

 QByteArray ba;
 int n = 63;
 ba.setNum(n);           // ba == "63"
 ba.setNum(n, 16);       // ba == "3f"

Смотрите также number() и toInt().

QByteArray & QByteArray::setNum ( uint n, int base = 10 )

Это перегруженная функция, предоставленная для удобства.

Смотрите также toUInt().

QByteArray & QByteArray::setNum ( short n, int base = 10 )

Это перегруженная функция, предоставленная для удобства.

Смотрите также toShort().

QByteArray & QByteArray::setNum ( ushort n, int base = 10 )

Это перегруженная функция, предоставленная для удобства.

Смотрите также toUShort().

QByteArray & QByteArray::setNum ( qlonglong n, int base = 10 )

Это перегруженная функция, предоставленная для удобства.

Смотрите также toLongLong().

QByteArray & QByteArray::setNum ( qulonglong n, int base = 10 )

Это перегруженная функция, предоставленная для удобства.

Смотрите также toULongLong().

QByteArray & QByteArray::setNum ( double n, char f = 'g', int prec = 6 )

Это перегруженная функция, предоставленная для удобства.

Устанавливает массив в печатное представление числа n, представленное в формате f с точностью prec и возвращает ссылку на байтовый массив.

Формат f может быть следующим:

Формат Значение
eформатируется как [-]9.9e[+|-]999
Eформатируется как [-]9.9E[+|-]999
fформатируется как [-]9.9
gиспользуется тот формат ( e или f), который окажется короче
Gиспользуется тот формат ( E или f), который окажется короче

Для 'e', 'E' и 'f' параметр prec указывает количество цифр после точки. Для 'g' и 'G' параметр prec указывает максимальное количество значащих цифр (замыкающие нули опускаются).

Смотрите также toDouble().

QByteArray & QByteArray::setNum ( float n, char f = 'g', int prec = 6 )

Это перегруженная функция, предоставленная для удобства.

Устанавливает массив в печатное представление числа n, представленное в формате f с точностью prec и возвращает ссылку на байтовый массив.

Смотрите также toFloat().

QByteArray QByteArray::simplified () const

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

Пробельными символами являются любые символы, для которых стандартная функция C++ isspace() возвращает true. Они включают ASCII символы '\t', '\n', '\v', '\f', '\r' и ' '.

Пример:

 QByteArray ba("  lots\t of\nwhitespace\r\n ");
 ba = ba.simplified();
 // ba == "lots of whitespace";

Смотрите также trimmed().

int QByteArray::size () const

Возвращает количество байт в этом массиве.

Последний байт в массиве находится в позиции size() - 1. В дополнение, QByteArray гарантирует, что байт в позиции size() всегда содержит '\0', так что вы можете использовать значение, возвращаемое функциями data() и constData() в качестве аргумента для функций, ожидающих строки, оканчивающиеся '\0'.

Пример:

 QByteArray ba("Hello");
 int n = ba.size();          // n == 5
 ba.data()[0];               // вернёт 'H'
 ba.data()[4];               // вернёт 'o'
 ba.data()[5];               // вернёт '\0'

Смотрите также isEmpty() и resize().

QList<QByteArray> QByteArray::split ( char sep ) const

Разделяет массив на подмассивы там, где встречается символ sep , и возвращает список этих массивов. Если sep не встречается в массиве, split() вернет список, состоящий из одного элемента, содержащего весь массив.

void QByteArray::squeeze ()

Освобождает любую память, не требующуюся для хранения данных массива.

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

Смотрите также reserve() и capacity().

bool QByteArray::startsWith ( const QByteArray & ba ) const

Возвращает true, если этот массив начинается с массива ba; в противном случае возвращает false.

Пример:

 QByteArray url("ftp://ftp.trolltech.com/");
 if (url.startsWith("ftp:"))
     ...

Смотрите также endsWith() и left().

bool QByteArray::startsWith ( const char * str ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если массив начинается со строки str; в противном случае возвращает false.

bool QByteArray::startsWith ( char ch ) const

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если массив начинается с символа ch; в противном случае возвращает false.

QByteArray QByteArray::toBase64 () const

Возвращает копию массива, кодировке Base64.

 QByteArray text("Qt is great!");
 text.toBase64();        // вернёт "UXQgaXMgZ3JlYXQh"

Алгоритм, использующийся при кодировании в кодировке Base64, определен в RFC 2045.

Смотрите также fromBase64().

double QByteArray::toDouble ( bool * ok = 0 ) const

Возвращает массив преобразованный в значение типа double.

Вернёт 0.0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

 QByteArray string("1234.56");
 double a = string.toDouble();   // a == 1234.56

Смотрите также number().

float QByteArray::toFloat ( bool * ok = 0 ) const

Возвращает массив преобразованный в значение типа float.

Вернёт 0.0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

Смотрите также number().

QByteArray QByteArray::toHex () const

Возвращает копию массива, преобразованного в шестнадцатиричный вид. Шестнадцатеричное представление использует цифры 0-9 и буквы a-f.

Смотрите также fromHex().

int QByteArray::toInt ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа int, используя систему исчисления base, которая по умолчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

 QByteArray str("FF");
 bool ok;
 int hex = str.toInt(&ok, 16);     // hex == 255, ok == true
 int dec = str.toInt(&ok, 10);     // dec == 0, ok == false

Смотрите также number().

long QByteArray::toLong ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа long, используя систему исчисления по основанию base, которая по умолчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

 QByteArray str("FF");
 bool ok;
 long hex = str.toLong(&ok, 16);   // hex == 255, ok == true
 long dec = str.toLong(&ok, 10);   // dec == 0, ok == false

Эта функция была введена в Qt 4.1.

Смотрите также number().

qlonglong QByteArray::toLongLong ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа long long, используя систему исчисления по основанию base, которая по умолчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

Смотрите также number().

QByteArray QByteArray::toLower () const

Возвращает копию массива с символами в нижнем регистре. Массив воспринимается как строка в кодировке Latin-1.

Пример:

 QByteArray x("TROlltECH");
 QByteArray y = x.toLower();
 // y == "trolltech"

Смотрите также toUpper() и Обратите внимание на сравнение 8-битовых символов.

short QByteArray::toShort ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа short, используя систему исчисления по основанию base, которая по у молчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

Смотрите также number().

uint QByteArray::toUInt ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа unsigned int, используя систему исчисления по основанию base, которая по умолчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

Смотрите также number().

ulong QByteArray::toULong ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа unsigned long int, используя систему исчисления по основанию base, которая по умолчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

Эта функция была введена в Qt 4.1.

Смотрите также number().

qulonglong QByteArray::toULongLong ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа unsigned long long, используя систему исчисления по основанию base, которая по умолчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

Смотрите также number().

ushort QByteArray::toUShort ( bool * ok = 0, int base = 10 ) const

Возвращает массив преобразованный в значение типа unsigned short, используя систему исчисления по основанию base, которая по умолчанию равна 10 и должна быть любым числом от 2 до 36 или 0.

Если base равно 0, то система исчисления определяется автоматически по следующим правилам: если массив начинается с "0x", это шестнадцатеричное представление; если массив начинается с "0", это восьмеричное представление числа; в противном случае это десятичное представление.

Возвращает 0, если преобразование не удалось.

Если ok не 0: если произошла ошибка, то *ok будет установлен в false; в противном случае *ok будет установлен в true.

Смотрите также number().

QByteArray QByteArray::toUpper () const

Возвращает копию массива в верхнем регистре. Массив воспринимается как строка в кодировке Latin-1.

Пример:

 QByteArray x("TROlltECH");
 QByteArray y = x.toUpper();
 // y == "TROLLTECH"

Смотрите также toLower() и Обратите внимание на сравнение 8-битовых символов.

QByteArray QByteArray::trimmed () const

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

Пробельными символами являются любые символы, для которых стандартная функция C++ isspace() возвращает true. Они включают ASCII символы '\t', '\n', '\v', '\f', '\r' и ' '.

Пример:

 QByteArray ba("  lots\t of\nwhitespace\r\n ");
 ba = ba.trimmed();
 // ba == "lots\t of\nwhitespace";

В отличие от simplified(), trimmed() удаляет и внутренние пробельные символы.

Смотрите также simplified().

void QByteArray::truncate ( int pos )

Усекает байтовый массив в позиции с индексом pos.

Если pos выходит за пределы массива, ничего не происходит.

Пример:

 QByteArray ba("Stockholm");
 ba.truncate(5);             // ba == "Stock"

Смотрите также chop(), resize() и left().

QByteArray::operator const char * () const

Возвращает указатель на данные хранящиеся массиве. Указатель можно использовать для доступа к байтам, которые составляют массив. Данные завершаются символом '\0'. Указатель остается действительным до тех пор, пока массив не будет перераспределен в памяти.

Этот оператор в основном используется для передачи массива в функцию, которая принимает const char *.

Замечание: QByteArray может хранить любые значения байт, включая '\0', но большинство функций, которые принимают в качестве аргумента char * предполагают, что данные завершаются первым встретившимся '\0'.

Смотрите также constData().

QByteArray::operator const void * () const

Возвращает void-указатель на данные.

Этот оператор в основном используется для передачи массива в функции, которые принимают void *.

Смотрите также constData().

bool QByteArray::operator!= ( const QString & str ) const

Возвращает true, если этот байтовый массив не равен строке str; в противном случае возвращает false.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Сравнение чувствительно к регистру.

Вы можете запретить этот оператор, объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вам нужно явно вызывать QString::fromAscii(), QString::fromLatin1(), QString::fromUtf8() или QString::fromLocal8Bit(), если вы хотите преобразовать байтовый массив в QString перед тем, как выполнить сравнение.

QByteArray & QByteArray::operator+= ( const QByteArray & ba )

Добавляет байтовый массив ba в конец этого байтового массива и возвращает ссылку на этот байтовый массив.

Пример:

 QByteArray x("free");
 QByteArray y("dom");
 x += y;
 // x == "freedom"

Обычно, это очень быстрая операция (занимающая постоянное время), потому что QByteArray резервирует дополнительное место после данных так, что он может расти без перераспределения внутренних данных при каждом изменении размера массива.

Смотрите также append() и prepend().

QByteArray & QByteArray::operator+= ( const QString & str )

Это перегруженная функция, предоставленная для удобства.

Добавляет строку str в конец этого байтового массива и возвращает ссылку на этот байтовый массив. Данные в кодировке Unicode конвертируются в 8-битныные символы с помощью QString::toAscii().

Если в QString содержатся не ASCII символы в кодировке Unicode, использование этого оператора может привести к потере информации. Вы можете запретить использование этого оператора, объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией вашего приложения Теперь вы должны будете явно вызвать QString::toAscii() (или QString::toLatin1(), или QString::toUtf8(), или QString::toLocal8Bit()) , если вам нужно конвертировать данные в const char *.

QByteArray & QByteArray::operator+= ( const char * str )

Это перегруженная функция, предоставленная для удобства.

Добавляет строку str в конец этого байтового массива и возвращает ссылку на этот байтовый массив.

QByteArray & QByteArray::operator+= ( char ch )

Это перегруженная функция, предоставленная для удобства.

Добавляет символ ch в конец этого байтового массива и возвращает ссылку на этот массив.

bool QByteArray::operator< ( const QString & str ) const

Возвращает true, если этот байтовый массив лексически короче, чем строка str; в противном случае возвращает false.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Сравнение чувствительно к регистру.

Вы можете запретить этот оператор, объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вам нужно явно вызывать QString::fromAscii(), QString::fromLatin1(), QString::fromUtf8() или QString::fromLocal8Bit(), если вы хотите преобразовать байтовый массив в QString перед тем, как выполнить сравнение.

bool QByteArray::operator<= ( const QString & str ) const

Возвращает true, если байтовый массив лексически меньше или равен строке str; в противном случае возвращает false.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Сравнение чувствительно к регистру.

Вы можете запретить этот оператор, объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вам нужно явно вызывать QString::fromAscii(), QString::fromLatin1(), QString::fromUtf8() или QString::fromLocal8Bit(), если вы хотите преобразовать байтовый массив в QString перед тем, как выполнить сравнение.

QByteArray & QByteArray::operator= ( const QByteArray & other )

Присваивает other этому байтовому массиву и возвращает ссылку на этот байтовый массив.

QByteArray & QByteArray::operator= ( const char * str )

Это перегруженная функция, предоставленная для удобства.

Присваивает str этому байтовому массиву.

bool QByteArray::operator== ( const QString & str ) const

Возвращает true, если этот байтовый массив равен строке str; в противном случае возвращает false.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Сравнение чувствительно к регистру.

Вы можете запретить этот оператор, объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вам нужно явно вызывать QString::fromAscii(), QString::fromLatin1(), QString::fromUtf8() или QString::fromLocal8Bit(), если вы хотите преобразовать байтовый массив в QString перед тем, как выполнить сравнение.

bool QByteArray::operator> ( const QString & str ) const

Возвращает true, если этот байтовый массив лексически больше, чем строка str; в противном случае возвращает false.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Сравнение чувствительно к регистру.

Вы можете запретить этот оператор, объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вам нужно явно вызывать QString::fromAscii(), QString::fromLatin1(), QString::fromUtf8() или QString::fromLocal8Bit(), если вы хотите преобразовать байтовый массив в QString перед тем, как выполнить сравнение.

bool QByteArray::operator>= ( const QString & str ) const

Возвращает true, если байтовый массив больше или равен строке str; в противном случае возвращает false.

Данные в Unicode конвертируются в 8-битные символы с использованием QString::toAscii().

Сравнение чувствительно к регистру.

Вы можете запретить этот оператор, объявив макрос QT_NO_CAST_TO_ASCII, перед компиляцией приложения. Теперь вам нужно явно вызывать QString::fromAscii(), QString::fromLatin1(), QString::fromUtf8() или QString::fromLocal8Bit(), если вы хотите преобразовать байтовый массив в QString перед тем, как выполнить сравнение.

QByteRef QByteArray::operator[] ( int i )

Возвращает байт из позиции с индексом i, доступный для изменения.

Если присваивание производится за пределами байтового массива, перед присваиванием массив будет увеличен с помощью resize().

Пример:

 QByteArray ba;
 for (int i = 0; i < 10; ++i)
     ba[i] = 'A' + i;
 // ba == "ABCDEFGHIJ"

Возвращаемое значение имеет тип QByteRef, это вспомогательный класс QByteArray. Когда вы получаете объект типа QByteRef, вы можете использовать его, как если бы он был char &. Если вы присваиваете ему, то то присваивание будет применяться к символу в QByteArray на который вы получили ссылку.

Смотрите также at().

const char QByteArray::operator[] ( int i ) const

Это перегруженная функция, предоставленная для удобства.

Тоже самое, что и at(i).

QByteRef QByteArray::operator[] ( uint i )

Это перегруженная функция, предоставленная для удобства.

const char QByteArray::operator[] ( uint i ) const

Это перегруженная функция, предоставленная для удобства.


Связанные не-члены

quint16 qChecksum ( const char * data, uint len )

Возвращает CRC-16 - циклическую контрольную сумму, первых len байт из data.

Контрольная сумма не зависит от порядка байтов.

QByteArray qCompress ( const QByteArray & data, int compressionLevel = -1 )

Сжимает массив data и возвращает сжатые данные в виде нового массива.

Параметр compressionLevel определяет, какая степень сжатия должна использоваться. Допустимые значения от 0 до 9, 9 соответствует наибольшее сжатие (т.е. малый объем сжатых данных) за счет использования более медленного алгоритма. Меньшие значения (8, 7, ..., 1) предоставляют, соответственно, меньшее сжатие за чуть меньшее время. Значение 0 отменяет сжатие совсем. Значение по умолчанию равно -1, которое указывает библиотеке zlib сжатие по умолчанию.

Смотрите также qUncompress().

QByteArray qCompress ( const uchar * data, int nbytes, int compressionLevel = -1 )

Это перегруженная функция, предоставленная для удобства.

Сжимает первые nbytes из data и возвращает сжатые данные в новом массиве.

QByteArray qUncompress ( const QByteArray & data )

Распаковывает байтовый массив data и возвращает новый массив с распакованными данными.

Возвращает пустой (empty) QByteArray, если входные данные испорчены.

Эта функция распакует данные, сжатые с помощью qCompress() из этой и любой предыдущей версии Qt, начиная с Qt 3.1, когда эта возможность была введена.

Замечание: Если вы хотите использовать эту функцию, чтобы распаковывать внешние данные, сжатые с помощью библиотеки zlib, вы сначала должны добавить спереди четыре байта к массиву, которые будут хранить ожидаемый размер распакованных данных, записанных в обратном порядке (старший байт первый).

Смотрите также qCompress().

QByteArray qUncompress ( const uchar * data, int nbytes )

Это перегруженная функция, предоставленная для удобства.

Распаковывает первые nbytes из data и возвращает новый массив с распакованными данными.

int qsnprintf ( char * str, size_t n, const char * fmt, ... )

Переносимая функция snprintf(), вызывает qvsnprintf.

fmt - это строка форматирования printf(). Результат помещается в str, который является буфером по крайней мере из n байт.

Предупреждение: Вызывайте эту функцию только тогда, когда вы знаете, что вы делаете, так как она показывает различное поведение для различных платформ. Используйте функцию QString::sprintf() для формирования строки, взамен.

Смотрите также qvsnprintf() и QString::sprintf().

int qstrcmp ( const char * str1, const char * str2 )

Безопасная функция strcmp().

Сравнивает str1 и str2. Возвращает отрицательное значение, если str1 меньше чем str2, 0, если str1 равна str2 или положительное значение, если str1 больше чем str2.

Особый случай 1: Возвращает 0, если str1 и str2 обе 0.

Особый случай 2: Возвращает случайное ненулевое значение, если str1 равна 0 или str2 равна 0 (но не обе сразу).

Смотрите также qstrncmp(), qstricmp(), qstrnicmp() и Обратите внимание на сравнение 8-битовых символов.

char * qstrcpy ( char * dst, const char * src )

Копирует все символы, включая '\0', из src в dst и возвращает указатель на dst. Если src равна 0, немедленно возвращается 0.

Эта функция предполагает, что dst достаточно большая, чтобы в нее поместились все данные из src.

Смотрите также qstrncpy().

char * qstrdup ( const char * src )

Возвращает дубликат строки.

Выделяет память для копии src, копирует её, и возвращает указатель на копию. Если src равен 0, возвращается 0.

Владельцем становится вызывающий, поэтому возвращаемая строка должна быть удалена с помощью delete[].

int qstricmp ( const char * str1, const char * str2 )

Безопасная функция stricmp().

Сравнивает str1 и str2 игнорируя регистр символов. Предполагается, что строка в кодировке Latin-1.

Возвращает отрицательное значение, если str1 меньше чем str2, 0, если str1 равна str2 или положительное значение, если str1 больше чем str2.

Особый случай 1: Возвращает 0, если str1 и str2 обе 0.

Особый случай 2: Возвращает случайное ненулевое значение, если str1 равна 0 или str2 равна 0 (но не обе сразу).

Смотрите также qstrcmp(), qstrncmp(), qstrnicmp() и Обратите внимание на сравнение 8-битовых символов.

uint qstrlen ( const char * str )

Безопасная функция strlen().

Возвращает количество символов, которые предшествует символу '\0', или 0, если str равна 0.

Смотрите также qstrnlen().

int qstrncmp ( const char * str1, const char * str2, uint len )

Безопасная функция strncmp().

Сравнивает не больше, чем len байт в str1 и str2.

Возвращает отрицательное значение, если str1 меньше чем str2, 0, если str1 равна str2 или положительное значение, если str1 больше чем str2.

Особый случай 1: Возвращает 0, если str1 и str2 обе 0.

Особый случай 2: Возвращает случайное ненулевое значение, если str1 равна 0 или str2 равна 0 (но не обе сразу).

Смотрите также qstrcmp(), qstricmp(), qstrnicmp() и Обратите внимание на сравнение 8-битовых символов.

char * qstrncpy ( char * dst, const char * src, uint len )

Безопасная функция strncpy().

Копирует не больше чем len байт из src (останавливается на len или на конечном '\0', в зависимости от того, что встретится первым) в dst и возвращает указатель на dst. Гарантирует, что dst заканчивается '\0'. Если src или dst равны 0, немедленно возвращается 0.

Эта функция подразумевает, что dst по меньшей мере длинной в len символов.

Смотрите также qstrcpy().

int qstrnicmp ( const char * str1, const char * str2, uint len )

Безопасная функция strnicmp().

Сравнивает не больше чем len байт str1 и str2 , игнорируя регистр символов. Предполагается, что строка в кодировке Latin-1.

Возвращает отрицательное значение, если str1 меньше чем str2, 0, если str1 равна str2 или положительное значение, если str1 больше чем str2.

Особый случай 1: Возвращает 0, если str1 и str2 обе 0.

Особый случай 2: Возвращает случайное ненулевое значение, если str1 равна 0 или str2 равна 0 (но не обе сразу).

Смотрите также qstrcmp(), qstrncmp(), qstricmp() и Обратите внимание на сравнение 8-битовых символов.

uint qstrnlen ( const char * str, uint maxlen )

Безопаснся функция strnlen().

Возвращает количество символов, которое предшествует символу '\0', но не более maxlen. Если str равна 0, возвращается 0.

Эта функция была введена в Qt 4.2.

Смотрите также qstrlen().

int qvsnprintf ( char * str, size_t n, const char * fmt, va_list ap )

Переносимая функция vsnprintf(). Будет вызвана функция ::vsnprintf(), ::_vsnprintf() или ::vsnprintf_s, в зависимости от системы или переход к внутренней версии.

fmt - это строка форматирования printf(). Результат помещается в str, который является буфером по крайней мере из n байт.

Вызывающий ответственен за вызов функции va_end() у ap.

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

В идеале, вы не должны никогда вызывать эту функцию, а использовать QString::sprintf(), вместо неё.

Смотрите такжеqsnprintf() и QString::sprintf().

bool operator!= ( const QByteArray & a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 не равен байтовому массиву a2; в противном случае возвращает false.

bool operator!= ( const QByteArray & a1, const char * a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 не равен строке a2; в противном случае возвращает false.

bool operator!= ( const char * a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если строка a1 не равна байтовому массиву a2; в противном случае возвращает false.

const QByteArray operator+ ( const QByteArray & a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает байтовый массив, который является результатом соединения байтового массива a1 и байтового массива a2.

Смотрите также QByteArray::operator+=().

const QByteArray operator+ ( const QByteArray & a1, const char * a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает байтовый массив, который является результатом соединения байтового массива a1 и строки a2.

const QByteArray operator+ ( const QByteArray & a1, char a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает байтовый массив, который является результатом соединения байтового массива a1 и символа a2.

const QByteArray operator+ ( const char * a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает байтовый массив, который является результатом соединения строки a1 и байтового массива a2.

const QByteArray operator+ ( char a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает байтовый массив, который является результатом соединения символа a1 и байтового массива a2.

bool operator< ( const QByteArray & a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически меньше, чем байтовый массив a2; в противном случае возвращает false.

bool operator< ( const QByteArray & a1, const char * a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически меньше, чем строка a2; в противном случае возвращает false.

bool operator< ( const char * a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если строка a1 лексически меньше, чем байтовый массив a2; в противном случае возвращает false.

QDataStream & operator<< ( QDataStream & out, const QByteArray & ba )

Это перегруженная функция, предоставленная для удобства.

Записывает байтовый массив ba в поток out и возвращает ссылку на поток.

Смотрите также Формат операторов QDataStream.

bool operator<= ( const QByteArray & a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически меньше или равен, байтовому массиву a2; в противном случае возвращает false.

bool operator<= ( const QByteArray & a1, const char * a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически меньше или равен строке a2; в противном случае возвращает false.

bool operator<= ( const char * a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если строка a1 лексически меньше или равна, байтовому массиву a2; в противном случае возвращает false.

bool operator== ( const QByteArray & a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 равен байтовому массиву a2; в противном случае возвращает false.

bool operator== ( const QByteArray & a1, const char * a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 равен строке a2; в противном случае возвращает false.

bool operator== ( const char * a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если строка a1 равна байтовому массиву a2; в противном случае возвращает false.

bool operator> ( const QByteArray & a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически больше, чем байтовый массив a2; в противном случае возвращает false.

bool operator> ( const QByteArray & a1, const char * a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически больше, чем строка a2; в противном случае возвращает false.

bool operator> ( const char * a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если строка a1 лексически больше, чем байтовый массив a2; в противном случае возвращает false.

bool operator>= ( const QByteArray & a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически больше или равен, байтовому массиву a2; в противном случае возвращает false.

bool operator>= ( const QByteArray & a1, const char * a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если байтовый массив a1 лексически больше или равен ,строке a2; в противном случае возвращает false.

bool operator>= ( const char * a1, const QByteArray & a2 )

Это перегруженная функция, предоставленная для удобства.

Возвращает true, если строка a1 лексически больше или равна , байтовому массиву a2; в противном случае возвращает false.

QDataStream & operator>> ( QDataStream & in, QByteArray & ba )

Это перегруженная функция, предоставленная для удобства.

Читает байтовый массив в ba из потока in и возвращает ссылку на поток.

Смотрите также Формат операторов QDataStream.


Copyright © 2008 Trolltech Торговые марки
Qt 4.3.5