QByteArray Class
La classe QByteArray fournit un tableau d'octets. En savoir plus...
| En-tête : | #include <QByteArray> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- Membres obsolètes
- QByteArray fait partie des classes à partage implicite et des classes pour les données de type chaîne.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Comparaisons avec QByteArray
| Catégorie | Types comparables | Description |
|---|---|---|
| strong | QByteArray | |
| strong | const char *. | |
| strong | QChar, char16_t, QString, QStringView, QLatin1StringView et QUtf8StringView. | Lors de la comparaison avec des types de chaînes de caractères, le contenu est interprété au format UTF-8. |
Types publics
| class | FromBase64Result |
| enum | Base64Option { Base64Encoding, Base64UrlEncoding, KeepTrailingEquals, OmitTrailingEquals, IgnoreBase64DecodingErrors, AbortOnBase64DecodingErrors } |
| flags | Base64Options |
| const_iterator | |
| const_reverse_iterator | |
| iterator | |
| reverse_iterator |
Fonctions publiques
| QByteArray() | |
(since 6.8) | QByteArray(QByteArrayView v) |
| QByteArray(const char*data, qsizetype size = -1) | |
| QByteArray(qsizetype taille, Qt::Initialization) | |
| QByteArray(qsizetype taille, char ch) | |
| QByteArray(const QByteArray&other) | |
| QByteArray(QByteArray&&other) | |
| ~QByteArray() | |
| QByteArray & | append(const QByteArray&ba) |
| QByteArray & | append(QByteArrayView data) |
| QByteArray & | append(char ch) |
| QByteArray & | append(const char*str) |
| QByteArray & | append(const char*str, qsizetype len) |
| QByteArray & | append(qsizetype count, char ch) |
(since 6.6) QByteArray & | assign(QByteArrayView v) |
(since 6.6) QByteArray & | assign(InputIterator first, InputIterator last) |
(since 6.6) QByteArray & | assign(qsizetype n, char c) |
| char | at(qsizetype i) const |
| char & | back() |
| char | back() const |
| QByteArray::iterator | begin() |
| QByteArray::const_iterator | begin() const |
| qsizetype | capacity() const |
| QByteArray::const_iterator | cbegin() const |
| QByteArray::const_iterator | cend() const |
| void | chop(qsizetype n) |
| QByteArray | chopped(qsizetype len) && |
| QByteArray | chopped(qsizetype len) const & |
| void | clear() |
(since 6.0) int | compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QByteArray::const_iterator | constBegin() const |
| const char * | constData() const |
| QByteArray::const_iterator | constEnd() const |
(since 6.0) bool | contains(QByteArrayView bv) const |
| bool | contains(char ch) const |
(since 6.0) qsizetype | count(QByteArrayView bv) const |
| qsizetype | count(char ch) const |
| QByteArray::const_reverse_iterator | crbegin() const |
| QByteArray::const_reverse_iterator | crend() const |
| char * | data() |
| const char * | data() const |
| QByteArray::iterator | end() |
| QByteArray::const_iterator | end() const |
(since 6.0) bool | endsWith(QByteArrayView bv) const |
| bool | endsWith(char ch) const |
(since 6.1) QByteArray::iterator | erase(QByteArray::const_iterator first, QByteArray::const_iterator last) |
(since 6.5) QByteArray::iterator | erase(QByteArray::const_iterator it) |
| QByteArray & | fill(char ch, qsizetype size = -1) |
(since 6.0) QByteArray | first(qsizetype n) && |
(since 6.0) QByteArray | first(qsizetype n) const & |
| char & | front() |
| char | front() const |
(since 6.0) qsizetype | indexOf(QByteArrayView bv, qsizetype from = 0) const |
| qsizetype | indexOf(char ch, qsizetype from = 0) const |
(since 6.0) QByteArray & | insert(qsizetype i, QByteArrayView data) |
| QByteArray & | insert(qsizetype i, const QByteArray&data) |
| QByteArray & | insert(qsizetype i, const char*s) |
| QByteArray & | insert(qsizetype i, char ch) |
| QByteArray & | insert(qsizetype i, const char*data, qsizetype len) |
| QByteArray & | insert(qsizetype i, qsizetype count, char ch) |
| bool | isEmpty() const |
| bool | isLower() const |
| bool | isNull() const |
| bool | isUpper() const |
(since 6.3) bool | isValidUtf8() const |
(since 6.0) QByteArray | last(qsizetype n) && |
(since 6.0) QByteArray | last(qsizetype n) const & |
(since 6.0) qsizetype | lastIndexOf(QByteArrayView bv, qsizetype from) const |
(since 6.2) qsizetype | lastIndexOf(QByteArrayView bv) const |
| qsizetype | lastIndexOf(char ch, qsizetype from = -1) const |
| QByteArray | left(qsizetype len) && |
| QByteArray | left(qsizetype len) const & |
| QByteArray | leftJustified(qsizetype width, char fill = ' ', bool truncate = false) const |
| qsizetype | length() const |
(since 6.8) qsizetype | max_size() const |
| QByteArray | mid(qsizetype pos, qsizetype len = -1) && |
| QByteArray | mid(qsizetype pos, qsizetype len = -1) const & |
(since 6.10) QByteArray & | nullTerminate() |
(since 6.10) QByteArray | nullTerminated() && |
(since 6.10) QByteArray | nullTerminated() const & |
(since 6.4) QByteArray | percentDecoded(char percent = '%') const & |
(since 6.11) QByteArray | percentDecoded(char percent = '%') && |
| QByteArray & | prepend(QByteArrayView ba) |
| QByteArray & | prepend(char ch) |
| QByteArray & | prepend(const QByteArray&ba) |
| QByteArray & | prepend(const char*str) |
| QByteArray & | prepend(const char*str, qsizetype len) |
| QByteArray & | prepend(qsizetype count, char ch) |
| void | push_back(const QByteArray&other) |
(since 6.0) void | push_back(QByteArrayView str) |
| void | push_back(char ch) |
| void | push_back(const char*str) |
| void | push_front(const QByteArray&other) |
(since 6.0) void | push_front(QByteArrayView str) |
| void | push_front(char ch) |
| void | push_front(const char*str) |
| QByteArray::reverse_iterator | rbegin() |
| QByteArray::const_reverse_iterator | rbegin() const |
| QByteArray & | remove(qsizetype pos, qsizetype len) |
(since 6.5) QByteArray & | removeAt(qsizetype pos) |
(since 6.5) QByteArray & | removeFirst() |
(since 6.1) QByteArray & | removeIf(prédicat pred) |
(since 6.5) QByteArray & | removeLast() |
| QByteArray::reverse_iterator | rend() |
| QByteArray::const_reverse_iterator | rend() const |
| QByteArray | repeated(qsizetype times) const |
| QByteArray & | replace(qsizetype pos, qsizetype len, QByteArrayView after) |
(since 6.0) QByteArray & | replace(QByteArrayView before, QByteArrayView after) |
| QByteArray & | replace(char before, QByteArrayView after) |
| QByteArray & | replace(char avant, char après) |
| QByteArray & | replace(const char*avant, qsizetype bsize, const char*après, qsizetype asize) |
| QByteArray & | replace(qsizetype pos, qsizetype len, const char*after, qsizetype alen) |
| void | reserve(qsizetype size) |
| void | resize(qsizetype size) |
(since 6.4) void | resize(qsizetype newSize, char c) |
(since 6.8) void | resizeForOverwrite(qsizetype taille) |
| QByteArray | right(qsizetype len) && |
| QByteArray | right(qsizetype len) const & |
| QByteArray | rightJustified(qsizetype width, char fill = ' ', bool truncate = false) const |
| QByteArray & | setNum(int n, int base = 10) |
| QByteArray & | setNum(long n, int base = 10) |
| QByteArray & | setNum(qlonglong n, int base = 10) |
| QByteArray & | setNum(qulonglong n, int base = 10) |
| QByteArray & | setNum(short n, int base = 10) |
| QByteArray & | setNum(uint n, int base = 10) |
| QByteArray & | setNum(ulong n, int base = 10) |
| QByteArray & | setNum(ushort n, int base = 10) |
| QByteArray & | setNum(double n, char format = 'g', int precision = 6) |
| QByteArray & | setNum(float n, char format = 'g', int precision = 6) |
| QByteArray & | setRawData(const char*data, qsizetype size) |
| void | shrink_to_fit() |
| QByteArray | simplified() const |
| qsizetype | size() const |
(since 6.8) QByteArray & | slice(qsizetype pos, qsizetype n) |
(since 6.8) QByteArray & | slice(qsizetype pos) |
(since 6.0) QByteArray | sliced(qsizetype pos, qsizetype n) && |
(since 6.0) QByteArray | sliced(qsizetype pos, qsizetype n) const & |
(since 6.0) QByteArray | sliced(qsizetype pos) && |
(since 6.0) QByteArray | sliced(qsizetype pos) const & |
| QList<QByteArray> | split(char sep) const |
| void | squeeze() |
(since 6.0) bool | startsWith(QByteArrayView bv) const |
| bool | startsWith(char ch) const |
| void | swap(QByteArray&other) |
| QByteArray | toBase64(QByteArray::Base64Options options = Base64Encoding) const |
| CFDataRef | toCFData() const |
| double | toDouble(bool*ok = nullptr) const |
(since 6.5) emscripten::val | toEcmaUint8Array() |
| float | toFloat(bool*ok = nullptr) const |
| QByteArray | toHex(char separator = '\0') const |
| int | toInt(bool*ok = nullptr, int base = 10) const |
| long | toLong(bool*ok = nullptr, int base = 10) const |
| qlonglong | toLongLong(bool*ok = nullptr, int base = 10) const |
| QByteArray | toLower() const |
| NSData * | toNSData() const |
| QByteArray | toPercentEncoding(const QByteArray&exclude = QByteArray(), const QByteArray&include = QByteArray(), char percent = '%') const |
| CFDataRef | toRawCFData() const |
| NSData * | toRawNSData() const |
| short | toShort(bool*ok = nullptr, int base = 10) const |
| std::string | toStdString() const |
| uint | toUInt(bool*ok = nullptr, int base = 10) const |
| ulong | toULong(bool*ok = nullptr, int base = 10) const |
| qulonglong | toULongLong(bool*ok = nullptr, int base = 10) const |
| ushort | toUShort(bool*ok = nullptr, int base = 10) const |
| QByteArray | toUpper() const |
| QByteArray | trimmed() const |
| void | truncate(qsizetype pos) |
| operator const char *() const | |
| operator const void *() const | |
(since 6.10) | operator std::string_view() const |
| QByteArray & | operator+=(const QByteArray&ba) |
| QByteArray & | operator+=(char ch) |
| QByteArray & | operator+=(const char*str) |
| QByteArray & | operator=(QByteArray &&other) |
| QByteArray & | operator=(const QByteArray&other) |
| QByteArray & | operator=(const char*str) |
| char & | operator[](qsizetype i) |
| char | operator[](qsizetype i) const |
Membres publics statiques
| QByteArray | fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding) |
| QByteArray::FromBase64Result | fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding) |
| QByteArray::FromBase64Result | fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding) |
| QByteArray | fromCFData(CFDataRef data) |
(since 6.5) QByteArray | fromEcmaUint8Array(emscripten::val uint8array) |
| QByteArray | fromHex(const QByteArray &hexEncoded) |
| QByteArray | fromNSData(const NSData *data) |
| QByteArray | fromPercentEncoding(const QByteArray &input, char percent = '%') |
(since 6.11) QByteArray | fromPercentEncoding(QByteArray &&input, char percent = '%') |
| QByteArray | fromRawCFData(CFDataRef data) |
| QByteArray | fromRawData(const char *data, qsizetype size) |
| QByteArray | fromRawNSData(const NSData *data) |
| QByteArray | fromStdString(const std::string &str) |
(since 6.8) qsizetype | maxSize() |
| QByteArray | number(int n, int base = 10) |
| QByteArray | number(long n, int base = 10) |
| QByteArray | number(qlonglong n, int base = 10) |
| QByteArray | number(qulonglong n, int base = 10) |
| QByteArray | number(uint n, int base = 10) |
| QByteArray | number(ulong n, int base = 10) |
| QByteArray | number(double n, char format = 'g', int precision = 6) |
Éléments non membres associés
(since 6.1) qsizetype | erase(QByteArray &ba, const T &t) |
(since 6.1) qsizetype | erase_if(QByteArray &ba, Predicate pred) |
| quint16 | qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309) |
| QByteArray | qCompress(const QByteArray &data, int compressionLevel = -1) |
| QByteArray | qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1) |
| QByteArray | qUncompress(const QByteArray &data) |
| QByteArray | qUncompress(const uchar *data, qsizetype nbytes) |
| int | qstrcmp(const char *str1, const char *str2) |
| char * | qstrcpy(char *dst, const char *src) |
| char * | qstrdup(const char *src) |
| int | qstricmp(const char *str1, const char *str2) |
| size_t | qstrlen(const char *str) |
| int | qstrncmp(const char *str1, const char *str2, size_t len) |
| char * | qstrncpy(char *dst, const char *src, size_t len) |
| int | qstrnicmp(const char *s1, const char *s2, size_t len) |
| size_t | qstrnlen(const char *str, size_t maxlen) |
| bool | operator!=(const QByteArray &lhs, const QByteArray &rhs) |
| bool | operator!=(const QByteArray &lhs, const char *const &rhs) |
| bool | operator!=(const char *const &lhs, const QByteArray &rhs) |
(since 6.4) QByteArray | operator""_ba(const char *str, size_t size) |
| QByteArray | operator+(const QByteArray &a1, const QByteArray &a2) |
(since 6.9) QByteArray | operator+(QByteArrayView lhs, const QByteArray &rhs) |
| QByteArray | operator+(char a1, const QByteArray &a2) |
(since 6.9) QByteArray | operator+(const QByteArray &lhs, QByteArrayView rhs) |
| QByteArray | operator+(const QByteArray &a1, char a2) |
| QByteArray | operator+(const QByteArray &a1, const char *a2) |
| QByteArray | operator+(const char *a1, const QByteArray &a2) |
| bool | operator<(const QByteArray &lhs, const QByteArray &rhs) |
| bool | operator<(const QByteArray &lhs, const char *const &rhs) |
| bool | operator<(const char *const &lhs, const QByteArray &rhs) |
| QDataStream & | operator<<(QDataStream &out, const QByteArray &ba) |
| bool | operator<=(const QByteArray &lhs, const QByteArray &rhs) |
| bool | operator<=(const QByteArray &lhs, const char *const &rhs) |
| bool | operator<=(const char *const &lhs, const QByteArray &rhs) |
| bool | operator==(const QByteArray &lhs, const QByteArray &rhs) |
| bool | operator==(const QByteArray &lhs, const char *const &rhs) |
| bool | operator==(const char *const &lhs, const QByteArray &rhs) |
| bool | operator>(const QByteArray &lhs, const QByteArray &rhs) |
| bool | operator>(const QByteArray &lhs, const char *const &rhs) |
| bool | operator>(const char *const &lhs, const QByteArray &rhs) |
| bool | operator>=(const QByteArray &lhs, const QByteArray &rhs) |
| bool | operator>=(const QByteArray &lhs, const char *const &rhs) |
| bool | operator>=(const char *const &lhs, const QByteArray &rhs) |
| QDataStream & | operator>>(QDataStream &in, QByteArray &ba) |
Macros
| QByteArrayLiteral(ba) | |
| QT_NO_CAST_FROM_BYTEARRAY | |
(since 6.8) | QT_NO_QSNPRINTF |
Description détaillée
QByteArray peut être utilisé pour stocker à la fois des octets bruts (y compris les «\0 ») et des chaînes traditionnelles de 8 bits terminées par «\0 ». L'utilisation de QByteArray est bien plus pratique que celle d'const char *. En arrière-plan, il garantit toujours que les données sont suivies d'un terminateur «\0 » et utilise le partage implicite (copie à l'écriture) pour réduire l'utilisation de la mémoire et éviter toute copie inutile des données.
Outre QByteArray, Qt fournit également la classe ` QString ` pour stocker des données de type chaîne. Dans la plupart des cas, c’est la classe ` QString ` que vous devrez utiliser. Elle interprète son contenu comme du texte Unicode (encodé en UTF-16), tandis que `QByteArray` vise à ne faire aucune supposition quant à l’encodage ou à la sémantique des octets qu’elle stocke (à l’exception de quelques cas hérités où elle utilise l’ASCII). De plus, la classe ` QString ` est utilisée partout dans l’API Qt. Les deux principaux cas où `QByteArray` est approprié sont lorsque vous devez stocker des données binaires brutes et lorsque l’économie de mémoire est cruciale (par exemple, avec Qt pour Linux embarqué).
Une façon d’initialiser un QByteArray consiste simplement à passer un const char * à son constructeur. Par exemple, le code suivant crée un tableau d’octets de taille 5 contenant la chaîne « Hello » :
QByteArray ba("Hello");Bien que la fonction ` size()` renvoie 5, le tableau d’octets conserve également un octet supplémentaire «\0 » à la fin. Ainsi, si une fonction est utilisée qui demande un pointeur vers les données sous-jacentes (par exemple, un appel à ` data()`), les données pointées sont garanties d’être terminées par «\0 ».
QByteArray effectue une copie profonde des données const char *, ce qui vous permet de les modifier ultérieurement sans subir d’effets secondaires. (Si, par exemple pour des raisons de performances, vous ne souhaitez pas effectuer de copie profonde des données, utilisez plutôt QByteArray::fromRawData().)
Une autre approche consiste à définir la taille du tableau à l’aide de ` resize()` et à initialiser les données octet par octet. QByteArray utilise des index commençant à 0, tout comme les tableaux C++. Pour accéder à l’octet situé à un indice donné, vous pouvez utiliser l’opérateur [](). Sur les tableaux d’octets non constants, l’opérateur []() renvoie une référence à un octet qui peut être utilisée à gauche d’une affectation. Par exemple :
QByteArray ba;
ba.resize(5);
ba[0] = 0x3c;
ba[1] = 0xb8;
ba[2] = 0x64;
ba[3] = 0x18;
ba[4] = 0xca;Pour un accès en lecture seule, une syntaxe alternative consiste à utiliser ` at()` :
for (qsizetype i = 0; i < ba.size(); ++i) {
if (ba.at(i) >= 'a' && ba.at(i) <= 'f')
cout << "Found character in range [a-f]" << endl;
}at() peut être plus rapide que l'opérateur [](), car il ne provoque jamais de copie profonde.
Pour extraire plusieurs octets à la fois, utilisez first(), last() ou sliced().
Un QByteArray peut intégrer des octets «\0 ». La fonction size() renvoie toujours la taille totale du tableau, y compris les octets «\0 » intégrés, mais à l’exclusion de l’octet de fin «\0 » ajouté par QByteArray. Par exemple :
QByteArray ba1("ca\0r\0t");
ba1.size(); // Returns 2.
ba1.constData(); // Returns "ca" with terminating \0.
QByteArray ba2("ca\0r\0t", 3);
ba2.size(); // Returns 3.
ba2.constData(); // Returns "ca\0" with terminating \0.
QByteArray ba3("ca\0r\0t", 4);
ba3.size(); // Returns 4.
ba3.constData(); // Returns "ca\0r" with terminating \0.
const char cart[] = {'c', 'a', '\0', 'r', '\0', 't'};
QByteArray ba4(QByteArray::fromRawData(cart, 6));
ba4.size(); // Returns 6.
ba4.constData(); // Returns "ca\0r\0t" without terminating \0.Si vous souhaitez obtenir la longueur des données jusqu’au premier octet «\0 » inclus, appelez la fonction qstrlen() sur le tableau d’octets.
Après un appel à ` resize()`, les octets nouvellement alloués ont des valeurs indéfinies. Pour attribuer une valeur particulière à tous les octets, appelez ` fill()`.
Pour obtenir un pointeur vers les octets réels, appelez ` data()` ou ` constData()`. Ces fonctions renvoient un pointeur vers le début des données. Il est garanti que ce pointeur reste valide jusqu’à ce qu’une fonction non constante soit appelée sur le QByteArray. Il est également garanti que les données se terminent par un octet «\0 », sauf si le QByteArray a été créé à partir de raw data. Cet octet «\0 » est automatiquement fourni par QByteArray et n’est pas pris en compte dans la fonction size().
QByteArray fournit les fonctions de base suivantes pour modifier les données en octets : ` append()`, ` prepend()`, ` insert()`, ` replace()` et ` remove()`. Par exemple :
QByteArray x("and");
x.prepend("rock "); // x == "rock and"
x.append(" roll"); // x == "rock and roll"
x.replace(5, 3, "&"); // x == "rock & roll"Dans l'exemple ci-dessus, les deux premiers arguments de la fonction replace() sont la position à partir de laquelle commencer le remplacement et le nombre d’octets à remplacer.
Lorsque des fonctions modifiant les données augmentent la taille du tableau, elles peuvent entraîner une réallocation de mémoire pour l’objet `QByteArray`. Lorsque cela se produit, `QByteArray` s’étend au-delà de ses besoins immédiats afin de disposer d’espace pour une expansion ultérieure sans réallocation, jusqu’à ce que la taille du tableau ait considérablement augmenté.
Les fonctions ` insert()`, ` remove()` et, lors du remplacement d’un sous-tableau par un autre de taille différente, ` replace()` peuvent s’avérer lentes (temps linéaire) pour les grands tableaux, car elles nécessitent de déplacer de nombreux octets du tableau d’au moins une position en mémoire.
Si vous construisez un `QByteArray` progressivement et que vous connaissez à l’avance le nombre approximatif d’octets qu’il contiendra, vous pouvez appeler ` reserve()`, demandant ainsi à `QByteArray` de préallouer une certaine quantité de mémoire. Vous pouvez également appeler ` capacity()` pour connaître la quantité de mémoire effectivement allouée par le `QByteArray`.
Notez que l’utilisation d’opérateurs et de fonctions non-const peut amener QByteArray à effectuer une copie profonde des données, en raison du partage implicite.
QByteArray fournit des itérateurs de type STL (QByteArray::const_iterator et QByteArray::iterator). En pratique, les itérateurs sont pratiques lorsque l’on utilise les algorithmes génériques fournis par la bibliothèque standard C++.
Remarque : les itérateurs et les références aux éléments individuels de QByteArray sont sujets à des problèmes de stabilité. Ils sont souvent invalidés lorsqu’une opération modifiant QByteArray (par exemple insert() ou remove()) est appelée. Lorsque la stabilité et une fonctionnalité de type itérateur sont requises, vous devez utiliser des index plutôt que des itérateurs, car ceux-ci ne sont pas liés à l’état interne de QByteArray et ne sont donc pas invalidés.
Remarque : on ne peut pas compter sur la validitédes itérateurs sur un QByteArray, ni sur celle des références aux octets individuels qu’il contient, lorsqu’une méthode non-const de QByteArray est appelée. L'accès à un tel itérateur ou à une telle référence après l'appel d'une méthode non constante entraîne un comportement indéfini. Lorsque la stabilité des fonctionnalités de type itérateur est requise, vous devez utiliser des index plutôt que des itérateurs, car ceux-ci ne sont pas liés à l'état interne de QByteArray et ne sont donc pas invalidés.
Si vous souhaitez trouver toutes les occurrences d’un octet ou d’une séquence d’octets particulière dans un QByteArray, utilisez indexOf() ou lastIndexOf(). La première effectue une recherche vers l'avant à partir d'un indice donné, tandis que la seconde effectue une recherche vers l'arrière. Les deux fonctionnent renvoient l'indice de la séquence d'octets si elles la trouvent ; dans le cas contraire, elles renvoient -1. Voici, par exemple, une boucle typique permettant de trouver toutes les occurrences d’une chaîne de caractères donnée :
QByteArray ba("We must be <b>bold</b>, very <b>bold</b>");
qsizetype j = 0;
while ((j = ba.indexOf("<b>", j)) != -1) {
cout << "Found <b> tag at index position " << j << endl;
++j;
}Si vous souhaitez simplement vérifier si un QByteArray contient une séquence d’octets particulière, utilisez ` contains()`. Si vous souhaitez connaître le nombre d’occurrences d’une séquence d’octets particulière dans le tableau d’octets, utilisez ` count()`. Si vous souhaitez remplacer toutes les occurrences d'une valeur donnée par une autre, utilisez l'une des surcharges à deux paramètres de la fonction ` replace()`.
QByteArrayLes tableaux d’octets peuvent être comparés à l’aide d’opérateurs surchargés tels que `operator<()`, `operator<=()`, `operator==()`, `operator>=()`, etc. La comparaison repose exclusivement sur les valeurs numériques des octets et est très rapide, mais ne correspond pas à ce à quoi s’attendrait un utilisateur. La fonction ` QString::localeAwareCompare()` constitue un meilleur choix pour le tri des chaînes de caractères de l’interface utilisateur.
Pour des raisons historiques, QByteArray fait la distinction entre un tableau d’octets nul et un tableau d’octets vide. Un tableau d’octets nul est un tableau d’octets initialisé à l’aide du constructeur par défaut de QByteArray ou en passant (const char *)0 au constructeur. Un tableau d’octets vide est tout tableau d’octets de taille 0. Un tableau d’octets nuls est toujours vide, mais un tableau d’octets vide n’est pas nécessairement nul :
QByteArray().isNull(); // returns true
QByteArray().isEmpty(); // returns true
QByteArray("").isNull(); // returns false
QByteArray("").isEmpty(); // returns true
QByteArray("abc").isNull(); // returns false
QByteArray("abc").isEmpty(); // returns falseToutes les fonctions, à l'exception de ` isNull()``, traitent les tableaux d'octets nuls de la même manière que les tableaux d'octets vides. Par exemple, ` data()` renvoie un pointeur valide (etnon `nullptr`) vers un octet «\0 » pour un tableau d'octets nuls, et `QByteArray()` est considéré comme égal à `QByteArray("")`. Nous vous recommandons de toujours utiliser ` isEmpty()` et d’éviter ` isNull()`.
Taille maximale et conditions de manque de mémoire
La taille maximale de QByteArray dépend de l’architecture. La plupart des systèmes 64 bits peuvent allouer plus de 2 Go de mémoire, avec une limite typique de 2^63 octets. La valeur réelle dépend également de la surcharge nécessaire à la gestion du bloc de données. Par conséquent, vous pouvez vous attendre à une taille maximale de 2 Go moins la surcharge sur les plateformes 32 bits, et de 2^63 octets moins la surcharge sur les plateformes 64 bits. Le nombre d’éléments pouvant être stockés dans un QByteArray correspond à cette taille maximale.
En cas d'échec de l'allocation de mémoire, QByteArray lève une exception « std::bad_alloc » si l'application est compilée avec la prise en charge des exceptions. Les situations de mémoire insuffisante dans les conteneurs Qt constituent le seul cas où Qt lève des exceptions. Si les exceptions sont désactivées, le manque de mémoire entraîne un comportement indéfini.
Notez que le système d’exploitation peut imposer des limites supplémentaires aux applications occupant beaucoup de mémoire allouée, en particulier des blocs contigus de grande taille. Ces considérations, la configuration de ce comportement ou toute mesure d’atténuation sortent du champ d’application de l’API QByteArray.
Locale C et fonctions ASCII
QByteArray traite généralement les données sous forme d’octets, sans présupposer de sémantique ; lorsqu’il présuppose une sémantique, il utilise la locale C et le codage ASCII. Les codages Unicode standard sont pris en charge par QString; d’autres codages peuvent être pris en charge à l’aide de QStringEncoder et QStringDecoder pour la conversion en Unicode. Pour une interprétation du texte spécifique à la locale, utilisez QLocale ou QString.
Chaînes C
Les chaînes C traditionnelles, également appelées chaînes terminées par «\0 », sont des séquences d'octets, spécifiées par un point de départ et incluant implicitement chaque octet jusqu'au premier octet «\0 » suivant, sans celui-ci. Les méthodes qui acceptent un tel pointeur, sans spécification de longueur, l’interpréteront comme cette séquence d’octets. Une telle séquence, de par sa construction, ne peut pas contenir d’octet «\0 ».
D’autres surcharges acceptent un pointeur de départ et un nombre d’octets ; celles-ci utilisent le nombre d’octets indiqué, à partir de l’adresse de départ, que certains d’entre eux soient ou non des octets «\0 ». Dans certains cas, lorsqu’il n’existe aucune surcharge ne prenant qu’un pointeur, le fait de passer une longueur égale à -1 entraînera que la méthode utilise comme longueur le décalage du premier octet «\0 » situé après le pointeur ; une longueur égale à -1 ne doit être transmise que si la méthode indique explicitement qu’elle procède ainsi (auquel cas il s’agit généralement d’un argument par défaut).
Caractères d'espacement
Il est souvent nécessaire de supprimer les caractères d'espacement d'un tableau d'octets ('\n', '\t', ' ', etc.). Si vous souhaitez supprimer les espaces aux deux extrémités d’un QByteArray, utilisez trimmed(). Si vous souhaitez également remplacer chaque série de caractères d’espacement par un seul caractère d’espace au sein du tableau d’octets, utilisez simplified(). Seuls les caractères d’espacement ASCII sont pris en charge à ces fins.
Conversions nombre-chaîne
Les fonctions qui effectuent des conversions entre les types de données numériques et leurs représentations sous forme de chaînes de caractères sont exécutées selon les paramètres régionaux C, quels que soient les paramètres régionaux définis par l’utilisateur. Utilisez QLocale pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Cas des caractères
Dans QByteArray, la notion de majuscules et minuscules ainsi que la comparaison insensible à la casse sont limitées à l'ASCII. Les caractères non ASCII sont traités comme insensibles à la casse, car leur casse dépend de l'encodage. Cela affecte les fonctions qui prennent en charge une option insensible à la casse ou qui modifient la casse de leurs arguments. Les fonctions concernées sont notamment : ` compare()`, ` isLower()`, ` isUpper()`, ` toLower()` et ` toUpper()`.
Ce problème ne concerne pas les QString, car celles-ci représentent les caractères à l’aide d’Unicode.
Voir également QByteArrayView, QString et QBitArray.
Documentation sur les types de membres
enum QByteArray::Base64Option
flags QByteArray::Base64Options
Cette énumération contient les options disponibles pour l'encodage et le décodage Base64. Le format Base64 est défini par la spécification RFC 4648, avec les options suivantes :
| Constante | Valeur | Description |
|---|---|---|
QByteArray::Base64Encoding | 0 | (par défaut) L'alphabet Base64 standard, appelé simplement « base64 » |
QByteArray::Base64UrlEncoding | 1 | Un alphabet alternatif, appelé « base64url », qui remplace deux caractères de l'alphabet afin d'être plus compatible avec les URL. |
QByteArray::KeepTrailingEquals | 0 | (par défaut) Conserve les signes égal de remplissage à la fin des données encodées, afin que la taille des données soit toujours un multiple de quatre. |
QByteArray::OmitTrailingEquals | 2 | Omette d'ajouter les signes égal de remplissage à la fin des données encodées. |
QByteArray::IgnoreBase64DecodingErrors | 0 | Lors du décodage de données encodées en Base64, ignore les erreurs dans l'entrée ; les caractères non valides sont simplement ignorés. Cette valeur d'énumération a été ajoutée dans Qt 5.15. |
QByteArray::AbortOnBase64DecodingErrors | 4 | Lors du décodage de données encodées en Base64, s'arrête à la première erreur de décodage. Cette valeur d'énumération a été ajoutée dans Qt 5.15. |
QByteArray::fromBase64Encoding() et QByteArray::fromBase64() ignorent les options KeepTrailingEquals et OmitTrailingEquals. Si l’option IgnoreBase64DecodingErrors est spécifiée, elles ne signaleront pas d’erreurs en cas d’absence de signes égal de fin ou s’il y en a trop. Si, en revanche, l’option `AbortOnBase64DecodingErrors` est spécifiée, alors l’entrée ne doit comporter aucun remplissage ou doit comporter le nombre correct de signes égal.
Le type `Base64Options` est un `typedef` pour ` QFlags<Base64Option>`. Il stocke une combinaison OR de valeurs `Base64Option`.
QByteArray::const_iterator
Ce `typedef` fournit un itérateur `const` de type STL pour ` QByteArray`.
Voir également QByteArray::const_reverse_iterator et QByteArray::iterator.
QByteArray::const_reverse_iterator
Ce `typedef` fournit un itérateur inversé de type `const` (à la manière de la STL) pour ` QByteArray`.
Voir également QByteArray::reverse_iterator et QByteArray::const_iterator.
QByteArray::iterator
Ce `typedef` fournit un itérateur non-const de type STL pour ` QByteArray`.
Voir également QByteArray::reverse_iterator et QByteArray::const_iterator.
QByteArray::reverse_iterator
Ce `typedef` fournit un itérateur inversé non-const de type STL pour ` QByteArray`.
Voir également QByteArray::const_reverse_iterator et QByteArray::iterator.
Documentation des fonctions membres
[constexpr noexcept] QByteArray::QByteArray()
Crée un tableau d'octets vide.
Voir aussi isEmpty().
[explicit, since 6.8] QByteArray::QByteArray(QByteArrayView v)
Crée un tableau d'octets initialisé avec les données de la vue de tableau d'octets.
Le QByteArray sera nul si et seulement si « v » est nul.
Cette fonction a été introduite dans Qt 6.8.
QByteArray::QByteArray(const char *data, qsizetype size = -1)
Crée un tableau d'octets contenant les size premiers octets du tableau data.
Si data est égal à 0, un tableau d’octets nul est créé.
Si size est négatif, data est supposé pointer vers une chaîne terminée par «\0 » et sa longueur est déterminée dynamiquement.
QByteArray effectue une copie profonde des données de la chaîne.
Voir également fromRawData().
QByteArray::QByteArray(qsizetype size, Qt::Initialization)
Crée un tableau d'octets de taille size dont le contenu n'est pas initialisé.
Par exemple :
QByteArray buffer(123, Qt::Uninitialized);QByteArray::QByteArray(qsizetype size, char ch)
Crée un tableau d'octets de taille size, chaque octet étant défini sur ch.
Voir aussi fill().
[noexcept] QByteArray::QByteArray(const QByteArray &other)
Crée une copie de ` other`.
Cette opération s'effectue en temps constant, car QByteArray est implicitement partagé. Cela rend très rapide le retour d'un QByteArray depuis une fonction. Si une instance partagée est modifiée, elle sera copiée (copie à l'écriture), ce qui prend un temps linéaire.
Voir également operator=().
[noexcept default] QByteArray::QByteArray(QByteArray &&other)
Crée une instance de `QByteArray` par copie, de sorte qu'elle pointe vers le même objet que celui vers lequel poin other.
[noexcept] QByteArray::~QByteArray()
Supprime le tableau d'octets.
QByteArray &QByteArray::append(const QByteArray &ba)
Ajoute le tableau d'octets ba à la fin de ce tableau d'octets.
Exemple :
QByteArray x("free");
QByteArray y("dom");
x.append(y);
// x == "freedom"Cela revient à utiliser insert(size(), ba).
Remarque : QByteArray est une classe implicitement partagée. Par conséquent, si vous ajoutez des éléments à un tableau d’octets vide, celui-ci partagera simplement les données contenues dans ba. Dans ce cas, aucune copie des données n’est effectuée, ce qui prend un temps constant. Si une instance partagée est modifiée, elle sera copiée (copie à l’écriture), ce qui prend un temps linéaire.
Si le tableau d’octets auquel on ajoute des éléments n’est pas vide, une copie profonde des données est effectuée, ce qui prend un temps linéaire.
La fonction `append()` est généralement très rapide (temps constant), car ` QByteArray ` préalloue de l’espace supplémentaire à la fin des données, ce qui lui permet de s’étendre sans avoir à réallouer l’intégralité du tableau à chaque fois.
Voir également operator+=(), prepend() et insert().
QByteArray &QByteArray::append(QByteArrayView data)
Ajoute « data » à ce tableau d'octets.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::append(char ch)
Ajoute l'ch d'octets à ce tableau d'octets.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::append(const char *str)
Ajoute la chaîne «\0 », terminée par un « ' », str à ce tableau d'octets.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::append(const char *str, qsizetype len)
Ajoute les premiers len octets, à partir de l'adresse str, à ce tableau d'octets et renvoie une référence à ce tableau d'octets. Les octets ajoutés peuvent inclure des octets «\0 ».
Si ` len ` est négatif, ` str ` sera considéré comme une chaîne terminée par «\0 » et la longueur à copier sera déterminée automatiquement à l’aide de la fonction ` qstrlen()`.
Si ` len ` est égal à zéro ou si ` str ` est nul, rien n’est ajouté au tableau d’octets. Assurez-vous que ` len ` ne soit pas plus long que ` str`.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::append(qsizetype count, char ch)
Ajoute count copies de l'ch, de type octet, à ce tableau d'octets et renvoie une référence à ce tableau d'octets.
Si count est négatif ou égal à zéro, rien n’est ajouté au tableau d’octets.
Il s'agit d'une fonction surchargée.
[since 6.6] QByteArray &QByteArray::assign(QByteArrayView v)
Remplace le contenu de ce tableau d'octets par une copie de v et renvoie une référence à ce tableau d'octets.
La taille de ce tableau d’octets sera égale à celle de v.
Cette fonction n'alloue de la mémoire que si la taille de ` v ` dépasse la capacité de ce tableau d'octets ou si ce tableau d'octets est partagé.
Cette fonction a été introduite dans Qt 6.6.
[since 6.6] template <typename InputIterator, QByteArray::if_input_iterator<InputIterator> = true> QByteArray &QByteArray::assign(InputIterator first, InputIterator last)
Remplace le contenu de ce tableau d'octets par une copie des éléments de la plage de l'itérateur [first, last) et renvoie une référence à ce tableau d'octets.
La taille de ce tableau d'octets sera égale au nombre d’éléments compris dans l’intervalle [first, last).
Cette fonction n’allouera de la mémoire que si le nombre d’éléments de la plage dépasse la capacité de ce tableau d’octets ou si ce tableau d’octets est partagé.
Remarque : le comportement est indéfini si l’un des arguments est un itérateur pointant vers *this ou si [first, last) n’est pas une plage valide.
Contraintes
Ne participe à la résolution des surcharges que si InputIterator répond aux exigences d’un LegacyInputIterator.
Cette fonction a été introduite dans Qt 6.6.
[since 6.6] QByteArray &QByteArray::assign(qsizetype n, char c)
Remplace le contenu de ce tableau d'octets par n copies de c et renvoie une référence à ce tableau d'octets.
La taille de ce tableau d’octets sera égale à n, qui doit être un nombre non négatif.
Cette fonction n’allouera de la mémoire que si n dépasse la capacité de ce tableau d’octets ou si ce tableau d’octets est partagé.
Cette fonction a été introduite dans Qt 6.6.
Voir également fill().
char QByteArray::at(qsizetype i) const
Renvoie l'octet situé à l'index i dans le tableau d'octets.
i i doit être une position d'index valide dans le tableau d'octets (c'est-à-dire 0 <= < ()). size
Voir également operator[]().
char &QByteArray::back()
Renvoie une référence au dernier octet du tableau d'octets. Équivalent à ` operator[](size() - 1)`.
Cette fonction est fournie à des fins de compatibilité avec la STL.
Avertissement : l'appel de cette fonction sur un tableau d'octets vide entraîne un comportement indéfini.
Voir également front(), at() et operator[]().
char QByteArray::back() const
Renvoie le dernier octet du tableau d'octets. Équivalent à ` at(size() - 1)`.
Cette fonction est fournie à des fins de compatibilité avec la STL.
Avertissement : l'appel de cette fonction sur un tableau d'octets vide entraîne un comportement indéfini.
Voir également front(), at() et operator[]().
QByteArray::iterator QByteArray::begin()
Renvoie un itérateur de type STL pointant vers le premier octet du tableau d'octets.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque la fonction QByteArray est modifiée.
Voir également ` constBegin()` et ` end()`.
[noexcept] QByteArray::const_iterator QByteArray::begin() const
Cette fonction surcharge la méthode ` QByteArray::begin()`.
qsizetype QByteArray::capacity() const
Renvoie le nombre maximal d'octets pouvant être stockés dans le tableau d'octets sans nécessiter de réallocation.
Cette fonction a pour seul but de permettre un réglage fin de l'utilisation de la mémoire par QByteArray. En général, vous n'aurez que très rarement besoin d'appeler cette fonction. Si vous souhaitez connaître le nombre d'octets contenus dans le tableau d'octets, appelez size().
Remarque : un tableau d’octets alloué de manière statique indiquera une capacité de 0, même s’il n’est pas vide.
Remarque : l’emplacement de l’ espace libre dans le bloc de mémoire alloué n’est pas défini. En d’autres termes, il ne faut pas supposer que la mémoire libre se trouve toujours après les éléments initialisés.
Voir également reserve() et squeeze().
[noexcept] QByteArray::const_iterator QByteArray::cbegin() const
Renvoie un itérateur de type STL de type const pointant vers le premier octet du tableau d'octets.
Avertissement : l’itérateur renvoyé est invalidé en cas de détachement ou lorsque l’ QByteArray est modifiée.
Voir également ` begin()` et ` cend()`.
[noexcept] QByteArray::const_iterator QByteArray::cend() const
Renvoie un itérateur de type STL constant pointant juste après le dernier octet du tableau d'octets.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QByteArray est modifiée.
Voir également ` cbegin()` et ` end()`.
void QByteArray::chop(qsizetype n)
Supprime n octets à la fin du tableau d'octets.
Si la valeur de ` n ` est supérieure à ` size()`, le résultat est un tableau d'octets vide.
Exemple :
QByteArray ba("STARTTLS\r\n");
ba.chop(2); // ba == "STARTTLS"Voir également truncate(), resize() et first().
QByteArray QByteArray::chopped(qsizetype len) &&
QByteArray QByteArray::chopped(qsizetype len) const &
Renvoie un tableau d'octets contenant les octets situés le plus à gauche de ce tableau d'octets, à savoir : size() - len.
Remarque : le comportement est indéfini si len est négatif ou supérieur à size().
Voir également endsWith(), first(), last(), sliced(), chop(), truncate() et slice().
void QByteArray::clear()
Efface le contenu du tableau d'octets et le remet à zéro.
Voir également resize() et isNull().
[noexcept, since 6.0] int QByteArray::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Renvoie un entier inférieur, égal ou supérieur à zéro selon que cette QByteArray se situe avant, à la même position ou après la QByteArrayView bv . La comparaison tient compte de la casse cs.
Cette fonction a été introduite dans Qt 6.0.
Voir également operator== et Character Case.
[noexcept] QByteArray::const_iterator QByteArray::constBegin() const
Renvoie un itérateur de type STL constant pointant vers le premier octet du tableau d'octets.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QByteArray est modifiée.
Voir également ` begin()` et ` constEnd()`.
[noexcept] const char *QByteArray::constData() const
Renvoie un pointeur vers les données constantes stockées dans le tableau d'octets. Ce pointeur permet d'accéder aux octets qui composent le tableau. Les données sont terminées par «\0 », sauf si l'objet ` QByteArray ` a été créé à partir de données brutes.
Le pointeur reste valide tant qu’aucun détachement n’a lieu et que l’objet ` QByteArray ` n’est pas modifié.
Cette fonction est principalement utile pour transmettre un tableau d’octets à une fonction qui accepte un ` const char *`.
Remarque : un « QByteArray » peut stocker n’importe quelle valeur d’octet, y compris des «\0 », mais la plupart des fonctions prenant des arguments de type « char * » supposent que les données se terminent au premier «\0 » rencontré.
Voir également data(), operator[]() et fromRawData().
[noexcept] QByteArray::const_iterator QByteArray::constEnd() const
Renvoie un itérateur de type STL constant pointant juste après le dernier octet du tableau d'octets.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QByteArray est modifiée.
Voir également ` constBegin()` et ` end()`.
[since 6.0] bool QByteArray::contains(QByteArrayView bv) const
Renvoie « true » si ce tableau d'octets contient une occurrence de la séquence d'octets analysée par « bv » ; sinon, renvoie « false ».
Cette fonction a été introduite dans Qt 6.0.
Voir également indexOf() et count().
bool QByteArray::contains(char ch) const
Renvoie « true » si le tableau d’octets contient l’octet ch; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
[since 6.0] qsizetype QByteArray::count(QByteArrayView bv) const
Renvoie le nombre d’occurrences (pouvant se chevaucher) de la séquence d’octets analysée par la fonction ` bv ` dans ce tableau d’octets.
Cette fonction a été introduite dans Qt 6.0.
Voir également ` contains()` et ` indexOf()`.
qsizetype QByteArray::count(char ch) const
Renvoie le nombre d'occurrences de l'ch -octet dans le tableau d'octets.
Il s'agit d'une fonction surchargée.
Voir également ` contains()` et ` indexOf()`.
[noexcept] QByteArray::const_reverse_iterator QByteArray::crbegin() const
Renvoie un itérateur inversé de type STL (const) pointant vers le premier octet du tableau d'octets, dans l'ordre inverse.
Avertissement : l'itérateur renvoyé est invalidé lors du détachement ou lorsque l'objet ` QByteArray ` est modifié.
Voir également ` begin()`, ` rbegin()` et ` rend()`.
[noexcept] QByteArray::const_reverse_iterator QByteArray::crend() const
Renvoie un itérateur inversé de type STL (const) pointant juste après le dernier octet du tableau d'octets, dans l'ordre inverse.
Avertissement : l’itérateur renvoyé est invalidé en cas de détachement ou lorsque l’ QByteArray est modifiée.
Voir également ` end()`, ` rend()` et ` rbegin()`.
char *QByteArray::data()
Renvoie un pointeur vers les données stockées dans le tableau d'octets. Ce pointeur peut être utilisé pour accéder aux octets qui composent le tableau et les modifier. Les données sont terminées par «\0 », c'est-à-dire que le nombre d'octets accessibles à partir du pointeur renvoyé est égal à size() + 1, y compris le caractère de fin «\0 ».
Exemple :
QByteArray ba("Hello world");
char *data = ba.data();
while (*data) {
cout << "[" << *data << "]" << endl;
++data;
}Le pointeur reste valide tant qu’aucun détachement n’a lieu et que la chaîne « QByteArray » n’est pas modifiée.
Pour un accès en lecture seule, la fonction ` constData()` est plus rapide car elle ne provoque jamais de copie profonde.
Cette fonction est surtout utile pour passer un tableau d’octets à une fonction qui accepte un const char *.
L'exemple suivant effectue une copie du char* renvoyé par data(), mais il va corrompre le tas et provoquer un plantage car il n'alloue pas d'octet pour le «\0 » à la fin :
QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size()];
strcpy(data, text.data());
delete [] data;Celui-ci alloue la quantité d’espace correcte :
QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1];
strcpy(data, text.data());
delete [] data;Remarque : un QByteArray peut stocker n’importe quelle valeur d’octet, y compris les «\0 », mais la plupart des fonctions qui prennent des arguments de type char * supposent que les données se terminent au premier «\0 » qu’elles rencontrent.
Voir également ` constData()` et ` operator[]()`.
[noexcept] const char *QByteArray::data() const
Il s'agit d'une fonction surchargée.
QByteArray::iterator QByteArray::end()
Renvoie un itérateur de type STL pointant juste après le dernier octet du tableau d'octets.
Avertissement : l’itérateur renvoyé est invalidé en cas de détachement ou lorsque l’ QByteArray est modifié.
Voir également ` begin()` et ` constEnd()`.
[noexcept] QByteArray::const_iterator QByteArray::end() const
Cette fonction surcharge la méthode ` QByteArray::end()`.
[since 6.0] bool QByteArray::endsWith(QByteArrayView bv) const
Renvoie « true » si ce tableau d'octets se termine par la séquence d'octets décrite à l'adresse bv; sinon, renvoie « false ».
Exemple :
QByteArray url("http://qt-project.org/doc/qt-5.0/qtdoc/index.html");
if (url.endsWith(".html"))
{/*...*/}Cette fonction a été introduite dans Qt 6.0.
Voir également startsWith() et last().
bool QByteArray::endsWith(char ch) const
Renvoie « true » si ce tableau d'octets se termine par l'octet « ch » ; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
[since 6.1] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator first, QByteArray::const_iterator last)
Supprime de le tableau d'octets les caractères compris dans l'intervalle semi-ouvert [ first, last ). Renvoie un itérateur pointant vers le caractère référencé par last avant la suppression.
Cette fonction a été introduite dans Qt 6.1.
[since 6.5] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator it)
Supprime le caractère indiqué par ` it ` du tableau d'octets. Renvoie un itérateur pointant vers le caractère situé immédiatement après celui qui a été supprimé.
QByteArray ba = "abcdefg";
auto it = ba.erase(ba.cbegin()); // ba is now "bcdefg" and it points to "b"Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.5.
QByteArray &QByteArray::fill(char ch, qsizetype size = -1)
Définit chaque octet du tableau d'octets sur la valeur ` ch`. Si la valeur de ` size ` est différente de -1 (valeur par défaut), le tableau d'octets est préalablement redimensionné à la taille ` size `.
Exemple :
QByteArray ba("Istambul");
ba.fill('o');
// ba == "oooooooo"
ba.fill('X', 2);
// ba == "XX"Voir aussi resize().
[since 6.0] QByteArray QByteArray::first(qsizetype n) &&
[since 6.0] QByteArray QByteArray::first(qsizetype n) const &
Renvoie les n premiers octets du tableau d'octets.
Remarque : le comportement est indéfini lorsque ` n < 0` ou ` n > size()`.
Exemple :
QByteArray x("Pineapple");
QByteArray y = x.first(4);
// y == "Pine"Ces fonctions ont été introduites dans Qt 6.0.
Voir également last(), sliced(), startsWith(), chopped(), chop(), truncate() et slice().
[static] QByteArray QByteArray::fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
Renvoie une copie décodée du tableau Base64 base64, en utilisant les options définies par options. Si options contient IgnoreBase64DecodingErrors (valeur par défaut), la validité de l'entrée n'est pas vérifiée ; les caractères non valides de l'entrée sont ignorés, ce qui permet au processus de décodage de se poursuivre avec les caractères suivants. Si options contient AbortOnBase64DecodingErrors, le décodage s'arrête dès le premier caractère non valide.
Par exemple :
QByteArray text = QByteArray::fromBase64("UXQgaXMgZ3JlYXQh");
text.data(); // returns "Qt is great!"
QByteArray::fromBase64("PHA+SGVsbG8/PC9wPg==", QByteArray::Base64Encoding); // returns "<p>Hello?</p>"
QByteArray::fromBase64("PHA-SGVsbG8_PC9wPg==", QByteArray::Base64UrlEncoding); // returns "<p>Hello?</p>"L’algorithme utilisé pour décoder les données encodées en Base64 est défini dans la RFC 4648.
Renvoie les données décodées ou, si l’option AbortOnBase64DecodingErrors a été fournie et que les données d’entrée étaient invalides, un tableau d’octets vide.
Remarque : la fonction fromBase64Encoding() est recommandée dans les nouveaux codes.
Voir également toBase64() et fromBase64Encoding().
[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding)
[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
Décode le tableau Base64 base64, en utilisant les options définies par options. Si options contient IgnoreBase64DecodingErrors (valeur par défaut), la validité de l'entrée n'est pas vérifiée ; les caractères non valides de l'entrée sont ignorés, ce qui permet au processus de décodage de se poursuivre avec les caractères suivants. Si options contient AbortOnBase64DecodingErrors, le décodage s'arrête dès le premier caractère non valide.
Par exemple :
void process(const QByteArray &);
if (auto result = QByteArray::fromBase64Encoding(encodedData))
process(*result);L’algorithme utilisé pour décoder les données encodées en Base64 est défini dans la RFC 4648.
Renvoie un objet QByteArrayFromBase64Result, contenant les données décodées et un indicateur précisant si le décodage a réussi. Si l’option AbortOnBase64DecodingErrors a été fournie et que les données d’entrée étaient invalides, le contenu des données décodées n’est pas spécifié.
Voir également toBase64().
[static] QByteArray QByteArray::fromCFData(CFDataRef data)
Crée un nouvel objet ` QByteArray ` contenant une copie de l'objet `CFData` ` data`.
Voir également fromRawCFData(), fromRawData(), toRawCFData() et toCFData().
[static, since 6.5] QByteArray QByteArray::fromEcmaUint8Array(emscripten::val uint8array)
Crée un nouvel objet ` QByteArray ` contenant une copie de l'`Uint8Array` ` uint8array`.
Cette fonction transfère des données depuis un tampon de données JavaScript — qui n’est pas accessible depuis le code C++ — vers la mémoire du tas gérée par un objet ` QByteArray`. L’objet `Uint8Array` peut être libéré une fois que cette fonction a renvoyé une valeur et qu’une copie a été effectuée.
L’argument uint8array doit être un emscripten::val référençant un objet Uint8Array, obtenu par exemple à partir d’une variable JavaScript globale :
emscripten::val uint8array = emscripten::val::global("g_uint8array");
QByteArray byteArray = QByteArray::fromEcmaUint8Array(uint8array);Cette fonction renvoie un QByteArray nul si la taille de l’Uint8Array dépasse la capacité maximale de l’ QByteArray, ou si l’argument uint8array n’est pas de type Uint8Array.
Cette fonction a été introduite dans Qt 6.5.
Voir également ` toEcmaUint8Array()`.
[static] QByteArray QByteArray::fromHex(const QByteArray &hexEncoded)
Renvoie une copie décodée du tableau codé en hexadécimal hexEncoded. La validité des données d'entrée n'est pas vérifiée ; les caractères non valides présents dans les données d'entrée sont ignorés, ce qui permet au processus de décodage de se poursuivre avec les caractères suivants.
Par exemple :
QByteArray text = QByteArray::fromHex("517420697320677265617421");
text.data(); // returns "Qt is great!"Voir également toHex().
[static] QByteArray QByteArray::fromNSData(const NSData *data)
Crée un nouvel objet ` QByteArray ` contenant une copie de l'objet `NSData` ` data`.
Voir également fromRawNSData(), fromRawData(), toNSData() et toRawNSData().
[static] QByteArray QByteArray::fromPercentEncoding(const QByteArray &input, char percent = '%')
Décode les données de type « input » à partir d'un encodage en pourcentage au format URI/URL.
Renvoie un tableau d'octets contenant le texte décodé. Le paramètre ` percent ` permet d'utiliser un caractère différent de « % » (par exemple, « _ » ou « = ») comme caractère d'échappement. Équivalent à `input.percentDecoded` (pourcent).
Par exemple :
QByteArray text = QByteArray::fromPercentEncoding("Qt%20is%20great%33");
qDebug("%s", text.data()); // reports "Qt is great!"Voir également percentDecoded().
[static, since 6.11] QByteArray QByteArray::fromPercentEncoding(QByteArray &&input, char percent = '%')
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.11.
[static] QByteArray QByteArray::fromRawCFData(CFDataRef data)
Crée un objet ` QByteArray ` qui utilise les octets de l'objet `CFData` data.
dataLes octets de l’ ne sont pas copiés.
L'appelant garantit que l'objet CFData ne sera ni supprimé ni modifié tant que cet objet QByteArray existera.
Voir également fromCFData(), fromRawData(), toRawCFData() et toCFData().
[static] QByteArray QByteArray::fromRawData(const char *data, qsizetype size)
Construit un objet ` QByteArray ` qui utilise les ` size ` premiers octets du tableau ` data `. Les octets ne sont pas copiés. Le ` QByteArray ` contiendra le pointeur ` data `. L'appelant garantit que ` data ` ne sera ni supprimé ni modifié tant que cet objet ` QByteArray ` et toutes ses copies non modifiées existeront. En d’autres termes, étant donné que QByteArray est une classe implicitement partagée et que l’instance renvoyée par cette fonction contient le pointeur data, l’appelant ne doit pas supprimer data ni le modifier directement tant que l’instance QByteArray renvoyée et ses copies existent. Cependant, QByteArray ne prend pas possession de data; par conséquent, le destructeur QByteArray ne supprimera jamais l’objet brut data, même lorsque le dernier QByteArray faisant référence à data est détruit.
Toute tentative ultérieure de modification du contenu de l’objet QByteArray renvoyé ou de toute copie qui en a été faite entraînera la création d’une copie profonde du tableau data avant que la modification ne soit effectuée. Cela garantit que le tableau brut data lui-même ne sera jamais modifié par QByteArray.
Voici un exemple illustrant comment lire des données à l’aide d’un ` QDataStream ` sur des données brutes en mémoire sans copier ces dernières dans un ` QByteArray` :
static const char mydata[] = {
'\x00', '\x00', '\x03', '\x84', '\x78', '\x9c', '\x3b', '\x76',
'\xec', '\x18', '\xc3', '\x31', '\x0a', '\xf1', '\xcc', '\x99',
//...
'\x6d', '\x5b'
};
QByteArray data = QByteArray::fromRawData(mydata, sizeof(mydata));
QDataStream in(&data, QIODevice::ReadOnly);
//...Avertissement : un tableau d’octets créé avec fromRawData() n’ est pas terminé par «\0 », sauf si les données brutes contiennent un octet «\0 » à la position size. Bien que cela n’ait pas d’importance pour QDataStream ou des fonctions telles que indexOf(), le passage du tableau d’octets à une fonction acceptant un const char * censé être terminé par «\0 » échouera.
Voir également setRawData(), data(), constData(), nullTerminate() et nullTerminated().
[static] QByteArray QByteArray::fromRawNSData(const NSData *data)
Crée un objet ` QByteArray ` qui utilise les octets de l'data` de type `NSData`.
dataLes octets de l'objet `NSData` ne sont pas copiés.
L'appelant garantit que l'objet NSData ne sera ni supprimé ni modifié tant que cet objet ` QByteArray ` existera.
Voir également fromNSData(), fromRawData(), toRawNSData() et toNSData().
[static] QByteArray QByteArray::fromStdString(const std::string &str)
Renvoie une copie de la chaîne « str » sous la forme d'un objet « QByteArray ».
Voir aussi toStdString() et QString::fromStdString().
char &QByteArray::front()
Renvoie une référence au premier octet du tableau d'octets. Équivalent à ` operator[](0)`.
Cette fonction est fournie à des fins de compatibilité avec la STL.
Avertissement : l'appel de cette fonction sur un tableau d'octets vide entraîne un comportement indéfini.
Voir également back(), at() et operator[]().
char QByteArray::front() const
Renvoie le premier octet du tableau d'octets. Équivalent à ` at(0)`.
Cette fonction est fournie à des fins de compatibilité avec la STL.
Avertissement : l'appel de cette fonction sur un tableau d'octets vide entraîne un comportement indéfini.
Voir également back(), at() et operator[]().
[since 6.0] qsizetype QByteArray::indexOf(QByteArrayView bv, qsizetype from = 0) const
Renvoie l'index du début de la première occurrence de la séquence d'octets analysée par ` bv ` dans ce tableau d'octets, en effectuant une recherche vers l'avant à partir de l'index from. Renvoie -1 si aucune correspondance n'est trouvée.
Exemple :
QByteArray x("sticky question");
QByteArrayView y("sti");
x.indexOf(y); // returns 0
x.indexOf(y, 1); // returns 10
x.indexOf(y, 10); // returns 10
x.indexOf(y, 11); // returns -1Cette fonction a été introduite dans Qt 6.0.
Voir également lastIndexOf(), contains() et count().
qsizetype QByteArray::indexOf(char ch, qsizetype from = 0) const
Renvoie l'index du début de la première occurrence de l'ch de l'octet dans ce tableau d'octets, en effectuant une recherche vers l'avant à partir de l'index from. Renvoie -1 si aucune correspondance n'est trouvée.
Exemple :
QByteArray ba("ABCBA");
ba.indexOf("B"); // returns 1
ba.indexOf("B", 1); // returns 1
ba.indexOf("B", 2); // returns 3
ba.indexOf("X"); // returns -1Il s'agit d'une fonction surchargée.
Voir également lastIndexOf() et contains().
[since 6.0] QByteArray &QByteArray::insert(qsizetype i, QByteArrayView data)
Insère « data » à l'index i et renvoie une référence à ce tableau d'octets.
Exemple :
QByteArray ba("Meal");
ba.insert(1, QByteArrayView("ontr"));
// ba == "Montreal"Pour les grands tableaux d’octets, cette opération peut être lente (temps linéaire), car elle nécessite de déplacer tous les octets situés aux index i et supérieurs d’au moins une position plus loin dans la mémoire.
Ce tableau s'agrandit pour accueillir l'insertion. Si i se trouve au-delà de la fin du tableau, celui-ci est d'abord étendu avec des caractères d'espacement pour atteindre cette position i.
Cette fonction a été introduite dans Qt 6.0.
Voir également append(), prepend(), replace() et remove().
QByteArray &QByteArray::insert(qsizetype i, const QByteArray &data)
Insère data à l'index i et renvoie une référence à ce tableau d'octets.
Ce tableau s'agrandit pour accueillir l'insertion. Si i se trouve au-delà de la fin du tableau, celui-ci est d'abord étendu avec des caractères d'espacement pour atteindre cette position i.
Voir également append(), prepend(), replace() et remove().
QByteArray &QByteArray::insert(qsizetype i, const char *s)
Insère s à l'index i et renvoie une référence à ce tableau d'octets.
Ce tableau s'agrandit pour accueillir l'insertion. Si i se trouve au-delà de la fin du tableau, celui-ci est d'abord prolongé par des caractères d'espacement afin d'atteindre cette position i.
Cette fonction est équivalente à insert(i, QByteArrayView(s))
Voir également append(), prepend(), replace() et remove().
QByteArray &QByteArray::insert(qsizetype i, char ch)
Insère l'ch de type octet à l'index i dans le tableau d'octets.
Ce tableau s’agrandit pour accueillir l’insertion. Si i se trouve au-delà de la fin du tableau, celui-ci est d’abord étendu avec des caractères d’espacement pour atteindre cette position i.
Il s’agit d’une fonction surchargée.
QByteArray &QByteArray::insert(qsizetype i, const char *data, qsizetype len)
Insère len octets, à partir de data, à la position i dans le tableau d'octets.
Ce tableau s'agrandit pour accueillir l'insertion. Si i se trouve au-delà de la fin du tableau, celui-ci est d'abord étendu avec des caractères d'espacement pour atteindre cette adresse i.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::insert(qsizetype i, qsizetype count, char ch)
Insère count copies de l'ch octet à l'index i dans le tableau d'octets.
Ce tableau s'agrandit pour accueillir l'insertion. Si i se trouve au-delà de la fin du tableau, celui-ci est d'abord étendu avec des caractères d'espacement pour atteindre cet i.
Il s'agit d'une fonction surchargée.
[constexpr noexcept] bool QByteArray::isEmpty() const
Renvoie « true » si la taille du tableau d'octets est égale à 0 ; sinon, renvoie « false ».
Exemple :
QByteArray().isEmpty(); // returns true
QByteArray("").isEmpty(); // returns true
QByteArray("abc").isEmpty(); // returns falseVoir aussi size().
bool QByteArray::isLower() const
Renvoie ` true ` si ce tableau d'octets est en minuscules, c'est-à-dire s'il est identique à son résultat après application de la fonction ` toLower()`.
Notez que cela ne signifie pas que le tableau d’octets ne contient que des lettres minuscules, mais simplement qu’il ne contient aucune lettre majuscule ASCII.
Voir également isUpper() et toLower().
[noexcept] bool QByteArray::isNull() const
Renvoie « true » si ce tableau d'octets est nul ; sinon, renvoie « false ».
Exemple :
QByteArray().isNull(); // returns true
QByteArray("").isNull(); // returns false
QByteArray("abc").isNull(); // returns falseQt fait la distinction entre les tableaux d'octets nuls et les tableaux d'octets vides pour des raisons historiques. Pour la plupart des applications, ce qui importe, c'est de savoir si un tableau d'octets contient ou non des données, ce qui peut être déterminé à l'aide de isEmpty().
Voir également isEmpty().
bool QByteArray::isUpper() const
Renvoie ` true ` si ce tableau d'octets est en majuscules, c'est-à-dire s'il est identique à son résultat après application de la fonction ` toUpper()`.
Notez que cela ne signifie pas que le tableau d’octets ne contient que des lettres majuscules, mais simplement qu’il ne contient aucune lettre minuscule ASCII.
Voir également isLower() et toUpper().
[noexcept, since 6.3] bool QByteArray::isValidUtf8() const
Renvoie « true » si ce tableau d'octets contient des données valides encodées en UTF-8, ou « false » dans le cas contraire.
Cette fonction a été introduite dans Qt 6.3.
[since 6.0] QByteArray QByteArray::last(qsizetype n) &&
[since 6.0] QByteArray QByteArray::last(qsizetype n) const &
Renvoie les derniers n octets du tableau d'octets.
Remarque : le comportement est indéfini lorsque ` n < 0` ou lorsque ` n > size()`.
Exemple :
QByteArray x("Pineapple");
QByteArray y = x.last(5);
// y == "apple"Ces fonctions ont été introduites dans Qt 6.0.
Voir également first(), sliced(), endsWith(), chopped(), chop(), truncate() et slice().
[since 6.0] qsizetype QByteArray::lastIndexOf(QByteArrayView bv, qsizetype from) const
Renvoie l'index du début de la dernière occurrence de la séquence d'octets analysée par ` bv ` dans ce tableau d'octets, en effectuant une recherche vers l'arrière à partir de l'index ` from`.
Si from est égal à -1, la recherche commence au dernier caractère ; s’il est égal à -2, elle commence à l’avant-dernier caractère, et ainsi de suite.
Renvoie -1 si aucune correspondance n’est trouvée.
Exemple :
QByteArray x("crazy azimuths");
QByteArrayView y("az");
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1Remarque : lors de la recherche d’un bv de longueur 0, la correspondance à la fin des données est exclue de la recherche par un from négatif, même si -1 est généralement considéré comme effectuant une recherche à partir de la fin du tableau d’octets : la correspondance à la fin se trouve après le dernier caractère, elle est donc exclue. Pour inclure une telle correspondance vide finale, il faut soit attribuer une valeur positive à from, soit omettre complètement le paramètre from.
Cette fonction a été introduite dans Qt 6.0.
Voir également indexOf(), contains() et count().
[since 6.2] qsizetype QByteArray::lastIndexOf(QByteArrayView bv) const
Renvoie l'index correspondant au début de la dernière occurrence de la séquence d'octets analysée par la fonction ` bv ` dans ce tableau d'octets, en effectuant une recherche vers l'arrière à partir de la fin du tableau. Renvoie -1 si aucune correspondance n'est trouvée.
Exemple :
QByteArray x("crazy azimuths");
QByteArrayView y("az");
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.2.
Voir également indexOf(), contains() et count().
qsizetype QByteArray::lastIndexOf(char ch, qsizetype from = -1) const
Renvoie l'index du début de la dernière occurrence de l'ch d'octets dans ce tableau d'octets, en effectuant une recherche vers l'arrière à partir de l'index from. Si from est égal à -1 (valeur par défaut), la recherche commence à partir du dernier octet (à l'index size() - 1). Renvoie -1 si aucune correspondance n'est trouvée.
Exemple :
QByteArray ba("ABCBA");
ba.lastIndexOf("B"); // returns 3
ba.lastIndexOf("B", 3); // returns 3
ba.lastIndexOf("B", 2); // returns 1
ba.lastIndexOf("X"); // returns -1Il s'agit d'une fonction surchargée.
Voir également indexOf() et contains().
QByteArray QByteArray::left(qsizetype len) &&
QByteArray QByteArray::left(qsizetype len) const &
Renvoie un tableau d'octets contenant les len premiers octets de ce tableau d'octets.
Si vous savez que len ne peut pas être hors limites, utilisez plutôt first() dans votre nouveau code, car cette fonction est plus rapide.
Le tableau d'octets entier est renvoyé si ` len ` est supérieur à ` size()`.
QByteArray Renvoie un tableau de bytes vide si len est inférieur à 0.
Voir également first(), last(), startsWith(), chopped(), chop() et truncate().
QByteArray QByteArray::leftJustified(qsizetype width, char fill = ' ', bool truncate = false) const
Renvoie un tableau d'octets de taille width contenant ce tableau d'octets complété par l'octet fill.
Si truncate est faux et que la valeur de size() du tableau d’octets est supérieure à width, alors le tableau d’octets renvoyé est une copie de ce tableau d’octets.
Si truncate est vrai et que la valeur de size() du tableau d’octets est supérieure à width, tous les octets de la copie du tableau d’octets situés après la position width sont supprimés, puis la copie est renvoyée.
Exemple :
QByteArray x("apple");
QByteArray y = x.leftJustified(8, '.'); // y == "apple..."Voir aussi rightJustified().
[constexpr noexcept] qsizetype QByteArray::length() const
Identique à ` size()`.
[static constexpr noexcept, since 6.8] qsizetype QByteArray::maxSize()
[constexpr noexcept, since 6.8] qsizetype QByteArray::max_size() const
Elle renvoie le nombre maximal d'éléments que le tableau d'octets peut théoriquement contenir. En pratique, ce nombre peut être bien inférieur, car il est limité par la quantité de mémoire disponible sur le système.
Ces fonctions ont été introduites dans Qt 6.8.
QByteArray QByteArray::mid(qsizetype pos, qsizetype len = -1) &&
QByteArray QByteArray::mid(qsizetype pos, qsizetype len = -1) const &
Renvoie un tableau d'octets contenant len octets de ce tableau d'octets, à partir de la position pos.
Si vous savez que pos et len ne peuvent pas être hors limites, utilisez plutôt sliced() dans votre nouveau code, car cette méthode est plus rapide.
Si len est égal à -1 (valeur par défaut), ou si pos + len est supérieur ou égal à size(), la fonction renvoie un tableau d’octets contenant tous les octets situés entre la position pos et la fin du tableau d’octets.
Voir également first(), last(), sliced(), chopped(), chop(), truncate() et slice().
[since 6.10] QByteArray &QByteArray::nullTerminate()
Si les données de ce tableau d'octets ne sont pas terminées par un caractère nul, cette méthode effectuera une copie profonde des données et les terminera par un caractère nul.
Un tableau de chaînes de caractères ( QByteArray ) est terminé par un caractère null par défaut ; cependant, dans certains cas (par exemple lors de l'utilisation de ` fromRawData()`), les données ne se terminent pas nécessairement par un caractère « \0 », ce qui peut poser problème lors de l'appel de méthodes qui attendent une chaîne terminée par un caractère null (par exemple, l'API C).
Cette fonction a été introduite dans Qt 6.10.
Voir également nullTerminated(), fromRawData() et setRawData().
[since 6.10] QByteArray QByteArray::nullTerminated() &&
[since 6.10] QByteArray QByteArray::nullTerminated() const &
Renvoie une copie de ce tableau d'octets qui est toujours terminée par un caractère nul. Voir nullTerminate().
Ces fonctions ont été introduites dans Qt 6.10.
Voir également nullTerminate(), fromRawData() et setRawData().
[static] QByteArray QByteArray::number(int n, int base = 10)
Renvoie un tableau d'octets représentant le nombre entier n sous forme de chaîne de caractères.
Renvoie un tableau d'octets contenant une chaîne de caractères représentant n, en utilisant la base spécifiée base (dix par défaut). Les bases comprises entre 2 et 36 sont prises en charge, les lettres étant utilisées pour les chiffres supérieurs à 9 : A correspond à dix, B à onze, et ainsi de suite.
Exemple :
int n = 63;
QByteArray::number(n); // returns "63"
QByteArray::number(n, 16); // returns "3f"
QByteArray::number(n, 16).toUpper(); // returns "3F"Remarque : le format du nombre n’est pas localisé ; la locale C par défaut est utilisée, quelle que soit la locale de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte de la locale entre les nombres et les chaînes de caractères.
Voir également setNum() et toInt().
[static] QByteArray QByteArray::number(long n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir aussi toLong().
[static] QByteArray QByteArray::number(qlonglong n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toLongLong().
[static] QByteArray QByteArray::number(qulonglong n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toULongLong().
[static] QByteArray QByteArray::number(uint n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toUInt().
[static] QByteArray QByteArray::number(ulong n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toULong().
[static] QByteArray QByteArray::number(double n, char format = 'g', int precision = 6)
Renvoie un tableau d'octets représentant le nombre à virgule flottante n sous forme de chaîne de caractères.
Renvoie un tableau d’octets contenant une chaîne de caractères représentant n, avec une format et une precision données, dont les significations sont identiques à celles de QLocale::toString(double, char, int). Par exemple :
QByteArray ba = QByteArray::number(12.3456, 'E', 3);
// ba == 1.235E+01Il s'agit d'une fonction surchargée.
Voir également toDouble() et QLocale::FloatingPointPrecisionOption.
[since 6.4] QByteArray QByteArray::percentDecoded(char percent = '%') const &
Décode l'encodage en pourcentage de type URI/URL.
Renvoie un tableau d'octets contenant le texte décodé. Le paramètre percent permet d'utiliser un caractère différent de « % » (par exemple, « _ » ou « = ») comme caractère d'échappement.
Par exemple :
QByteArray encoded("Qt%20is%20great%33");
QByteArray decoded = encoded.percentDecoded(); // Set to "Qt is great!"Remarque : si l'entrée n'est pas valide (comme une chaîne contenant la séquence « %G5 », qui n'est pas un nombre hexadécimal valide), la sortie ne sera pas valide non plus. Par exemple : la séquence « %G5 » pourrait être décodée en « W ».
Cette fonction a été introduite dans Qt 6.4.
Voir également toPercentEncoding() et QUrl::fromPercentEncoding().
[since 6.11] QByteArray QByteArray::percentDecoded(char percent = '%') &&
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.11.
QByteArray &QByteArray::prepend(QByteArrayView ba)
Ajoute la vue du tableau d'octets ba au début de ce tableau d'octets et renvoie une référence à ce tableau d'octets.
Cette opération est généralement très rapide (temps constant), car QByteArray préalloue de l'espace supplémentaire au début des données, ce qui permet à celles-ci de s'étendre sans avoir à réallouer l'intégralité du tableau à chaque fois.
Exemple :
QByteArray x("ship");
QByteArray y("air");
x.prepend(y);
// x == "airship"Cela revient à appeler insert(0, ba).
Voir également append() et insert().
QByteArray &QByteArray::prepend(char ch)
Ajoute l'ch d'octets au début de ce tableau d'octets.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::prepend(const QByteArray &ba)
Ajoute « ba » au début de ce tableau d'octets.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::prepend(const char *str)
Ajoute au début de ce tableau d'octets la chaîne «\0 », terminée par « ' » str.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::prepend(const char *str, qsizetype len)
Ajoute à cet tableau d'octets les octets de la chaîne « len » à partir de l'adresse « str ». Les octets ajoutés peuvent inclure des octets « '\0 ».
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::prepend(qsizetype count, char ch)
Ajoute à cet tableau d'octets count copies de l'ch.
Il s'agit d'une fonction surchargée.
void QByteArray::push_back(const QByteArray &other)
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à `append(other)`.
[since 6.0] void QByteArray::push_back(QByteArrayView str)
Equivalent à append(str).
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.0.
void QByteArray::push_back(char ch)
Equivalent à append(ch).
Il s'agit d'une fonction surchargée.
void QByteArray::push_back(const char *str)
Equivalent à append(str).
Il s'agit d'une fonction surchargée.
void QByteArray::push_front(const QByteArray &other)
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à `prepend(other)`.
[since 6.0] void QByteArray::push_front(QByteArrayView str)
Identique à prepend(str).
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.0.
void QByteArray::push_front(char ch)
Identique à prepend(ch).
Il s'agit d'une fonction surchargée.
void QByteArray::push_front(const char *str)
Identique à prepend(str).
Il s'agit d'une fonction surchargée.
QByteArray::reverse_iterator QByteArray::rbegin()
Renvoie un itérateur inversé de type STL pointant vers le premier octet du tableau d'octets, dans l'ordre inverse.
Avertissement : l’itérateur renvoyé est invalidé en cas de détachement ou lorsque l’ QByteArray est modifié.
Voir également begin(), crbegin() et rend().
[noexcept] QByteArray::const_reverse_iterator QByteArray::rbegin() const
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::remove(qsizetype pos, qsizetype len)
Supprime len octets du tableau, à partir de l'index pos, et renvoie une référence au tableau.
Si pos est hors de la plage autorisée, rien ne se passe. Si pos est valide, mais que pos + len est supérieur à la taille du tableau, celui-ci est tronqué à la position pos.
Exemple :
QByteArray ba("Montreal");
ba.remove(1, 4);
// ba == "Meal"La suppression d’éléments préserve la capacité du tableau et ne réduit pas la quantité de mémoire allouée. Pour se débarrasser de la capacité excédentaire et libérer autant de mémoire que possible, appelez ` squeeze()` après la dernière modification de la taille du tableau.
Voir également insert(), replace() et squeeze().
[since 6.5] QByteArray &QByteArray::removeAt(qsizetype pos)
Supprime le caractère situé à l'index pos. Si pos est hors limites (c'est-à-dire si pos >= size()), cette fonction ne fait rien.
Cette fonction a été introduite dans Qt 6.5.
Voir également remove().
[since 6.5] QByteArray &QByteArray::removeFirst()
Supprime le premier caractère de ce tableau d'octets. Si le tableau d'octets est vide, cette fonction ne fait rien.
Cette fonction a été introduite dans Qt 6.5.
Voir également ` remove()`.
[since 6.1] template <typename Predicate> QByteArray &QByteArray::removeIf(Predicate pred)
Supprime de le tableau d'octets tous les octets pour lesquels le prédicat pred renvoie « true ». Renvoie une référence au tableau d'octets.
Cette fonction a été introduite dans Qt 6.1.
Voir aussi remove().
[since 6.5] QByteArray &QByteArray::removeLast()
Supprime le dernier caractère de ce tableau d'octets. Si le tableau d'octets est vide, cette fonction ne fait rien.
Cette fonction a été introduite dans Qt 6.5.
Voir également remove().
QByteArray::reverse_iterator QByteArray::rend()
Renvoie un itérateur inversé de type STL pointant juste après le dernier octet du tableau d'octets, dans l'ordre inverse.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QByteArray est modifiée.
Voir également ` end()`, ` crend()` et ` rbegin()`.
[noexcept] QByteArray::const_reverse_iterator QByteArray::rend() const
Il s'agit d'une fonction surchargée.
QByteArray QByteArray::repeated(qsizetype times) const
Renvoie une copie de ce tableau d'octets répétée le nombre d'times s spécifié.
Si times est inférieur à 1, un tableau d'octets vide est renvoyé.
Exemple :
QByteArray ba("ab");
ba.repeated(4); // returns "abababab"QByteArray &QByteArray::replace(qsizetype pos, qsizetype len, QByteArrayView after)
Remplace les len octets à partir de l'index pos par le tableau d'octets after, puis renvoie une référence à ce tableau d'octets.
Exemple :
QByteArray x("Say yes!");
QByteArray y("no");
x.replace(4, 3, y);
// x == "Say no!"Voir aussi insert() et remove().
[since 6.0] QByteArray &QByteArray::replace(QByteArrayView before, QByteArrayView after)
Remplace toutes les occurrences du tableau d'octets before par le tableau d'octets after.
Exemple :
QByteArray ba("colour behaviour flavour neighbour");
ba.replace(QByteArray("ou"), QByteArray("o"));
// ba == "color behavior flavor neighbor"Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.0.
QByteArray &QByteArray::replace(char before, QByteArrayView after)
Remplace toutes les occurrences du tableau d'octets before par le tableau d'octets after.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::replace(char before, char after)
Remplace chaque occurrence de l'octet before par l'octet after.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::replace(const char *before, qsizetype bsize, const char *after, qsizetype asize)
Remplace chaque occurrence des octets bsize, à partir de before, par les octets asize, à partir de after. Étant donné que les tailles des chaînes sont indiquées par bsize et asize, celles-ci peuvent contenir des octets «\0 » et ne doivent pas nécessairement se terminer par «\0 ».
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::replace(qsizetype pos, qsizetype len, const char *after, qsizetype alen)
Remplace les octets len à partir de l'index pos par les octets alen à partir de l'index after. Les octets insérés peuvent inclure des octets de type «\0 ».
Il s'agit d'une fonction surchargée.
void QByteArray::reserve(qsizetype size)
Tente d'allouer au moins size octets de mémoire.
Si vous connaissez à l’avance la taille du tableau d’octets, vous pouvez appeler cette fonction ; en appelant souvent ` resize()`, vous obtiendrez probablement de meilleures performances.
En cas de doute sur l’espace nécessaire, il est généralement préférable d’utiliser une borne supérieure telle que ` size`, ou une estimation haute de la taille la plus probable, si une borne supérieure stricte s’avère nettement plus grande que celle-ci. Si ` size ` est une sous-estimation, le tableau s’agrandira selon les besoins une fois la taille réservée dépassée, ce qui peut entraîner une allocation plus importante que ne l’aurait été votre meilleure surestimation et ralentira l’opération qui la déclenche.
Avertissement : la fonction `reserve ()` réserve de la mémoire mais ne modifie pas la taille du tableau d’octets. L’accès aux données situées au-delà de la fin du tableau d’octets entraîne un comportement indéfini. Si vous avez besoin d’accéder à la mémoire au-delà de la fin actuelle du tableau, utilisez ` resize()`.
Le seul objectif de cette fonction est de fournir un moyen d’ajuster avec précision l’utilisation de la mémoire par ` QByteArray`. En général, vous n’aurez que très rarement besoin d’appeler cette fonction.
Voir également squeeze() et capacity().
void QByteArray::resize(qsizetype size)
Définit la taille du tableau d'octets à size octets.
Si size est supérieur à la taille actuelle, le tableau d’octets est étendu pour atteindre size octets, les octets supplémentaires étant ajoutés à la fin. Les nouveaux octets ne sont pas initialisés.
Si ` size ` est inférieure à la taille actuelle, les octets situés au-delà de la position ` size ` sont exclus du tableau d’octets.
Remarque : bien que la fonction resize() augmente la capacité si nécessaire, elle ne la réduit jamais. Pour supprimer la capacité excédentaire, utilisez la fonction squeeze().
Voir également size(), truncate() et squeeze().
[since 6.4] void QByteArray::resize(qsizetype newSize, char c)
Définit la taille du tableau d'octets à newSize octets.
Si newSize est supérieur à la taille actuelle, le tableau d’octets est étendu pour atteindre newSize octets, les octets supplémentaires étant ajoutés à la fin. Les nouveaux octets sont initialisés à c.
Si newSize est inférieur à la taille actuelle, les octets situés au-delà de la position newSize sont exclus du tableau d’octets.
Remarque : bien que la fonction resize() augmente la capacité si nécessaire, elle ne la réduit jamais. Pour supprimer la capacité excédentaire, utilisez squeeze().
Cette fonction a été introduite dans Qt 6.4.
Voir également size(), truncate() et squeeze().
[since 6.8] void QByteArray::resizeForOverwrite(qsizetype size)
Redimensionne le tableau d'octets à size octets. Si la taille du tableau d'octets augmente, les nouveaux octets ne sont pas initialisés.
Le comportement est identique à celui de ` resize(size)`.
Cette fonction a été introduite dans Qt 6.8.
Voir aussi resize().
QByteArray QByteArray::right(qsizetype len) &&
QByteArray QByteArray::right(qsizetype len) const &
Renvoie un tableau d'octets contenant les len derniers octets de ce tableau d'octets.
Si vous savez que ` len ` ne peut pas dépasser les limites, utilisez plutôt ` last()` dans votre nouveau code, car cette fonction est plus rapide.
Le tableau d’octets entier est renvoyé si ` len ` est supérieur à ` size()`.
Renvoie un tableau « QByteArray » vide si « len » est inférieur à 0.
Voir également : endsWith(), last(), first(), sliced(), chopped(), chop(), truncate() et slice().
QByteArray QByteArray::rightJustified(qsizetype width, char fill = ' ', bool truncate = false) const
Renvoie un tableau d'octets de taille width contenant l'octet fill suivi de ce tableau d'octets.
Si truncate est faux et que la taille du tableau d’octets est supérieure à width, alors le tableau d’octets renvoyé est une copie de ce tableau d’octets.
Si ` truncate ` est vrai et que la taille du tableau d’octets est supérieure à ` width`, alors le tableau d’octets résultant est tronqué à la position ` width`.
Exemple :
QByteArray x("apple");
QByteArray y = x.rightJustified(8, '.'); // y == "...apple"Voir aussi leftJustified().
QByteArray &QByteArray::setNum(int n, int base = 10)
Représente le nombre entier n sous forme de chaîne de caractères.
Définit ce tableau d'octets comme une chaîne représentant n en base base (dix par défaut) et renvoie une référence à ce tableau d'octets. Les bases 2 à 36 sont prises en charge, les lettres étant utilisées pour les chiffres supérieurs à 9 ; A correspond à dix, B à onze, et ainsi de suite.
Exemple :
QByteArray ba;
int n = 63;
ba.setNum(n); // ba == "63"
ba.setNum(n, 16); // ba == "3f"Remarque : le format du nombre n’est pas localisé ; la locale C par défaut est utilisée quelle que soit la locale de l’utilisateur. Utilisez QLocale pour effectuer des conversions tenant compte de la locale entre les nombres et les chaînes de caractères.
Voir également number() et toInt().
QByteArray &QByteArray::setNum(long n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toLong().
QByteArray &QByteArray::setNum(qlonglong n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toLongLong().
QByteArray &QByteArray::setNum(qulonglong n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toULongLong().
QByteArray &QByteArray::setNum(short n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toShort().
QByteArray &QByteArray::setNum(uint n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toUInt().
QByteArray &QByteArray::setNum(ulong n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toULong().
QByteArray &QByteArray::setNum(ushort n, int base = 10)
Il s'agit d'une fonction surchargée.
Voir également toUShort().
QByteArray &QByteArray::setNum(double n, char format = 'g', int precision = 6)
Représente le nombre à virgule flottante n sous forme de chaîne de caractères.
Définit ce tableau d’octets comme une chaîne de caractères représentant n, avec une format et une precision données (dont les significations sont les mêmes que pour QLocale::toString(double, char, int)), et renvoie une référence à ce tableau d’octets.
Il s'agit d'une fonction surchargée.
Voir également toDouble() et QLocale::FloatingPointPrecisionOption.
QByteArray &QByteArray::setNum(float n, char format = 'g', int precision = 6)
Représente le nombre à virgule flottante n sous forme de chaîne de caractères.
Définit ce tableau d’octets sur une chaîne représentant n, avec une format et une precision données (dont les significations sont les mêmes que pour QLocale::toString(double, char, int)), et renvoie une référence à ce tableau d’octets.
Il s'agit d'une fonction surchargée.
Voir également toFloat() et QLocale::FloatingPointPrecisionOption.
QByteArray &QByteArray::setRawData(const char *data, qsizetype size)
Réinitialise l’ QByteArray pour qu’il utilise les premiers size octets du tableau data. Les octets ne sont pas copiés. La variable QByteArray contiendra le pointeur data. L’appelant garantit que data ne sera ni supprimé ni modifié tant que ce QByteArray et toutes ses copies non modifiées existeront.
Cette fonction peut être utilisée à la place de ` fromRawData()` pour réutiliser des objets ` QByteArray ` existants afin d’éviter des réallocations de mémoire.
Voir également fromRawData(), data(), constData(), nullTerminate() et nullTerminated().
void QByteArray::shrink_to_fit()
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` squeeze()`.
QByteArray QByteArray::simplified() const
Renvoie une copie de ce tableau d'octets dont les caractères d'espacement ont été supprimés au début et à la fin, et dans laquelle chaque séquence de caractères d'espacement internes est remplacée par un seul espace.
Les caractères d’espacement sont ceux pour lesquels la fonction standard C++ ` isspace() ` renvoie ` true ` dans la locale C ; il s’agit des caractères ASCII : tabulation «\t », saut de ligne «\n », retour chariot «\r », tabulation verticale «\v », saut de page «\f » et espace « ».
Exemple :
QByteArray ba(" lots\t of\nwhitespace\r\n ");
ba = ba.simplified();
// ba == "lots of whitespace";Voir également trimmed(), QChar::SpecialCharacter et Spacing Characters.
[constexpr noexcept] qsizetype QByteArray::size() const
Renvoie le nombre d'octets contenus dans ce tableau d'octets.
Le dernier octet du tableau d’octets se trouve à la position size() - 1. De plus, QByteArray garantit que l’octet situé à la position size() est toujours «\0 », ce qui vous permet d’utiliser la valeur de retour de data() et constData() comme arguments de fonctions qui attendent des chaînes terminées par «\0 ». Si l’objet ` QByteArray ` a été créé à partir d’un ` raw data ` qui ne comprenait pas l’octet de terminaison «\0 » en fin de chaîne, alors ` QByteArray ` ne l’ajoute pas automatiquement, sauf si une copie profonde est créée.
Exemple :
QByteArray ba("Hello");
qsizetype n = ba.size(); // n == 5
ba.data()[0]; // returns 'H'
ba.data()[4]; // returns 'o'
ba.data()[5]; // returns '\0'Voir également isEmpty() et resize().
[since 6.8] QByteArray &QByteArray::slice(qsizetype pos, qsizetype n)
Modifie ce tableau d'octets pour qu'il commence à la position pos et s'étende sur n octets, puis renvoie une référence à ce tableau d'octets.
Remarque : le comportement est indéfini si pos < 0, n < 0 ou si pos + n > size().
Exemple :
QByteArray x = "Five pineapples"_ba;
x.slice(5); // x == "pineapples"
x.slice(4, 3); // x == "app"Cette fonction a été introduite dans Qt 6.8.
Voir également sliced(), first(), last(), chopped(), chop() et truncate().
[since 6.8] QByteArray &QByteArray::slice(qsizetype pos)
Modifie ce tableau d'octets en commençant à la position pos, jusqu'à la fin de celui-ci, et renvoie une référence à ce tableau d'octets.
Remarque : le comportement est indéfini si pos < 0 ou si pos > size().
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.8.
Voir également sliced(), first(), last(), chopped(), chop() et truncate().
[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) &&
[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) const &
Renvoie un tableau d'octets contenant les octets d'n de cet objet, à partir de la position pos.
Remarque : le comportement est indéfini lorsque pos < 0, n < 0 ou pos + n > size().
Exemple :
QByteArray x("Five pineapples");
QByteArray y = x.sliced(5, 4); // y == "pine"
QByteArray z = x.sliced(5); // z == "pineapples"Ces fonctions ont été introduites dans Qt 6.0.
Voir également first(), last(), chopped(), chop(), truncate() et slice().
[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) &&
[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) const &
Renvoie un tableau d'octets contenant les octets commençant à la position pos dans cet objet et s'étendant jusqu'à la fin de celui-ci.
Remarque : le comportement est indéfini lorsque pos < 0 ou lorsque pos > size().
Ces fonctions ont été introduites dans Qt 6.0.
Voir également first(), last(), chopped(), chop(), truncate() et slice().
QList<QByteArray> QByteArray::split(char sep) const
Divise le tableau d’octets en sous-tableaux à chaque occurrence d’ sep, puis renvoie la liste de ces sous-tableaux. Si sep ne correspond à aucun élément du tableau d’octets, split() renvoie une liste à un seul élément contenant ce tableau d’octets.
void QByteArray::squeeze()
Libère toute la mémoire qui n'est pas nécessaire au stockage des données du tableau.
Cette fonction a pour seul objectif de permettre d'ajuster avec précision l'utilisation de la mémoire par QByteArray. En général, vous n'aurez que très rarement besoin d'appeler cette fonction.
Voir également reserve() et capacity().
[since 6.0] bool QByteArray::startsWith(QByteArrayView bv) const
Renvoie « true » si ce tableau d'octets commence par la séquence d'octets décrite à l'adresse bv; sinon, renvoie « false ».
Exemple :
QByteArray url("ftp://ftp.qt-project.org/");
if (url.startsWith("ftp:"))
{/*...*/}Cette fonction a été introduite dans Qt 6.0.
Voir également endsWith() et first().
bool QByteArray::startsWith(char ch) const
Renvoie ` true ` si ce tableau d'octets commence par l'octet ` ch` ; sinon, renvoie ` false`.
Il s'agit d'une fonction surchargée.
[noexcept] void QByteArray::swap(QByteArray &other)
Permute cet tableau d'octets avec other. Cette opération est très rapide et ne rencontre jamais d'échec.
QByteArray QByteArray::toBase64(QByteArray::Base64Options options = Base64Encoding) const
Renvoie une copie du tableau d'octets, encodée à l'aide des options options.
QByteArray text("Qt is great!");
text.toBase64(); // returns "UXQgaXMgZ3JlYXQh"
QByteArray hello("<p>Hello?</p>");
hello.toBase64(QByteArray::Base64Encoding | QByteArray::OmitTrailingEquals); // returns "PHA+SGVsbG8/PC9wPg"
hello.toBase64(QByteArray::Base64Encoding); // returns "PHA+SGVsbG8/PC9wPg=="
hello.toBase64(QByteArray::Base64UrlEncoding); // returns "PHA-SGVsbG8_PC9wPg=="
hello.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals); // returns "PHA-SGVsbG8_PC9wPg"L'algorithme utilisé pour encoder les données en Base64 est défini dans la RFC 4648.
Voir également fromBase64().
CFDataRef QByteArray::toCFData() const
Crée un objet CFData à partir d'un objet ` QByteArray`.
L'appelant est propriétaire de l'objet CFData et est chargé de le libérer.
Voir également toRawCFData(), fromCFData(), fromRawCFData() et fromRawData().
double QByteArray::toDouble(bool *ok = nullptr) const
Renvoie le tableau d'octets converti en une valeur de type ` double `.
Renvoie l'infini si la conversion provoque un débordement, ou 0,0 si la conversion échoue pour d'autres raisons (par exemple, un sous-débordement).
Si ok n'est pas nullptr, l'échec est signalé en définissant *ok sur false, et la réussite en définissant *ok sur true.
QByteArray string("1234.56");
bool ok;
double a = string.toDouble(&ok); // a == 1234.56, ok == true
string = "1234.56 Volt";
a = string.toDouble(&ok); // a == 0, ok == falseAvertissement : le contenu de ` QByteArray ` ne doit contenir que des caractères numériques valides, notamment les signes plus et moins, la lettre « e » utilisée en notation scientifique et le point décimal. L’ajout d’une unité ou de caractères supplémentaires entraîne une erreur de conversion.
Remarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, quels que soient les paramètres régionaux de l’utilisateur. Utilisez la fonction ` QLocale ` pour effectuer des conversions tenant compte des paramètres régionaux entre des nombres et des chaînes de caractères.
Cette fonction ignore les espaces en début et en fin de chaîne.
Voir également number().
[since 6.5] emscripten::val QByteArray::toEcmaUint8Array()
Crée un Uint8Array à partir d'un QByteArray.
Cette fonction transfère les données de la mémoire du tas appartenant à un ` QByteArray ` vers un tampon de données JavaScript. La fonction alloue de la mémoire et copie les données dans un `ArrayBuffer`, puis renvoie une vue `Uint8Array` de ce tampon.
Les objets JavaScript possèdent une copie des données, et cet QByteArray peut être supprimé en toute sécurité une fois la copie effectuée.
QByteArray byteArray = "test";
emscripten::val uint8array = byteArray.toEcmaUint8Array();Cette fonction a été introduite dans Qt 6.5.
Voir également fromEcmaUint8Array().
float QByteArray::toFloat(bool *ok = nullptr) const
Renvoie le tableau d'octets converti en une valeur de type ` float `.
Renvoie l'infini si la conversion entraîne un débordement, ou 0,0 si la conversion échoue pour d'autres raisons (par exemple, un sous-débordement).
Si ok n'est pas nullptr, l'échec est signalé en définissant *ok sur false, et la réussite en définissant *ok sur true.
QByteArray string("1234.56");
bool ok;
float a = string.toFloat(&ok); // a == 1234.56, ok == true
string = "1234.56 Volt";
a = string.toFloat(&ok); // a == 0, ok == falseAvertissement : le contenu de ` QByteArray ` ne doit contenir que des caractères numériques valides, notamment les signes plus et moins, la lettre « e » utilisée en notation scientifique et le point décimal. L’ajout d’une unité ou de caractères supplémentaires entraîne une erreur de conversion.
Remarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, quels que soient les paramètres régionaux de l’utilisateur. Utilisez QLocale pour effectuer des conversions tenant compte des paramètres régionaux entre des nombres et des chaînes de caractères.
Cette fonction ignore les espaces en début et en fin de chaîne.
Voir également number().
QByteArray QByteArray::toHex(char separator = '\0') const
Renvoie une copie du tableau d'octets codée en hexadécimal.
Le codage hexadécimal utilise les chiffres 0 à 9 et les lettres a à f.
Si ` separator ` n'est pas «\0 », le caractère de séparation est inséré entre les octets hexadécimaux.
Exemple :
QByteArray macAddress = QByteArray::fromHex("123456abcdef");
macAddress.toHex(':'); // returns "12:34:56:ab:cd:ef"
macAddress.toHex(0); // returns "123456abcdef"Voir aussi fromHex().
int QByteArray::toInt(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d'octets converti en une valeur « int » en utilisant la base base, qui est de 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge, les lettres étant utilisées pour les chiffres supérieurs à 9 ; A correspond à 10, B à 11, et ainsi de suite.
Si ` base ` est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d'octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; dans tous les autres cas, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n’est pas ` nullptr`, l’échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` 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 == falseRemarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, indépendamment des paramètres régionaux de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
long QByteArray::toLong(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d'octets converti en un entier de type « long » en utilisant la base base, qui est de 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge, les lettres étant utilisées pour les chiffres supérieurs à 9 ; A correspond à 10, B à 11, et ainsi de suite.
Si ` base ` est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d’octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; dans le cas contraire, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n’est pas ` nullptr`, l’échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` 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 == falseRemarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte de la locale entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
qlonglong QByteArray::toLongLong(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d'octets converti en un nombre « long long » en utilisant la base base, qui est de 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge, les lettres étant utilisées pour les chiffres supérieurs à 9 ; A correspond à 10, B à 11, et ainsi de suite.
Si ` base ` est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d'octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; dans le cas contraire, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n’est pas ` nullptr`, l’échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` true`.
Remarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, indépendamment des paramètres régionaux de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
QByteArray QByteArray::toLower() const
Renvoie une copie du tableau d'octets dans lequel chaque lettre ASCII majuscule a été convertie en minuscule.
Exemple :
QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toLower();
// y == "qt by the qt company"Voir également isLower(), toUpper() et Character Case.
NSData *QByteArray::toNSData() const
Crée un objet NSData à partir d'un objet ` QByteArray`.
L'objet NSData est libéré automatiquement.
Voir également fromNSData(), fromRawNSData(), fromRawData() et toRawNSData().
QByteArray QByteArray::toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const
Renvoie une copie de ce tableau d'octets encodée en pourcentage, au format URI/URL. Le paramètre ` percent ` vous permet de remplacer le caractère par défaut « % » par un autre.
Par défaut, cette fonction encode tous les octets qui ne font pas partie des catégories suivantes :
LETTRES (« a » à « z » et « A » à « Z ») / CHIFFRES (0 à 9) / « - » / « . » / « _ » / « ~ »
Pour empêcher l'encodage de certains octets, transmettez-les à exclude. Pour forcer l'encodage de certains octets, transmettez-les à include. Le caractère « percent » est toujours encodé.
Exemple :
QByteArray text = "{une chaîne suspecte ?}";
QByteArray ba = text.toPercentEncoding("{}", "s");
qDebug("%s", ba.constData());
// affiche « {a fi%73hy %73tring%3F} »Le codage hexadécimal utilise les chiffres de 0 à 9 et les lettres majuscules de A à F.
Voir également fromPercentEncoding() et QUrl::toPercentEncoding().
CFDataRef QByteArray::toRawCFData() const
Crée un objet CFData qui utilise les octets de l'QByteArray.
Les octets de l'QByteArray ne sont pas copiés.
L'appelant garantit que l'QByteArray ne sera ni supprimée ni modifiée tant que cet objet CFData existera.
Voir également toCFData(), fromRawCFData(), fromCFData() et fromRawData().
NSData *QByteArray::toRawNSData() const
Crée un objet NSData qui utilise les octets de l'QByteArray.
Les octets de l'QByteArray ne sont pas copiés.
L'appelant garantit que l'QByteArray ne sera ni supprimé ni modifié tant que cet objet NSData existera.
Voir également fromRawNSData(), fromNSData(), fromRawData() et toNSData().
short QByteArray::toShort(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d'octets converti en un tableau de type « short » en utilisant la base base, qui est égale à 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge ; les chiffres supérieurs à 9 sont représentés par des lettres : A correspond à 10, B à 11, et ainsi de suite.
Si ` base ` est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d'octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; dans tous les autres cas, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n'est pas ` nullptr`, l'échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` true`.
Remarque : la conversion du nombre s’effectue selon les paramètres régionaux C par défaut, indépendamment des paramètres régionaux de l’utilisateur. Utilisez QLocale pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
std::string QByteArray::toStdString() const
Renvoie un objet std::string contenant les données de cet QByteArray.
Cet opérateur est particulièrement utile pour transmettre un ` QByteArray ` à une fonction qui accepte un objet `std::string`.
Voir également fromStdString() et QString::toStdString().
uint QByteArray::toUInt(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d'octets converti en un unsigned int en utilisant la base base, qui est égale à 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge ; les chiffres supérieurs à 9 sont représentés par des lettres : A correspond à 10, B à 11, et ainsi de suite.
Si ` base ` est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d’octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; dans le cas contraire, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n’est pas ` nullptr`, l’échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` true`.
Remarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, indépendamment des paramètres régionaux de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
ulong QByteArray::toULong(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d'octets converti en un objet ` unsigned long int ` en utilisant la base base, qui est égale à 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge, les lettres étant utilisées pour les chiffres supérieurs à 9 ; A correspond à 10, B à 11, et ainsi de suite.
Si base est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d’octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; dans tous les autres cas, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n’est pas ` nullptr`, l’échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` true`.
Remarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, indépendamment des paramètres régionaux de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
qulonglong QByteArray::toULongLong(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d’octets converti en un objet ` unsigned long long ` en utilisant la base base, qui est 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge ; les chiffres supérieurs à 9 sont représentés par des lettres : A correspond à 10, B à 11, et ainsi de suite.
Si ` base ` est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d’octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; dans le cas contraire, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n'est pas ` nullptr`, l'échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` true`.
Remarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, indépendamment des paramètres régionaux de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
ushort QByteArray::toUShort(bool *ok = nullptr, int base = 10) const
Renvoie le tableau d'octets converti en un objet ` unsigned short ` en utilisant la base base, qui est égale à 10 par défaut. Les bases 0 et 2 à 36 sont prises en charge ; les chiffres supérieurs à 9 sont représentés par des lettres : A correspond à 10, B à 11, et ainsi de suite.
Si ` base ` est égal à 0, la base est déterminée automatiquement selon les règles suivantes : si le tableau d’octets commence par « 0x », il est considéré comme hexadécimal (base 16) ; sinon, s’il commence par « 0b », il est considéré comme binaire (base 2) ; sinon, s’il commence par « 0 », il est considéré comme octal (base 8) ; sinon, il est considéré comme décimal.
Renvoie 0 si la conversion échoue.
Si ` ok ` n’est pas ` nullptr`, l’échec est signalé en définissant *`ok ` sur ` false`, et la réussite en définissant *`ok ` sur ` true`.
Remarque : la conversion du nombre est effectuée selon les paramètres régionaux C par défaut, indépendamment des paramètres régionaux de l’utilisateur. Utilisez ` QLocale ` pour effectuer des conversions tenant compte des paramètres régionaux entre les nombres et les chaînes de caractères.
Remarque : la prise en charge du préfixe « 0b » a été ajoutée dans Qt 6.4.
Voir également number().
QByteArray QByteArray::toUpper() const
Renvoie une copie du tableau d'octets dans laquelle chaque lettre ASCII minuscule est convertie en majuscule.
Exemple :
QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toUpper();
// y == "QT BY THE QT COMPANY"Voir également isUpper(), toLower() et Character Case.
QByteArray QByteArray::trimmed() const
Renvoie une copie de ce tableau d'octets dont les caractères d'espacement ont été supprimés au début et à la fin.
Les caractères d'espacement sont ceux pour lesquels la fonction standard C++ ` isspace() ` renvoie ` true ` dans la locale C ; il s'agit des caractères ASCII : tabulation «\t », saut de ligne «\n », retour chariot «\r », tabulation verticale «\v », saut de page «\f » et espace « ».
Exemple :
QByteArray ba(" lots\t of\nwhitespace\r\n ");
ba = ba.trimmed();
// ba == "lots\t of\nwhitespace";Contrairement à la fonction ` simplified()`, la fonction `trimmed()` laisse les espaces internes inchangés.
Voir également simplified(), QChar::SpecialCharacter et Spacing Characters.
void QByteArray::truncate(qsizetype pos)
Tronque le tableau d'octets à l'index pos.
Si pos se trouve au-delà de la fin du tableau, rien ne se passe.
Exemple :
QByteArray ba("Stockholm");
ba.truncate(5); // ba == "Stock"Voir également chop(), resize() et first().
Remarque : dans le nouveau code,utilisez plutôt ` constData()`.
Renvoie un pointeur vers les données stockées dans le tableau d'octets. Ce pointeur peut être utilisé pour accéder aux octets qui composent le tableau. Les données sont terminées par «\0 ».
Le pointeur reste valide tant qu’aucun détachement n’a lieu et que le QByteArray n’est pas modifié.
Cet opérateur est particulièrement utile pour transmettre un tableau d’octets à une fonction qui accepte un « const char * ».
Vous pouvez désactiver cet opérateur en définissant ` QT_NO_CAST_FROM_BYTEARRAY ` lors de la compilation de vos applications.
Remarque : une variable de type ` QByteArray ` peut stocker n’importe quelle valeur d’octet, y compris les chaînes « '\0 », mais la plupart des fonctions prenant des arguments de type ` char * ` supposent que les données se terminent au premier « '\0 » qu’elles rencontrent.
Voir aussi constData().
[noexcept, since 6.10] QByteArray::operator std::string_view() const
Convertit cet objet ` QByteArray ` en un objet ` std::string_view `. La vue de chaîne renvoyée couvrira l'intégralité du tableau d'octets.
Cette fonction a été introduite dans Qt 6.10.
QByteArray &QByteArray::operator+=(const QByteArray &ba)
Ajoute le tableau d'octets ba à la fin de ce tableau d'octets et renvoie une référence à ce tableau d'octets.
Exemple :
QByteArray x("free");
QByteArray y("dom");
x += y;
// x == "freedom"Remarque : QByteArray est une classe implicitement partagée. Par conséquent, si vous ajoutez des éléments à un tableau d’octets vide, ce dernier partagera simplement les données contenues dans ba. Dans ce cas, aucune copie des données n’est effectuée, ce qui prend un temps constant. Si une instance partagée est modifiée, elle sera copiée (copie à l’écriture), ce qui prend un temps linéaire.
Si le tableau d’octets auquel on ajoute des éléments n’est pas vide, une copie profonde des données est effectuée, ce qui prend un temps linéaire.
Cette opération ne souffre généralement pas de surcharge d’allocation, car ` QByteArray ` préalloue de l’espace supplémentaire à la fin des données afin qu’elles puissent s’étendre sans réallocation à chaque opération d’ajout.
Voir également append() et prepend().
QByteArray &QByteArray::operator+=(char ch)
Ajoute l'ch d'octets à la fin de ce tableau d'octets et renvoie une référence à ce tableau d'octets.
Il s'agit d'une fonction surchargée.
QByteArray &QByteArray::operator+=(const char *str)
Ajoute la chaîne «\0 », terminée par un « ' », str à la fin de ce tableau d’octets et renvoie une référence à ce tableau d’octets.
Il s'agit d'une fonction surchargée.
[noexcept] QByteArray &QByteArray::operator=(QByteArray &&other)
Cette opération attribue l'other à cette instance QByteArray.
[noexcept] QByteArray &QByteArray::operator=(const QByteArray &other)
Attribue la valeur « other » à ce tableau d'octets et renvoie une référence à ce tableau d'octets.
QByteArray &QByteArray::operator=(const char *str)
Attribue la valeur « str » à ce tableau d'octets.
str est supposé pointer vers une chaîne terminée par un caractère nul, et sa longueur est déterminée dynamiquement.
Il s'agit d'une fonction surchargée.
char &QByteArray::operator[](qsizetype i)
Renvoie l'octet situé à l'index i sous forme de référence modifiable.
i i doit être une position d'index valide dans le tableau d'octets (c'est-à-dire 0 <= < ()). size
Exemple :
QByteArray ba("Hello, world");
cout << ba[0]; // prints H
ba[7] = 'W';
// ba == "Hello, World"Voir aussi at().
char QByteArray::operator[](qsizetype i) const
Comme sur (i).
Il s'agit d'une fonction surchargée.
Éléments non membres associés
[since 6.1] template <typename T> qsizetype erase(QByteArray &ba, const T &t)
Supprime tous les éléments de la liste d'octets ba qui sont égaux à t. Renvoie le nombre d'éléments supprimés, le cas échéant.
Cette fonction a été introduite dans Qt 6.1.
Voir également erase_if.
[since 6.1] template <typename Predicate> qsizetype erase_if(QByteArray &ba, Predicate pred)
Supprime tous les éléments pour lesquels le prédicat pred renvoie « true » du tableau d'octets ba. Renvoie le nombre d'éléments supprimés, le cas échéant.
Cette fonction a été introduite dans Qt 6.1.
Voir également erase.
quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)
Renvoie la somme de contrôle CRC-16 de data.
La somme de contrôle est indépendante de l'ordre des octets (endianness) et sera calculée conformément à l'algorithme publié dans standard. Par défaut, l'algorithme publié dans la norme ISO 3309 (Qt::ChecksumIso3309) est utilisé.
Remarque : cette fonction est une implémentation 16 bits avec conservation du cache (table de 16 entrées) de l’algorithme CRC-16-CCITT.
QByteArray qCompress(const QByteArray &data, int compressionLevel = -1)
Compresse le tableau d'octets ` data ` et renvoie les données compressées dans un nouveau tableau d'octets.
Le paramètre compressionLevel spécifie le niveau de compression à appliquer. Les valeurs valides sont comprises entre 0 et 9, 9 correspondant à la compression la plus forte (c'est-à-dire des données compressées plus petites) au prix d'un algorithme plus lent. Des valeurs plus faibles (8, 7, …, 1) offrent une compression de moins en moins importante à des vitesses légèrement plus élevées. La valeur 0 correspond à l’absence totale de compression. La valeur par défaut est -1, ce qui spécifie la compression par défaut de zlib.
Voir également qUncompress(const QByteArray &data).
QByteArray qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1)
Compresse les premiers nbytes de data avec un niveau de compression de compressionLevel, puis renvoie les données compressées dans un nouveau tableau d'octets.
Il s'agit d'une fonction surchargée.
QByteArray qUncompress(const QByteArray &data)
Décompresse le tableau d'octets « data » et renvoie un nouveau tableau d'octets contenant les données décompressées.
Renvoie un tableau d'octets vide ( QByteArray ) si les données d'entrée étaient corrompues.
Cette fonction décompresse les données compressées avec la fonction ` qCompress()` de cette version de Qt et de toutes les versions antérieures, jusqu’à Qt 3.1, version dans laquelle cette fonctionnalité a été ajoutée.
Remarque : si vous souhaitez utiliser cette fonction pour décompresser des données externes compressées à l’aide de zlib, vous devez d’abord ajouter un en-tête de quatre octets au début du tableau d’octets contenant les données. L'en-tête doit contenir la longueur attendue (en octets) des données décompressées, exprimée sous la forme d'un entier non signé de 32 bits en big-endian. Ce nombre ne sert toutefois qu'à indiquer la taille initiale du tampon de sortie. Si la taille indiquée est trop petite pour contenir le résultat, la taille du tampon de sortie sera tout de même augmentée jusqu’à ce que la sortie y tienne ou que le système soit à court de mémoire. Ainsi, malgré l’en-tête de 32 bits, cette fonction, sur les plateformes 64 bits, peut produire plus de 4 Gio de données en sortie.
Remarque : dans les versions de Qt antérieures à la version 6.5, le traitement de plus de 2 Gio de données n’était pas fiable ; dans les versions antérieures à la version 6.0, il était tout simplement impossible.
Voir également qCompress().
QByteArray qUncompress(const uchar *data, qsizetype nbytes)
Décompresse les premiers nbytes de data et renvoie un nouveau tableau d'octets contenant les données décompressées.
Il s'agit d'une fonction surchargée.
int qstrcmp(const char *str1, const char *str2)
Une fonction « strcmp() » sécurisée.
Compare str1 et str2. Renvoie une valeur négative si str1 est inférieur à str2, 0 si str1 est égal à str2 ou une valeur positive si str1 est supérieur à str2.
Si les deux chaînes sont nullptr, elles sont considérées comme égales ; sinon, si l’une d’entre elles est nullptr, elle est considérée comme inférieure à l’autre (même si l’autre est une chaîne vide).
Voir également qstrncmp(), qstricmp(), qstrnicmp(), Character Case et QByteArray::compare().
char *qstrcpy(char *dst, const char *src)
Copie tous les caractères jusqu'à «\0 » inclus, depuis src vers dst, et renvoie un pointeur vers dst. Si src est nullptr, la fonction renvoie immédiatement nullptr.
Cette fonction suppose que dst est suffisamment grand pour contenir le contenu de src.
Remarque : si dst et src se chevauchent, le comportement est indéfini.
Voir également qstrncpy().
char *qstrdup(const char *src)
Renvoie une copie de la chaîne.
Alloue de l'espace pour une copie de ` src`, la copie, puis renvoie un pointeur vers cette copie. Si ` src ` est ` nullptr`, la fonction renvoie immédiatement ` nullptr`.
La propriété est transférée à l'appelant ; la chaîne renvoyée doit donc être supprimée à l'aide de ` delete[]`.
int qstricmp(const char *str1, const char *str2)
Une fonction « stricmp() » sécurisée.
Compare str1 et str2, en ignorant les différences de casse pour les caractères ASCII.
Renvoie une valeur négative si str1 est inférieure à str2, 0 si str1 est égale à str2 ou une valeur positive si str1 est supérieure à str2.
Si les deux chaînes sont de type nullptr, elles sont considérées comme égales ; sinon, si l'une d'entre elles est de type nullptr, elle est considérée comme inférieure à l'autre (même si cette dernière est une chaîne vide).
Voir également qstrcmp(), qstrncmp(), qstrnicmp(), Character Case et QByteArray::compare().
size_t qstrlen(const char *str)
Une fonction « strlen() » sécurisée.
Renvoie le nombre de caractères qui précèdent le caractère de fin «\0 », ou 0 si str est nullptr.
Voir également qstrnlen().
int qstrncmp(const char *str1, const char *str2, size_t len)
Une fonction « strncmp() » sécurisée.
Compare au maximum len octets de str1 et str2.
Renvoie une valeur négative si str1 est inférieur à str2, 0 si str1 est égal à str2 ou une valeur positive si str1 est supérieur à str2.
Si les deux chaînes sont nullptr, elles sont considérées comme égales ; sinon, si l’une d’entre elles est nullptr, elle est considérée comme inférieure à l’autre (même si l’autre est une chaîne vide ou si len vaut 0).
Voir également qstrcmp(), qstricmp(), qstrnicmp(), Character Case et QByteArray::compare().
char *qstrncpy(char *dst, const char *src, size_t len)
Une fonction « strncpy() » sécurisée.
Copie au maximum len octets depuis src (en s'arrêtant à len ou au caractère de fin «\0 », selon la première occurrence) vers dst. Garantit que dst se termine par «\0 », sauf si dst vaut nullptr ou si len est égal à 0. Si src vaut nullptr, renvoie nullptr; sinon, renvoie dst.
Cette fonction suppose que dst comporte au moins len caractères.
Remarque : si dst et src se chevauchent, le comportement est indéfini.
Remarque : contrairement à strncpy(), cette fonction n' écrit pas «\0 » sur tous les octets « len » de « dst », mais s'arrête après le caractère de fin «\0 ». En ce sens, elle est similaire à la fonction strncpy_s() de C11.
Voir également qstrcpy().
int qstrnicmp(const char *s1, const char *s2, size_t len)
Une fonction « strnicmp() » sécurisée.
Compare au maximum len octets de s1 et s2, en ignorant les différences de casse pour les caractères ASCII.
Renvoie une valeur négative si s1 est inférieur à s2, 0 si s1 est égal à s2 ou une valeur positive si s1 est supérieur à s2.
Si les deux chaînes sont nullptr, elles sont considérées comme égales ; sinon, si l’une d’entre elles est nullptr, elle est considérée comme inférieure à l’autre (même si l’autre est une chaîne vide ou si len vaut 0).
Voir également qstrcmp(), qstrncmp(), qstricmp(), Character Case et QByteArray::compare().
size_t qstrnlen(const char *str, size_t maxlen)
Une fonction « strnlen() » sûre.
Renvoie le nombre de caractères précédant le caractère de fin «\0 », mais au maximum maxlen. Si str est égal à nullptr, renvoie 0.
Voir aussi qstrlen().
[noexcept] bool operator!=(const QByteArray &lhs, const QByteArray &rhs)
Renvoie « true » si le tableau d'octets lhs n'est pas égal au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator!=(const QByteArray &lhs, const char *const &rhs)
Renvoie « true » si le tableau d'octets lhs n'est pas égal à la chaîne terminée par «\0 » rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator!=(const char *const &lhs, const QByteArray &rhs)
Renvoie ` true ` si la chaîne `\0` terminée par `'` lhs n'est pas égale au tableau d'octets rhs; sinon, renvoie ` false`.
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept, since 6.4] QByteArray operator""_ba(const char *str, size_t size)
Opérateur littéral qui crée une chaîne « QByteArray » à partir des size premiers caractères de la chaîne littérale de type char str.
L’ QByteArray est créé au moment de la compilation, et les données de chaîne générées sont stockées dans le segment en lecture seule du fichier objet compilé. Des littéraux en double peuvent partager la même mémoire en lecture seule. Cette fonctionnalité est interchangeable avec QByteArrayLiteral, mais permet de gagner du temps de saisie lorsque de nombreux littéraux de chaîne sont présents dans le code.
Le code suivant crée une ` QByteArray` :
using namespace Qt::StringLiterals;
auto str = "hello"_ba;Cette fonction a été introduite dans Qt 6.4.
Voir également ` Qt::Literals::StringLiterals`.
QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
Renvoie un tableau d'octets résultant de la concaténation du tableau d'octets a1 et du tableau d'octets a2.
Voir aussi QByteArray::operator+=().
[since 6.9] QByteArray operator+(QByteArrayView lhs, const QByteArray &rhs)
[since 6.9] QByteArray operator+(const QByteArray &lhs, QByteArrayView rhs)
Renvoie un tableau d'octets résultant de la concaténation de lhs et rhs.
Ces fonctions ont été introduites dans Qt 6.9.
Voir également QByteArray::operator+=().
QByteArray operator+(char a1, const QByteArray &a2)
Renvoie un tableau d'octets résultant de la concaténation de l'a1 et du tableau d'octets a2.
Il s'agit d'une fonction surchargée.
QByteArray operator+(const QByteArray &a1, char a2)
Renvoie un tableau d'octets résultant de la concaténation du tableau d'octets a1 et de l'octet a2.
Il s'agit d'une fonction surchargée.
QByteArray operator+(const QByteArray &a1, const char *a2)
Renvoie un tableau d'octets résultant de la concaténation du tableau d'octets a1 et de la chaîne de caractères terminée par «\0 » a2.
Il s'agit d'une fonction surchargée.
QByteArray operator+(const char *a1, const QByteArray &a2)
Renvoie un tableau d'octets résultant de la concaténation de la chaîne terminée par « '\0 » a1 et du tableau d'octets a2.
Il s'agit d'une fonction surchargée.
[noexcept] bool operator<(const QByteArray &lhs, const QByteArray &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement inférieur au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator<(const QByteArray &lhs, const char *const &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement inférieur à la chaîne terminée par «\0 » rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator<(const char *const &lhs, const QByteArray &rhs)
Renvoie ` true ` si la chaîne `\0` terminée par `'` lhs est lexicalement inférieure au tableau d'octets rhs; sinon, renvoie ` false`.
Il s'agit d'une fonction surchargée.
Voir aussi QByteArray::compare().
QDataStream &operator<<(QDataStream &out, const QByteArray &ba)
Écrit le tableau d'octets ba dans le flux out et renvoie une référence au flux.
Voir également Sérialisation des types de données Qt.
[noexcept] bool operator<=(const QByteArray &lhs, const QByteArray &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement inférieur ou égal au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator<=(const QByteArray &lhs, const char *const &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement inférieur ou égal à la chaîne terminée par «\0 » rhs; sinon, renvoie « false ».
Il s’agit d’une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator<=(const char *const &lhs, const QByteArray &rhs)
Renvoie « true » si la chaîne «\0 » terminée par «' » lhs est lexicalement inférieure ou égale au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator==(const QByteArray &lhs, const QByteArray &rhs)
Renvoie « true » si le tableau d'octets lhs est égal au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator==(const QByteArray &lhs, const char *const &rhs)
Renvoie « true » si le tableau d'octets lhs est égal à la chaîne de caractères terminée par « '\0' » rhs; sinon, renvoie « false ».
Il s’agit d’une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator==(const char *const &lhs, const QByteArray &rhs)
Renvoie ` true ` si la chaîne ` lhs `, terminée par «\0 », est égale au tableau d’octets ` rhs` ; sinon, renvoie ` false`.
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator>(const QByteArray &lhs, const QByteArray &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement supérieur au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator>(const QByteArray &lhs, const char *const &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement supérieur à la chaîne terminée par « '\0' » rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir aussi QByteArray::compare().
[noexcept] bool operator>(const char *const &lhs, const QByteArray &rhs)
Renvoie ` true ` si la chaîne ` lhs `, terminée par «\0 », est lexicalement supérieure au tableau d'octets ` rhs` ; sinon, renvoie ` false`.
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator>=(const QByteArray &lhs, const QByteArray &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement supérieur ou égal au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator>=(const QByteArray &lhs, const char *const &rhs)
Renvoie « true » si le tableau d'octets lhs est lexicalement supérieur ou égal à la chaîne terminée par «\0 » rhs; sinon, renvoie « false ».
Il s’agit d’une fonction surchargée.
Voir également QByteArray::compare().
[noexcept] bool operator>=(const char *const &lhs, const QByteArray &rhs)
Renvoie « true » si la chaîne «\0 » terminée par un espace lhs est lexicalement supérieure ou égale au tableau d'octets rhs; sinon, renvoie « false ».
Il s'agit d'une fonction surchargée.
Voir également QByteArray::compare().
QDataStream &operator>>(QDataStream &in, QByteArray &ba)
Lit un tableau d'octets dans ` ba ` à partir du flux ` in ` et renvoie une référence à ce flux.
Voir aussi Sérialisation des types de données Qt.
Documentation sur les macros
QByteArrayLiteral(ba)
La macro génère les données d'un objet de type ` QByteArray ` à partir de la chaîne littérale ` ba ` au moment de la compilation. La création d'un objet de type ` QByteArray ` à partir de celle-ci est gratuite dans ce cas, et les données du tableau d'octets généré sont stockées dans le segment en lecture seule du fichier objet compilé.
Par exemple :
QByteArray ba = QByteArrayLiteral("byte array contents");L'utilisation de `QByteArrayLiteral` à la place d'une chaîne littérale C++ simple entre guillemets doubles peut accélérer considérablement la création d'instances ` QByteArray ` à partir de données connues au moment de la compilation.
Voir également QStringLiteral.
QT_NO_CAST_FROM_BYTEARRAY
Désactive les conversions automatiques de ` QByteArray ` vers `const char *` ou `const void *`.
Voir également QT_NO_CAST_TO_ASCII et QT_NO_CAST_FROM_ASCII.
[since 6.8] QT_NO_QSNPRINTF
La définition de cette macro désactive les fonctions qsnprintf() et qvsnprintf(). Consultez la documentation de ces fonctions pour savoir pourquoi vous pourriez souhaiter les désactiver.
Cette macro a été introduite dans Qt 6.8.
Voir également qsnprintf() et qvsnprintf().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.