Auf dieser Seite

QByteArray Class

Die Klasse „QByteArray“ stellt ein Byte-Array bereit. Mehr dazu...

Header: #include <QByteArray>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

QByteArray-Vergleiche

KategorieVergleichbare TypenBeschreibung
starkQByteArray
strongconst char *.
strongQChar, char16_t, QString, QStringView, QLatin1StringView und QUtf8StringView.Beim Vergleich mit Zeichenfolgen-Typen wird der Inhalt als UTF-8 interpretiert.

Öffentliche Typen

class FromBase64Result
enum Base64Option { Base64Encoding, Base64UrlEncoding, KeepTrailingEquals, OmitTrailingEquals, IgnoreBase64DecodingErrors, AbortOnBase64DecodingErrors }
flags Base64Options
const_iterator
const_reverse_iterator
iterator
reverse_iterator

Öffentliche Funktionen

QByteArray()
(since 6.8) QByteArray(QByteArrayView v)
QByteArray(const char*data, qsizetype size = -1)
QByteArray(qsizetype size, Qt::Initialization)
QByteArray(qsizetype size, 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 Breite, char Füllzeichen = ' ', bool Abschneiden = 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ädikat 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 vorher, char nachher)
QByteArray &replace(const char*vorher, qsizetype bsize, const char*nachher, 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 size)
QByteArray right(qsizetype len) &&
QByteArray right(qsizetype leng) 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

Statische öffentliche Mitglieder

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)
(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)

Makros

Ausführliche Beschreibung

Mit `QByteArray` lassen sich sowohl Rohbytes (einschließlich „\0 “) als auch herkömmliche 8-Bit-Zeichenketten, die mit „\0 “ enden, speichern. Die Verwendung von `QByteArray` ist wesentlich komfortabler als die Verwendung von ` const char *`. Im Hintergrund stellt es stets sicher, dass den Daten ein „\0 “-Abschlusszeichen folgt, und nutzt implizites Sharing (Copy-on-Write), um den Speicherverbrauch zu reduzieren und unnötiges Kopieren von Daten zu vermeiden.

Neben `QByteArray` bietet Qt auch die Klasse ` QString ` zum Speichern von Zeichenfolgen an. Für die meisten Zwecke ist „ QString “ die Klasse, die Sie verwenden sollten. Sie interpretiert ihren Inhalt als Unicode-Text (kodiert mit UTF-16), während „QByteArray“ darauf abzielt, Annahmen über die Kodierung oder Semantik der gespeicherten Bytes zu vermeiden (abgesehen von einigen wenigen Altfällen, in denen ASCII verwendet wird). Darüber hinaus wird „ QString “ durchgehend in der Qt-API verwendet. Die beiden Hauptfälle, in denen „QByteArray“ geeignet ist, sind, wenn Sie rohe Binärdaten speichern müssen und wenn Speicherplatzersparnis entscheidend ist (z. B. bei Qt für Embedded Linux).

Eine Möglichkeit, ein `QByteArray` zu initialisieren, besteht darin, einfach ein ` const char * ` an dessen Konstruktor zu übergeben. Der folgende Code erstellt beispielsweise ein Byte-Array der Größe 5, das die Daten „Hello“ enthält:

QByteArray ba("Hello");

Obwohl der Wert von ` size()` 5 beträgt, enthält das Byte-Array am Ende zusätzlich ein Byte mit dem Wert „\0 “, sodass bei Verwendung einer Funktion, die einen Zeiger auf die zugrunde liegenden Daten verlangt (z. B. ein Aufruf von ` data()`), garantiert ist, dass die Daten, auf die gezeigt wird, mit „\0 “ abgeschlossen sind.

QByteArray erstellt eine tiefe Kopie der Daten „ const char * “, sodass Sie diese später ohne Nebenwirkungen ändern können. (Wenn Sie beispielsweise aus Leistungsgründen keine tiefe Kopie der Daten erstellen möchten, verwenden Sie stattdessen „ QByteArray::fromRawData()“.)

Ein weiterer Ansatz besteht darin, die Größe des Arrays mit ` resize()` festzulegen und die Daten Byte für Byte zu initialisieren. QByteArray verwendet 0-basierte Indizes, genau wie C++-Arrays. Um auf das Byte an einer bestimmten Indexposition zuzugreifen, können Sie den Operator []() verwenden. Bei nicht-konstanten Byte-Arrays gibt der Operator []() eine Referenz auf ein Byte zurück, die auf der linken Seite einer Zuweisung verwendet werden kann. Zum Beispiel:

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

Für den schreibgeschützten Zugriff bietet sich alternativ die Syntax ` at()` an:

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() kann schneller sein als der Operator [](), da dabei niemals eine tiefe Kopie erstellt wird.

Um viele Bytes auf einmal zu extrahieren, verwenden Sie ` first()`, ` last()` oder ` sliced()`.

Ein QByteArray kann „\0 “-Bytes enthalten. Die Funktion „ size()“ gibt immer die Größe des gesamten Arrays zurück, einschließlich der eingebetteten „\0 “-Bytes, jedoch ohne das von QByteArray hinzugefügte abschließende „\0 “. Beispiel:

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.

Wenn Sie die Länge der Daten bis einschließlich des ersten „\0 “-Bytes ermitteln möchten, rufen Sie „ qstrlen()“ für das Byte-Array auf.

Nach einem Aufruf von ` resize()` haben neu zugewiesene Bytes undefinierte Werte. Um alle Bytes auf einen bestimmten Wert zu setzen, rufen Sie ` fill()` auf.

Um einen Zeiger auf die eigentlichen Bytes zu erhalten, rufen Sie ` data()` oder ` constData()` auf. Diese Funktionen geben einen Zeiger auf den Anfang der Daten zurück. Es wird garantiert, dass der Zeiger gültig bleibt, bis eine nicht-konstante Funktion für das `QByteArray` aufgerufen wird. Es wird außerdem garantiert, dass die Daten mit einem „\0 “-Byte enden, es sei denn, das `QByteArray` wurde mit ` raw data` erstellt. Dieses „\0 “-Byte wird automatisch von `QByteArray` bereitgestellt und nicht in ` size()` mitgezählt.

QByteArray stellt die folgenden Grundfunktionen zum Ändern der Byte-Daten bereit: ` append()`, ` prepend()`, ` insert()`, ` replace()` und ` remove()`. Zum Beispiel:

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

Im obigen Beispiel sind die ersten beiden Argumente der Funktion ` replace()` die Position, an der das Ersetzen beginnen soll, und die Anzahl der Bytes, die ersetzt werden sollen.

Wenn datenverändernde Funktionen die Größe des Arrays erhöhen, kann dies zu einer Neuzuweisung von Speicher für das QByteArray-Objekt führen. In diesem Fall wird das QByteArray um mehr als den unmittelbar benötigten Speicherplatz erweitert, um Platz für weitere Erweiterungen ohne Neuzuweisung zu schaffen, bis die Größe des Arrays erheblich zugenommen hat.

Die Funktionen ` insert()`, ` remove()` und – beim Ersetzen eines Teilarrays durch eines anderer Größe – ` replace()` können bei großen Arrays langsam sein (lineare Laufzeit), da sie erfordern, dass viele Bytes im Array um mindestens eine Position im Speicher verschoben werden.

Wenn Sie ein `QByteArray` schrittweise aufbauen und im Voraus ungefähr wissen, wie viele Bytes das `QByteArray` enthalten wird, können Sie ` reserve()` aufrufen und `QByteArray` anweisen, eine bestimmte Menge an Speicher vorab zu reservieren. Sie können auch ` capacity()` aufrufen, um herauszufinden, wie viel Speicher das `QByteArray` tatsächlich reserviert hat.

Beachten Sie, dass die Verwendung von nicht-konstanten Operatoren und Funktionen dazu führen kann, dass QByteArray aufgrund impliziter gemeinsamen Nutzung eine tiefe Kopie der Daten erstellt.

QByteArray stellt Iteratoren im STL-Stil bereit (QByteArray::const_iterator und QByteArray::iterator). In der Praxis sind Iteratoren besonders nützlich, wenn man mit generischen Algorithmen arbeitet, die von der C++-Standardbibliothek bereitgestellt werden.

Hinweis: Iteratoren und Referenzen auf einzelne QByteArray-Elemente unterliegen Stabilitätsproblemen. Sie werden oft ungültig, wenn eine Operation zur Änderung des QByteArray (z. B. ` insert()` oder ` remove()`) aufgerufen wird. Wenn Stabilität und iteratorähnliche Funktionalität erforderlich sind, sollten Sie Indizes anstelle von Iteratoren verwenden, da diese nicht an den internen Zustand des `QByteArray` gebunden sind und daher nicht ungültig werden.

Hinweis: Es kann nicht davon ausgegangen werden, dassIteratoren über ein QByteArray und Verweise auf einzelne Bytes darin gültig bleiben, wenn eine nicht-konstante Methode des QByteArray aufgerufen wird. Der Zugriff auf einen solchen Iterator oder eine solche Referenz nach dem Aufruf einer nicht-konstanten Methode führt zu undefiniertem Verhalten. Wenn Stabilität für iteratorähnliche Funktionalität erforderlich ist, sollten Sie Indizes anstelle von Iteratoren verwenden, da diese nicht an den internen Zustand von `QByteArray` gebunden sind und daher nicht ungültig werden.

Wenn Sie alle Vorkommen eines bestimmten Bytes oder einer bestimmten Bytefolge in einem `QByteArray` finden möchten, verwenden Sie ` indexOf()` oder ` lastIndexOf()`. Ersteres sucht vorwärts ausgehend von einer angegebenen Indexposition, letzteres sucht rückwärts. Beide geben die Indexposition der Bytefolge zurück, wenn sie diese finden; andernfalls geben sie -1 zurück. Hier ist beispielsweise eine typische Schleife, die alle Vorkommen einer bestimmten Zeichenkette findet:

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;
}

Wenn Sie lediglich prüfen möchten, ob ein `QByteArray` eine bestimmte Bytefolge enthält, verwenden Sie ` contains()`. Wenn Sie herausfinden möchten, wie oft eine bestimmte Bytefolge im Byte-Array vorkommt, verwenden Sie ` count()`. Wenn Sie alle Vorkommen eines bestimmten Werts durch einen anderen ersetzen möchten, verwenden Sie eine der mit zwei Parametern überladenen Versionen von ` replace()`.

QByteArrays können mithilfe überladener Operatoren wie `operator<()`, `operator<=()`, `operator==()`, `operator>=()` usw. verglichen werden. Der Vergleich basiert ausschließlich auf den numerischen Werten der Bytes und ist sehr schnell, entspricht jedoch nicht den Erwartungen eines Menschen. ` QString::localeAwareCompare()` ist die bessere Wahl zum Sortieren von Zeichenfolgen in der Benutzeroberfläche.

Aus historischen Gründen unterscheidet QByteArray zwischen einem Null-Byte-Array und einem leeren Byte-Array. Ein Null-Byte-Array ist ein Byte-Array, das mit dem Standardkonstruktor von QByteArray oder durch Übergabe von (const char *)0 an den Konstruktor initialisiert wird. Ein leeres Byte-Array ist jedes Byte-Array mit der Größe 0. Ein Null-Byte-Array ist immer leer, aber ein leeres Byte-Array ist nicht unbedingt null:

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 false

Alle Funktionen außer ` isNull()` behandeln Null-Byte-Arrays genauso wie leere Byte-Arrays. Beispielsweise gibt ` data()` für ein Null-Byte-Array einen gültigen Zeiger (nicht `nullptr`) auf ein Byte mit dem Wert `'\0'` zurück, und `QByteArray()` ist gleichbedeutend mit `QByteArray("")`. Wir empfehlen, stets ` isEmpty()` zu verwenden und ` isNull()` zu vermeiden.

Maximale Größe und Speicherengpässe

Die maximale Größe von `QByteArray` hängt von der Architektur ab. Die meisten 64-Bit-Systeme können mehr als 2 GB Speicher zuweisen, wobei die typische Obergrenze bei 2^63 Bytes liegt. Der tatsächliche Wert hängt zudem vom Overhead ab, der für die Verwaltung des Datenblocks erforderlich ist. Daher können Sie auf 32-Bit-Plattformen mit einer maximalen Größe von 2 GB abzüglich des Overheads und auf 64-Bit-Plattformen mit 2^63 Byte abzüglich des Overheads rechnen. Die Anzahl der Elemente, die in einem QByteArray gespeichert werden können, entspricht dieser maximalen Größe.

Wenn die Speicherzuweisung fehlschlägt, löst QByteArray eine „ std::bad_alloc “-Ausnahme aus, sofern die Anwendung mit Ausnahmeunterstützung kompiliert wurde. Speicherengpässe in Qt-Containern sind der einzige Fall, in dem Qt Ausnahmen auslöst. Sind Ausnahmen deaktiviert, führt ein Speicherengpass zu undefiniertem Verhalten.

Beachten Sie, dass das Betriebssystem Anwendungen, die viel zugewiesenen Speicher belegen – insbesondere große, zusammenhängende Blöcke –, möglicherweise weitere Beschränkungen auferlegt. Solche Überlegungen, die Konfiguration dieses Verhaltens oder etwaige Abhilfemaßnahmen liegen außerhalb des Geltungsbereichs der QByteArray-API.

C-Locale und ASCII-Funktionen

QByteArray behandelt Daten im Allgemeinen als Bytes, ohne dabei eine bestimmte Semantik anzunehmen; wo es eine Semantik annimmt, verwendet es die C-Locale und die ASCII-Kodierung. Standard-Unicode-Kodierungen werden von QString unterstützt; andere Kodierungen können mithilfe von QStringEncoder und QStringDecoder zur Konvertierung in Unicode unterstützt werden. Für die localespezifische Interpretation von Text verwenden Sie QLocale oder QString.

C-Strings

Traditionelle C-Zeichenketten, auch als durch „\0 “ begrenzte Zeichenketten bekannt, sind Byte-Sequenzen, die durch einen Startpunkt festgelegt werden und implizit jedes Byte bis einschließlich des ersten darauf folgenden „\0 “-Bytes enthalten. Methoden, die einen solchen Zeiger ohne Längenangabe akzeptieren, interpretieren ihn als diese Bytefolge. Eine solche Folge kann konstruktionsbedingt kein „\0 “-Byte enthalten.

Andere Überladungen akzeptieren einen Startzeiger und eine Byteanzahl; diese verwenden die angegebene Anzahl von Bytes, beginnend an der Startadresse, unabhängig davon, ob es sich bei einigen davon um „\0 “-Bytes handelt. In einigen Fällen, in denen es keine Überladung gibt, die nur einen Zeiger akzeptiert, führt die Übergabe einer Länge von -1 dazu, dass die Methode den Offset des ersten „\0 “-Bytes nach dem Zeiger als Länge verwendet; eine Länge von -1 sollte nur übergeben werden, wenn die Methode ausdrücklich angibt, dass sie dies tut (in diesem Fall handelt es sich typischerweise um ein Standardargument).

Leerzeichen

Häufig ist es erforderlich, Leerzeichen aus einem Byte-Array zu entfernen ('\n', '\t', ' ' usw.). Wenn Sie Leerzeichen an beiden Enden eines `QByteArray` entfernen möchten, verwenden Sie ` trimmed()`. Wenn Sie zudem jede Folge von Leerzeichen innerhalb des Byte-Arrays durch ein einzelnes Leerzeichen ersetzen möchten, verwenden Sie ` simplified()`. Für diese Zwecke werden nur ASCII-Leerzeichen erkannt.

Konvertierungen zwischen Zahlen und Zeichenfolgen

Funktionen, die Konvertierungen zwischen numerischen Datentypen und Zeichenfolgen-Darstellungen durchführen, werden unabhängig von den Ländereinstellungen des Benutzers in der C-Ländereinstellung ausgeführt. Verwenden Sie „ QLocale “, um ländereinstellungsabhängige Konvertierungen zwischen Zahlen und Zeichenfolgen durchzuführen.

Groß-/Kleinschreibung

In QByteArray ist der Begriff der Groß- und Kleinschreibung sowie des groß-/kleinschreibungsunabhängigen Vergleichs auf ASCII beschränkt. Nicht-ASCII-Zeichen werden als groß-/kleinschreibungsunabhängig behandelt, da ihre Groß-/Kleinschreibung von der Kodierung abhängt. Dies betrifft Funktionen, die eine Option zur Groß-/Kleinschreibungsunabhängigkeit unterstützen oder die Groß-/Kleinschreibung ihrer Argumente ändern. Zu den betroffenen Funktionen gehören „ compare()“, „ isLower()“, „ isUpper()“, „ toLower()“ und „ toUpper()“.

Dieses Problem betrifft keine ` QString`-Zeichen, da diese Zeichen mithilfe von Unicode darstellen.

Siehe auch QByteArrayView, QString und QBitArray.

Dokumentation zu Mitgliedstypen

enum QByteArray::Base64Option
flags QByteArray::Base64Options

Diese Enumeration enthält die verfügbaren Optionen für die Kodierung und Dekodierung von Base64. Base64 ist in RFC 4648 definiert und bietet die folgenden Optionen:

KonstanteWertBeschreibung
QByteArray::Base64Encoding0(Standard) Das reguläre Base64-Alphabet, einfach „base64“ genannt
QByteArray::Base64UrlEncoding1Ein alternatives Alphabet, das als „base64url“ bezeichnet wird und bei dem zwei Zeichen des Alphabets ersetzt werden, um die URL-Freundlichkeit zu verbessern.
QByteArray::KeepTrailingEquals0(Standard) Behält die abschließenden Ausgleichs-Gleichheitszeichen am Ende der kodierten Daten bei, sodass die Daten immer ein Vielfaches von vier sind.
QByteArray::OmitTrailingEquals2Lässt das Hinzufügen der ausgleichenden Gleichheitszeichen am Ende der kodierten Daten weg.
QByteArray::IgnoreBase64DecodingErrors0Beim Dekodieren von Base64-kodierten Daten werden Fehler in der Eingabe ignoriert; ungültige Zeichen werden einfach übersprungen. Dieser Enum-Wert wurde in Qt 5.15 hinzugefügt.
QByteArray::AbortOnBase64DecodingErrors4Beim Dekodieren von Base64-kodierten Daten wird beim ersten Dekodierungsfehler abgebrochen. Dieser Enum-Wert wurde in Qt 5.15 hinzugefügt.

QByteArray::fromBase64Encoding() und „ QByteArray::fromBase64 “ () ignorieren die Optionen „KeepTrailingEquals“ und „OmitTrailingEquals“. Wenn die Option „IgnoreBase64DecodingErrors“ angegeben ist, werden keine Fehler gemeldet, falls abschließende Gleichheitszeichen fehlen oder zu viele vorhanden sind. Wird stattdessen „AbortOnBase64DecodingErrors“ angegeben, darf die Eingabe entweder keine Auffüllzeichen enthalten oder muss die korrekte Anzahl an Gleichheitszeichen aufweisen.

Der Typ „Base64Options“ ist ein „typedef“ für „QFlags<Base64Option>“. Er speichert eine ODER-Kombination von „Base64Option“-Werten.

QByteArray::const_iterator

Dieser `typedef` stellt einen `const`-Iterator im STL-Stil für ` QByteArray` bereit.

Siehe auch QByteArray::const_reverse_iterator und QByteArray::iterator.

QByteArray::const_reverse_iterator

Dieser `typedef` stellt einen `const`-Reverse-Iterator im STL-Stil für ` QByteArray` bereit.

Siehe auch QByteArray::reverse_iterator und QByteArray::const_iterator.

QByteArray::iterator

Dieser `typedef` stellt einen nicht-konstanten Iterator im STL-Stil für ` QByteArray` bereit.

Siehe auch QByteArray::reverse_iterator und QByteArray::const_iterator.

QByteArray::reverse_iterator

Dieser `typedef` stellt einen nicht-konstanten Reverse-Iterator im STL-Stil für ` QByteArray` bereit.

Siehe auch QByteArray::const_reverse_iterator und QByteArray::iterator.

Dokumentation zu den Mitgliedsfunktionen

[constexpr noexcept] QByteArray::QByteArray()

Erstellt ein leeres Byte-Array.

Siehe auch ` isEmpty()`.

[explicit, since 6.8] QByteArray::QByteArray(QByteArrayView v)

Erstellt ein Byte-Array, das mit den Daten der Byte-Array-Ansicht initialisiert ist.

Das `QByteArray` ist genau dann null, wenn ` v ` null ist.

Diese Funktion wurde in Qt 6.8 eingeführt.

QByteArray::QByteArray(const char *data, qsizetype size = -1)

Erstellt ein Byte-Array, das die ersten size Bytes des Arrays data enthält.

Ist data gleich 0, wird ein Null-Byte-Array erstellt.

Ist size negativ, wird angenommen, dass data auf eine durch „\0 “ begrenzte Zeichenkette verweist, und ihre Länge wird dynamisch ermittelt.

QByteArray erstellt eine tiefe Kopie der Zeichenkettendaten.

Siehe auch fromRawData().

QByteArray::QByteArray(qsizetype size, Qt::Initialization)

Erstellt ein Byte-Array der Größe size mit nicht initialisiertem Inhalt.

Beispiel:

QByteArray buffer(123, Qt::Uninitialized);

QByteArray::QByteArray(qsizetype size, char ch)

Erzeugt ein Byte-Array der Größe size, wobei jedes Byte auf ch gesetzt wird.

Siehe auch fill().

[noexcept] QByteArray::QByteArray(const QByteArray &other)

Erstellt eine Kopie von ` other`.

Dieser Vorgang dauert konstant lange, da `QByteArray` implizit gemeinsam genutzt wird. Dadurch ist die Rückgabe eines `QByteArray` aus einer Funktion sehr schnell. Wird eine gemeinsam genutzte Instanz geändert, wird sie kopiert (Copy-on-Write), was lineare Zeit in Anspruch nimmt.

Siehe auch ` operator=()`.

[noexcept default] QByteArray::QByteArray(QByteArray &&other)

Erstellt eine QByteArray-Instanz per Move-Konstruktion, sodass diese auf dasselbe Objekt verweist, auf das zuvor „ other “ verwiesen hat.

[noexcept] QByteArray::~QByteArray()

Löscht das Byte-Array.

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

Fügt das Byte-Array „ ba “ an das Ende dieses Byte-Arrays an.

Beispiel:

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

Dies entspricht „insert(size(), ba)“.

Hinweis: ` QByteArray ` ist eine implizit gemeinsam genutzte Klasse. Wenn Sie also an ein leeres Byte-Array anhängen, nutzt das Byte-Array lediglich die in ` ba` enthaltenen Daten. In diesem Fall erfolgt kein Kopieren der Daten, was konstante Zeit in Anspruch nimmt. Wird eine gemeinsam genutzte Instanz geändert, wird sie kopiert (Copy-on-Write), was lineare Zeit in Anspruch nimmt.

Ist das Byte-Array, an das angehängt wird, nicht leer, wird eine tiefe Kopie der Daten erstellt, was lineare Zeit in Anspruch nimmt.

Die Funktion `append()` ist in der Regel sehr schnell (konstante Laufzeit), da ` QByteArray ` am Ende der Daten zusätzlichen Speicherplatz vorab reserviert, sodass das Array wachsen kann, ohne dass jedes Mal das gesamte Array neu zugewiesen werden muss.

Siehe auch ` operator+=()`, ` prepend()` und ` insert()`.

QByteArray &QByteArray::append(QByteArrayView data)

Fügt „ data “ an dieses Byte-Array an.

Dies ist eine überladene Funktion.

QByteArray &QByteArray::append(char ch)

Fügt das Byte- ch, an dieses Byte-Array an.

Dies ist eine überladene Funktion.

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

Fügt die durch „\0 “ begrenzte Zeichenkette „ str “ an dieses Byte-Array an.

Dies ist eine überladene Funktion.

QByteArray &QByteArray::append(const char *str, qsizetype len)

Fügt die ersten len Bytes, beginnend bei str, an dieses Byte-Array an und gibt eine Referenz auf dieses Byte-Array zurück. Die angehängten Bytes können „\0 “-Bytes enthalten.

Ist len negativ, wird str als durch „\0 “ abgeschlossene Zeichenkette angesehen, und die zu kopierende Länge wird automatisch mithilfe von qstrlen() ermittelt.

Ist ` len ` gleich Null oder ist ` str ` null, wird dem Byte-Array nichts angehängt. Stellen Sie sicher, dass ` len ` nicht länger ist als ` str`.

Dies ist eine überladene Funktion.

QByteArray &QByteArray::append(qsizetype count, char ch)

Fügt count Kopien des Byte- ch s an dieses Byte-Array an und gibt eine Referenz auf dieses Byte-Array zurück.

Ist ` count ` negativ oder gleich Null, wird dem Byte-Array nichts angehängt.

Dies ist eine überladene Funktion.

[since 6.6] QByteArray &QByteArray::assign(QByteArrayView v)

Ersetzt den Inhalt dieses Byte-Arrays durch eine Kopie von v und gibt eine Referenz auf dieses Byte-Array zurück.

Die Größe dieses Byte-Arrays entspricht der Größe von ` v`.

Diese Funktion reserviert nur dann Speicher, wenn die Größe von ` v ` die Kapazität dieses Byte-Arrays überschreitet oder dieses Byte-Array gemeinsam genutzt wird.

Diese Funktion wurde in Qt 6.6 eingeführt.

[since 6.6] template <typename InputIterator, QByteArray::if_input_iterator<InputIterator> = true> QByteArray &QByteArray::assign(InputIterator first, InputIterator last)

Ersetzt den Inhalt dieses Byte-Arrays durch eine Kopie der Elemente im Iterator-Bereich [first, last) und gibt eine Referenz auf dieses Byte-Array zurück.

Die Größe dieses Byte-Arrays entspricht der Anzahl der Elemente im Bereich [first, last).

Diese Funktion reserviert nur dann Speicher, wenn die Anzahl der Elemente im Bereich die Kapazität dieses Byte-Arrays überschreitet oder dieses Byte-Array gemeinsam genutzt wird.

Hinweis: Das Verhalten ist undefiniert, wenn eines der Argumente ein Iterator auf *this ist oder [first, last) kein gültiger Bereich ist.

Einschränkungen

Nimmt nur dann an der Überladungsauflösung teil, wenn InputIterator die Anforderungen eines LegacyInputIterator erfüllt.

Diese Funktion wurde in Qt 6.6 eingeführt.

[since 6.6] QByteArray &QByteArray::assign(qsizetype n, char c)

Ersetzt den Inhalt dieses Byte-Arrays durch n Kopien von c und gibt eine Referenz auf dieses Byte-Array zurück.

Die Größe dieses Byte-Arrays entspricht n, wobei dieser Wert nicht negativ sein darf.

Diese Funktion reserviert nur dann Speicher, wenn „ n “ die Kapazität dieses Byte-Arrays überschreitet oder dieses Byte-Array gemeinsam genutzt wird.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch ` fill()`.

char QByteArray::at(qsizetype i) const

Gibt das Byte an der Indexposition i im Byte-Array zurück.

i muss eine gültige Indexposition im Byte-Array sein (d. h. 0 <= i < size()).

Siehe auch ` operator[]()`.

char &QByteArray::back()

Gibt eine Referenz auf das letzte Byte im Byte-Array zurück. Entspricht „ operator[](size() - 1) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion auf ein leeres Byte-Array führt zu undefiniertem Verhalten.

Siehe auch „ front()“, „ at()“ und „ operator[]()“.

char QByteArray::back() const

Gibt das letzte Byte im Byte-Array zurück. Entspricht „ at(size() - 1) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion auf ein leeres Byte-Array führt zu undefiniertem Verhalten.

Siehe auch „ front()“, „ at()“ und „ operator[]()“.

QByteArray::iterator QByteArray::begin()

Gibt einen Iterator im STL-Stil zurück, der auf das erste Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des „ QByteArray “ ungültig.

Siehe auch „ constBegin()“ und „ end()“.

[noexcept] QByteArray::const_iterator QByteArray::begin() const

Diese Funktion überlädt die Funktion „ QByteArray::begin()“.

qsizetype QByteArray::capacity() const

Gibt die maximale Anzahl an Bytes zurück, die im Byte-Array gespeichert werden können, ohne dass eine Neuzuweisung erzwungen wird.

Der einzige Zweck dieser Funktion besteht darin, eine Möglichkeit zur Feinabstimmung der Speichernutzung von „ QByteArray “ bereitzustellen. Im Allgemeinen werden Sie diese Funktion so gut wie nie aufrufen müssen. Wenn Sie wissen möchten, wie viele Bytes sich im Byte-Array befinden, rufen Sie „ size()“ auf.

Hinweis: Ein statisch zugewiesenes Byte-Array meldet eine Kapazität von 0, auch wenn es nicht leer ist.

Hinweis: Die Positiondes freien Speicherplatzes im zugewiesenen Speicherblock ist undefiniert. Mit anderen Worten: Man sollte nicht davon ausgehen, dass sich der freie Speicher immer hinter den initialisierten Elementen befindet.

Siehe auch ` reserve()` und ` squeeze()`.

[noexcept] QByteArray::const_iterator QByteArray::cbegin() const

Gibt einen konstanten Iterator im STL-Stil zurück, der auf das erste Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung des „ QByteArray “ ungültig.

Siehe auch „ begin()“ und „ cend()“.

[noexcept] QByteArray::const_iterator QByteArray::cend() const

Gibt einen konstanten Iterator im STL-Stil zurück, der direkt auf das letzte Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des ` QByteArray ` ungültig.

Siehe auch „ cbegin()“ und „ end()“.

void QByteArray::chop(qsizetype n)

Entfernt n Bytes vom Ende des Byte-Arrays.

Ist ` n ` größer als ` size()`, ist das Ergebnis ein leeres Byte-Array.

Beispiel:

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

Siehe auch „ truncate()“, „ resize()“ und „ first()“.

QByteArray QByteArray::chopped(qsizetype len) &&

QByteArray QByteArray::chopped(qsizetype len) const &

Gibt ein Byte-Array zurück, das die Bytes ganz links ( size() – len ) dieses Byte-Arrays enthält.

Hinweis: Das Verhalten ist undefiniert, wenn ` len ` negativ oder größer als ` size` () ist.

Siehe auch endsWith(), first(), last(), sliced(), chop(), truncate() und slice().

void QByteArray::clear()

Löscht den Inhalt des Byte-Arrays und setzt ihn auf null.

Siehe auch resize() und isNull().

[noexcept, since 6.0] int QByteArray::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Gibt eine ganze Zahl zurück, die kleiner als, gleich oder größer als Null ist, je nachdem, ob dieser QByteArray vor, an derselben Position wie oder nach dem QByteArrayView bv sortiert wird. Der Vergleich erfolgt unter Berücksichtigung der Groß-/Kleinschreibung cs.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch operator== und Character Case.

[noexcept] QByteArray::const_iterator QByteArray::constBegin() const

Gibt einen konstanten Iterator im STL-Stil zurück, der auf das erste Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung des „ QByteArray “ ungültig.

Siehe auch „ begin()“ und „ constEnd()“.

[noexcept] const char *QByteArray::constData() const

Gibt einen Zeiger auf die im Byte-Array gespeicherten konstanten Daten zurück. Der Zeiger kann verwendet werden, um auf die Bytes zuzugreifen, aus denen das Array besteht. Die Daten werden mit „\0 “ abgeschlossen, es sei denn, das Objekt „ QByteArray “ wurde aus Rohdaten erstellt.

Der Zeiger bleibt gültig, solange keine Trennung erfolgt und das ` QByteArray ` nicht verändert wird.

Diese Funktion ist vor allem nützlich, um ein Byte-Array an eine Funktion zu übergeben, die ein ` const char *` akzeptiert.

Hinweis: Ein ` QByteArray ` kann beliebige Byte-Werte speichern, einschließlich `'\0's`, doch die meisten Funktionen, die ` char * `-Argumente entgegennehmen, gehen davon aus, dass die Daten am ersten `'\0` enden, auf das sie stoßen.

Siehe auch „ data()“, „ operator[]()“ und „ fromRawData()“.

[noexcept] QByteArray::const_iterator QByteArray::constEnd() const

Gibt einen konstanten Iterator im STL-Stil zurück, der direkt auf das letzte Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des „ QByteArray “ ungültig.

Siehe auch „ constBegin()“ und „ end()“.

[since 6.0] bool QByteArray::contains(QByteArrayView bv) const

Gibt „ true “ zurück, wenn dieses Byte-Array ein Vorkommen der von „ bv “ untersuchten Byte-Sequenz enthält; andernfalls wird „ false “ zurückgegeben.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch indexOf() und count().

bool QByteArray::contains(char ch) const

Gibt „ true “ zurück, wenn das Byte-Array das Byte „ ch “ enthält; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

[since 6.0] qsizetype QByteArray::count(QByteArrayView bv) const

Gibt die Anzahl der (möglicherweise überlappenden) Vorkommen der von „ bv “ in diesem Byte-Array erkannten Byte-Sequenz zurück.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ contains()“ und „ indexOf()“.

qsizetype QByteArray::count(char ch) const

Gibt die Anzahl der Vorkommen der Byte- ch s im Byte-Array zurück.

Dies ist eine überladene Funktion.

Siehe auch „ contains()“ und „ indexOf()“.

[noexcept] QByteArray::const_reverse_iterator QByteArray::crbegin() const

Gibt einen konstanten Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge auf das erste Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei Trennung oder bei einer Änderung des „ QByteArray “ ungültig.

Siehe auch ` begin()`, ` rbegin()` und ` rend()`.

[noexcept] QByteArray::const_reverse_iterator QByteArray::crend() const

Gibt einen konstanten Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge direkt auf das letzte Byte des Byte-Arrays zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei Änderung des „ QByteArray “ ungültig.

Siehe auch „ end()“, „ rend()“ und „ rbegin()“.

char *QByteArray::data()

Gibt einen Zeiger auf die im Byte-Array gespeicherten Daten zurück. Mit diesem Zeiger kann auf die Bytes des Arrays zugegriffen und diese geändert werden. Die Daten werden durch „\0 “ abgeschlossen, d. h., die Anzahl der Bytes, auf die Sie über den zurückgegebenen Zeiger zugreifen können, beträgt size() + 1, einschließlich des Abschlusszeichens „\0 “.

Beispiel:

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

Der Zeiger bleibt gültig, solange keine Abkopplung erfolgt und die ` QByteArray ` nicht geändert wird.

Für den schreibgeschützten Zugriff ist ` constData()` schneller, da dabei niemals eine tiefe Kopie erstellt wird.

Diese Funktion ist vor allem nützlich, um ein Byte-Array an eine Funktion zu übergeben, die einen ` const char *` akzeptiert.

Das folgende Beispiel erstellt eine Kopie des von `data()` zurückgegebenen `char*`, beschädigt jedoch den Heap und führt zu einem Absturz, da es kein Byte für das `'\0'` am Ende reserviert:

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size()];
strcpy(data, text.data());
delete [] data;

Hier wird die richtige Speichermenge zugewiesen:

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1];
strcpy(data, text.data());
delete [] data;

Hinweis: Ein ` QByteArray ` kann beliebige Byte-Werte speichern, einschließlich `'\0`-Zeichen, doch die meisten Funktionen, die ` char * `-Argumente entgegennehmen, gehen davon aus, dass die Daten am ersten `'\0` enden, auf das sie stoßen.

Siehe auch ` constData()` und ` operator[]()`.

[noexcept] const char *QByteArray::data() const

Dies ist eine überladene Funktion.

QByteArray::iterator QByteArray::end()

Gibt einen Iterator im STL-Stil zurück, der direkt auf das letzte Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des „ QByteArray “ ungültig.

Siehe auch „ begin()“ und „ constEnd()“.

[noexcept] QByteArray::const_iterator QByteArray::end() const

Diese Funktion überlädt die Funktion „ QByteArray::end()“.

[since 6.0] bool QByteArray::endsWith(QByteArrayView bv) const

Gibt „ true “ zurück, wenn dieses Byte-Array mit der unter bv beschriebenen Byte-Sequenz endet; andernfalls wird „ false “ zurückgegeben.

Beispiel:

QByteArray url("http://qt-project.org/doc/qt-5.0/qtdoc/index.html");
if (url.endsWith(".html"))
    {/*...*/}

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch startsWith() und last().

bool QByteArray::endsWith(char ch) const

Gibt „ true “ zurück, wenn dieses Byte-Array mit dem Byte „ ch “ endet; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

[since 6.1] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator first, QByteArray::const_iterator last)

Entfernt aus dem Byte-Array die Zeichen im halboffenen Bereich [ first, last ). Gibt einen Iterator auf das Zeichen zurück, auf das last vor dem Löschen verwies.

Diese Funktion wurde in Qt 6.1 eingeführt.

[since 6.5] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator it)

Entfernt das durch ` it ` bezeichnete Zeichen aus dem Byte-Array. Gibt einen Iterator auf das Zeichen zurück, das unmittelbar auf das gelöschte Zeichen folgt.

QByteArray ba = "abcdefg";
auto it = ba.erase(ba.cbegin()); // ba is now "bcdefg" and it points to "b"

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.5 eingeführt.

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

Setzt jedes Byte im Byte-Array auf „ ch “. Wenn „ size “ ungleich -1 (Standardwert) ist, wird das Byte-Array zuvor auf die Größe „size size “ angepasst.

Beispiel:

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

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

Siehe auch ` resize()`.

[since 6.0] QByteArray QByteArray::first(qsizetype n) &&

[since 6.0] QByteArray QByteArray::first(qsizetype n) const &

Gibt die ersten n Bytes des Byte-Arrays zurück.

Hinweis: Das Verhalten ist undefiniert, wenn „ n “ < 0 oder „ n “ > „ size “ () ist.

Beispiel:

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

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch last(), sliced(), startsWith(), chopped(), chop(), truncate() und slice().

[static] QByteArray QByteArray::fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)

Gibt eine dekodierte Kopie des Base64-Arrays base64 zurück, wobei die unter options definierten Optionen verwendet werden. Wenn options den Wert IgnoreBase64DecodingErrors (Standard) enthält, wird die Eingabe nicht auf Gültigkeit geprüft; ungültige Zeichen in der Eingabe werden übersprungen, sodass der Dekodierungsprozess mit den nachfolgenden Zeichen fortgesetzt werden kann. Wenn options den Wert AbortOnBase64DecodingErrors enthält, wird die Dekodierung beim ersten ungültigen Zeichen abgebrochen.

Beispiel:

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>"

Der zur Dekodierung von Base64-kodierten Daten verwendete Algorithmus ist in RFC 4648 definiert.

Gibt die dekodierten Daten zurück oder, falls die Option „ AbortOnBase64DecodingErrors “ übergeben wurde und die Eingabedaten ungültig waren, ein leeres Byte-Array.

Hinweis: Die Funktion ` fromBase64Encoding()` wird in neuem Code empfohlen.

Siehe auch „ toBase64()“ und „ fromBase64Encoding()“.

[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding)

[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)

Dekodiert das Base64-Array base64 unter Verwendung der in options definierten Optionen. Wenn options den Wert IgnoreBase64DecodingErrors (Standard) enthält, wird die Eingabe nicht auf Gültigkeit geprüft; ungültige Zeichen in der Eingabe werden übersprungen, sodass der Dekodierungsprozess mit den nachfolgenden Zeichen fortgesetzt wird. Wenn options den Wert AbortOnBase64DecodingErrors enthält, wird die Dekodierung beim ersten ungültigen Zeichen beendet.

Beispiel:

void process(const QByteArray &);

if (auto result = QByteArray::fromBase64Encoding(encodedData))
    process(*result);

Der zur Dekodierung von Base64-kodierten Daten verwendete Algorithmus ist in RFC 4648 definiert.

Gibt ein `QByteArrayFromBase64Result`-Objekt zurück, das die dekodierten Daten sowie ein Flag enthält, das angibt, ob die Dekodierung erfolgreich war. Wenn die Option ` AbortOnBase64DecodingErrors ` übergeben wurde und die Eingabedaten ungültig waren, ist der Inhalt der dekodierten Daten nicht spezifiziert.

Siehe auch ` toBase64()`.

[static] QByteArray QByteArray::fromCFData(CFDataRef data)

Erstellt ein neues ` QByteArray `, das eine Kopie des `CFData`-Objekts ` data` enthält.

Siehe auch fromRawCFData(), fromRawData(), toRawCFData() und toCFData().

[static, since 6.5] QByteArray QByteArray::fromEcmaUint8Array(emscripten::val uint8array)

Erstellt ein neues ` QByteArray `, das eine Kopie des `Uint8Array`- uint8array s enthält.

Diese Funktion überträgt Daten aus einem JavaScript-Datenpuffer – der aus C++-Code nicht adressierbar ist – in den Heap-Speicher eines ` QByteArray`. Das `Uint8Array` kann freigegeben werden, sobald diese Funktion zurückkehrt und eine Kopie erstellt wurde.

Das Argument „ uint8array “ muss ein „emscripten::val“ sein, das auf ein „Uint8Array“-Objekt verweist, das beispielsweise aus einer globalen JavaScript-Variablen stammt:

emscripten::val uint8array = emscripten::val::global("g_uint8array");
QByteArray byteArray = QByteArray::fromEcmaUint8Array(uint8array);

Diese Funktion gibt ein null- QByteArray zurück, wenn die Größe des Uint8Array die maximale Kapazität von ` QByteArray` überschreitet oder wenn das Argument ` uint8array ` nicht vom Typ `Uint8Array` ist.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch ` toEcmaUint8Array()`.

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

Gibt eine dekodierte Kopie des hexadezimal kodierten Arrays „ hexEncoded “ zurück. Die Eingabe wird nicht auf Gültigkeit geprüft; ungültige Zeichen in der Eingabe werden übersprungen, sodass der Dekodierungsprozess mit den nachfolgenden Zeichen fortgesetzt werden kann.

Beispiel:

QByteArray text = QByteArray::fromHex("517420697320677265617421");
text.data();            // returns "Qt is great!"

Siehe auch ` toHex()`.

[static] QByteArray QByteArray::fromNSData(const NSData *data)

Erstellt ein neues ` QByteArray `, das eine Kopie des `NSData`-Objekts ` data` enthält.

Siehe auch fromRawNSData(), fromRawData(), toNSData() und toRawNSData().

[static] QByteArray QByteArray::fromPercentEncoding(const QByteArray &input, char percent = '%')

Dekodiert „ input “ aus der Prozent-Kodierung im URI-/URL-Format.

Gibt ein Byte-Array zurück, das den dekodierten Text enthält. Der Parameter „ percent “ ermöglicht die Verwendung eines anderen Zeichens als „%“ (z. B. „_“ oder „=“) als Escape-Zeichen. Entspricht der Eingabe:percentDecoded(Prozent).

Beispiel:

QByteArray text = QByteArray::fromPercentEncoding("Qt%20is%20great%33");
qDebug("%s", text.data());      // reports "Qt is great!"

Siehe auch percentDecoded().

[static, since 6.11] QByteArray QByteArray::fromPercentEncoding(QByteArray &&input, char percent = '%')

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.11 eingeführt.

[static] QByteArray QByteArray::fromRawCFData(CFDataRef data)

Erstellt ein ` QByteArray `, das die Bytes des `CFData`- data s verwendet.

Die Bytes des ` data` werden nicht kopiert.

Der Aufrufer garantiert, dass das CFData-Objekt nicht gelöscht oder geändert wird, solange dieses QByteArray -Objekt existiert.

Siehe auch fromCFData(), fromRawData(), toRawCFData() und toCFData().

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

Erstellt eine „ QByteArray “, die die ersten „ size “ Bytes des Arrays „ data “ verwendet. Die Bytes werden nicht kopiert. „ QByteArray “ enthält den Zeiger „ data “. Der Aufrufer garantiert, dass „ data “ nicht gelöscht oder verändert wird, solange diese „ QByteArray “ und alle unveränderten Kopien davon existieren. Mit anderen Worten: Da QByteArray eine implizit gemeinsam genutzte Klasse ist und die von dieser Funktion zurückgegebene Instanz den Zeiger data enthält, darf der Aufrufer data nicht löschen oder direkt ändern, solange das zurückgegebene QByteArray und etwaige Kopien davon existieren. Allerdings übernimmt QByteArray nicht die Eigentumsrechte an data, sodass der Destruktor von QByteArray niemals das ursprüngliche data löschen wird, selbst wenn das letzte QByteArray, das auf data verweist, zerstört wird.

Ein nachfolgender Versuch, den Inhalt des zurückgegebenen QByteArray oder einer davon erstellten Kopie zu ändern, führt dazu, dass vor der Änderung eine tiefe Kopie des data -Arrays erstellt wird. Dadurch wird sichergestellt, dass das Roh- data -Array selbst niemals durch QByteArray verändert wird.

Hier ist ein Beispiel dafür, wie man mit einem ` QDataStream ` Daten aus Rohdaten im Speicher ausliest, ohne die Rohdaten in ein ` QByteArray` zu kopieren:

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);
//...

Warnung: Ein mit `fromRawData()` erstelltes Byte-Array ist nicht mit `'\0'` abgeschlossen, es sei denn, die Rohdaten enthalten an der Position ` size` ein `'\0'`-Byte. Während dies für ` QDataStream ` oder Funktionen wie ` indexOf()` keine Rolle spielt, schlägt die Übergabe des Byte-Arrays an eine Funktion fehl, die ein ` const char * ` akzeptiert, von dem erwartet wird, dass es mit `'\0'` abgeschlossen ist.

Siehe auch setRawData(), data(), constData(), nullTerminate() und nullTerminated().

[static] QByteArray QByteArray::fromRawNSData(const NSData *data)

Erstellt ein ` QByteArray `, das die Bytes des `NSData`- data s verwendet.

Die Bytes des ` data` werden nicht kopiert.

Der Aufrufer garantiert, dass das NSData-Objekt nicht gelöscht oder verändert wird, solange dieses „ QByteArray “-Objekt existiert.

Siehe auch fromNSData(), fromRawData(), toRawNSData() und toNSData().

[static] QByteArray QByteArray::fromStdString(const std::string &str)

Gibt eine Kopie der Zeichenkette „ str “ als „ QByteArray “ zurück.

Siehe auch „ toStdString()“ und „ QString::fromStdString()“.

char &QByteArray::front()

Gibt einen Verweis auf das erste Byte im Byte-Array zurück. Entspricht „ operator[](0) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion für ein leeres Byte-Array führt zu undefiniertem Verhalten.

Siehe auch „ back()“, „ at()“ und „ operator[]()“.

char QByteArray::front() const

Gibt das erste Byte des Byte-Arrays zurück. Entspricht „ at(0) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion für ein leeres Byte-Array führt zu undefiniertem Verhalten.

Siehe auch „ back()“, „ at()“ und „ operator[]()“.

[since 6.0] qsizetype QByteArray::indexOf(QByteArrayView bv, qsizetype from = 0) const

Gibt die Indexposition des Anfangs des ersten Vorkommens der von ` bv ` in diesem Byte-Array untersuchten Byte-Sequenz zurück, wobei die Suche ausgehend von der Indexposition ` from` vorwärts erfolgt. Gibt -1 zurück, wenn keine Übereinstimmung gefunden wird.

Beispiel:

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 -1

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch lastIndexOf(), contains() und count().

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

Gibt die Indexposition des Beginns des ersten Vorkommens des Byte- ch s in diesem Byte-Array zurück, wobei die Suche ausgehend von der Indexposition from vorwärts erfolgt. Gibt -1 zurück, wenn keine Übereinstimmung gefunden wird.

Beispiel:

QByteArray ba("ABCBA");
ba.indexOf("B");            // returns 1
ba.indexOf("B", 1);         // returns 1
ba.indexOf("B", 2);         // returns 3
ba.indexOf("X");            // returns -1

Dies ist eine überladene Funktion.

Siehe auch ` lastIndexOf()` und ` contains()`.

[since 6.0] QByteArray &QByteArray::insert(qsizetype i, QByteArrayView data)

Fügt an der Indexposition „ i “ den Wert „ data “ ein und gibt eine Referenz auf dieses Byte-Array zurück.

Beispiel:

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

Bei großen Byte-Arrays kann dieser Vorgang langsam sein (lineare Laufzeit), da alle Bytes an den Indizes i und darüber im Speicher um mindestens eine Position weiter verschoben werden müssen.

Das Array wird vergrößert, um die Einfügung aufzunehmen. Liegt i jenseits des Endes des Arrays, wird das Array zunächst mit Leerzeichen aufgefüllt, um diese Position i zu erreichen.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch append(), prepend(), replace() und remove().

QByteArray &QByteArray::insert(qsizetype i, const QByteArray &data)

Fügt „ data “ an der Indexposition „ i “ ein und gibt einen Verweis auf dieses Byte-Array zurück.

Dieses Array wird vergrößert, um die Einfügung aufzunehmen. Befindet sich „ i “ jenseits des Array-Endes, wird das Array zunächst mit Leerzeichen erweitert, um die Position „ i “ zu erreichen.

Siehe auch append(), prepend(), replace() und remove().

QByteArray &QByteArray::insert(qsizetype i, const char *s)

Fügt „ s “ an der Indexposition „ i “ ein und gibt eine Referenz auf dieses Byte-Array zurück.

Dieses Array wird vergrößert, um die Einfügung aufzunehmen. Liegt i jenseits des Array-Endes, wird das Array zunächst mit Leerzeichen aufgefüllt, um die Position i zu erreichen.

Die Funktion entspricht insert(i, QByteArrayView(s))

Siehe auch append(), prepend(), replace() und remove().

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

Fügt die Byte- ch an der Indexposition i in das Byte-Array ein.

Dieses Array wird vergrößert, um die Einfügung aufzunehmen. Liegt i jenseits des Array-Endes, wird das Array zunächst mit Leerzeichen aufgefüllt, um diese Position i zu erreichen.

Dies ist eine überladene Funktion.

QByteArray &QByteArray::insert(qsizetype i, const char *data, qsizetype len)

Fügt len Bytes, beginnend bei data, an der Position i in das Byte-Array ein.

Dieses Array wird vergrößert, um die Einfügung aufzunehmen. Liegt i jenseits des Endes des Arrays, wird das Array zunächst mit Leerzeichen erweitert, um diese i zu erreichen.

Dies ist eine überladene Funktion.

QByteArray &QByteArray::insert(qsizetype i, qsizetype count, char ch)

Fügt count Kopien des Byte- ch s an der Indexposition i in das Byte-Array ein.

Dieses Array wird vergrößert, um Platz für die Einfügung zu schaffen. Liegt i jenseits des Array-Endes, wird das Array zunächst mit Leerzeichen aufgefüllt, um diese i zu erreichen.

Dies ist eine überladene Funktion.

[constexpr noexcept] bool QByteArray::isEmpty() const

Gibt „ true “ zurück, wenn das Byte-Array die Größe 0 hat; andernfalls wird „ false “ zurückgegeben.

Beispiel:

QByteArray().isEmpty();         // returns true
QByteArray("").isEmpty();       // returns true
QByteArray("abc").isEmpty();    // returns false

Siehe auch ` size()`.

bool QByteArray::isLower() const

Gibt „ true “ zurück, wenn dieses Byte-Array aus Kleinbuchstaben besteht, d. h., wenn es mit der Faltung von „ toLower()“ identisch ist.

Beachten Sie, dass dies nicht bedeutet, dass das Byte-Array ausschließlich Kleinbuchstaben enthält, sondern lediglich, dass es keine ASCII-Großbuchstaben enthält.

Siehe auch isUpper() und toLower().

[noexcept] bool QByteArray::isNull() const

Gibt „ true “ zurück, wenn dieses Byte-Array null ist; andernfalls wird „ false “ zurückgegeben.

Beispiel:

QByteArray().isNull();          // returns true
QByteArray("").isNull();        // returns false
QByteArray("abc").isNull();     // returns false

Qt unterscheidet aus historischen Gründen zwischen Null-Byte-Arrays und leeren Byte-Arrays. Für die meisten Anwendungen ist es entscheidend, ob ein Byte-Array Daten enthält oder nicht, und dies lässt sich mit ` isEmpty()` feststellen.

Siehe auch ` isEmpty()`.

bool QByteArray::isUpper() const

Gibt „ true “ zurück, wenn dieses Byte-Array aus Großbuchstaben besteht, d. h., wenn es mit der Faltung von toUpper() identisch ist.

Beachten Sie, dass dies nicht bedeutet, dass das Byte-Array ausschließlich Großbuchstaben enthält, sondern lediglich, dass es keine ASCII-Kleinbuchstaben enthält.

Siehe auch ` isLower()` und ` toUpper()`.

[noexcept, since 6.3] bool QByteArray::isValidUtf8() const

Gibt „ true “ zurück, wenn dieses Byte-Array gültige, UTF-8-kodierte Daten enthält, andernfalls „ false “.

Diese Funktion wurde in Qt 6.3 eingeführt.

[since 6.0] QByteArray QByteArray::last(qsizetype n) &&

[since 6.0] QByteArray QByteArray::last(qsizetype n) const &

Gibt die letzten n Bytes des Byte-Arrays zurück.

Hinweis: Das Verhalten ist undefiniert, wenn „ n “ < 0 oder „ n “ > „ size( )“ ist.

Beispiel:

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

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch „ first()“, „ sliced()“, „ endsWith()“, „ chopped()“, „ chop()“, „ truncate()“ und „ slice()“.

[since 6.0] qsizetype QByteArray::lastIndexOf(QByteArrayView bv, qsizetype from) const

Gibt die Indexposition des Anfangs des letzten Vorkommens der von ` bv ` in diesem Byte-Array betrachteten Byte-Sequenz zurück, wobei rückwärts von der Indexposition ` from` gesucht wird.

Ist from gleich -1, beginnt die Suche am letzten Zeichen; ist es gleich -2, am vorletzten Zeichen und so weiter.

Gibt -1 zurück, wenn keine Übereinstimmung gefunden wird.

Beispiel:

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 -1

Hinweis: Bei der Suche nach einem „ bv “ der Länge 0 wird die Übereinstimmung am Ende der Daten durch einen negativen „ from “ von der Suche ausgeschlossen, obwohl „ -1 “ normalerweise so verstanden wird, dass vom Ende des Byte-Arrays aus gesucht wird: Die Übereinstimmung am Ende befindet sich hinter dem letzten Zeichen und wird daher ausgeschlossen. Um eine solche abschließende leere Übereinstimmung einzubeziehen, geben Sie entweder einen positiven Wert für „ from “ an oder lassen Sie den Parameter „ from “ ganz weg.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ indexOf()“, „ contains()“ und „ count()“.

[since 6.2] qsizetype QByteArray::lastIndexOf(QByteArrayView bv) const

Gibt die Indexposition des Anfangs des letzten Vorkommens der von „ bv “ in diesem Byte-Array untersuchten Byte-Sequenz zurück, wobei vom Ende des Byte-Arrays aus rückwärts gesucht wird. Gibt -1 zurück, wenn keine Übereinstimmung gefunden wird.

Beispiel:

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 -1

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.2 eingeführt.

Siehe auch „ indexOf()“, „ contains()“ und „ count()“.

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

Gibt die Indexposition des Anfangs des letzten Vorkommens der Byte- ch in diesem Byte-Array zurück, wobei die Suche rückwärts ab der Indexposition from erfolgt. Ist from gleich -1 (Standardwert), beginnt die Suche am letzten Byte (an der Indexposition size() - 1). Gibt -1 zurück, wenn keine Übereinstimmung gefunden wird.

Beispiel:

QByteArray ba("ABCBA");
ba.lastIndexOf("B");        // returns 3
ba.lastIndexOf("B", 3);     // returns 3
ba.lastIndexOf("B", 2);     // returns 1
ba.lastIndexOf("X");        // returns -1

Dies ist eine überladene Funktion.

Siehe auch „ indexOf()“ und „ contains()“.

QByteArray QByteArray::left(qsizetype len) &&

QByteArray QByteArray::left(qsizetype len) const &

Gibt ein Byte-Array zurück, das die ersten len Bytes dieses Byte-Arrays enthält.

Wenn Sie wissen, dass „ len “ nicht außerhalb des zulässigen Bereichs liegen kann, verwenden Sie in neuem Code stattdessen „ first()“, da dies schneller ist.

Das gesamte Byte-Array wird zurückgegeben, wenn ` len ` größer als ` size()` ist.

Gibt ein leeres ` QByteArray ` zurück, wenn ` len ` kleiner als 0 ist.

Siehe auch „ first()“, „ last()“, „ startsWith()“, „ chopped()“, „ chop()“ und „ truncate()“.

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

Gibt ein Byte-Array der Größe „ width “ zurück, das dieses Byte-Array enthält, aufgefüllt mit dem Byte „ fill “.

Ist truncate falsch und ist der Wert von size() des Byte-Arrays größer als width, so ist das zurückgegebene Byte-Array eine Kopie dieses Byte-Arrays.

Ist ` truncate ` wahr und ist ` size()` des Byte-Arrays größer als ` width`, werden alle Bytes in einer Kopie des Byte-Arrays ab der Position ` width ` entfernt und die Kopie zurückgegeben.

Beispiel:

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

Siehe auch ` rightJustified()`.

[constexpr noexcept] qsizetype QByteArray::length() const

Entspricht „ size()“.

[static constexpr noexcept, since 6.8] qsizetype QByteArray::maxSize()

[constexpr noexcept, since 6.8] qsizetype QByteArray::max_size() const

Sie gibt die maximale Anzahl an Elementen zurück, die das Byte-Array theoretisch aufnehmen kann. In der Praxis kann diese Zahl jedoch deutlich geringer ausfallen, da sie durch die dem System zur Verfügung stehende Speichermenge begrenzt ist.

Diese Funktionen wurden in Qt 6.8 eingeführt.

QByteArray QByteArray::mid(qsizetype pos, qsizetype len = -1) &&

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

Gibt ein Byte-Array zurück, das len Bytes aus diesem Byte-Array enthält, beginnend an der Position pos.

Wenn Sie wissen, dass „ pos “ und „ len “ nicht außerhalb des zulässigen Bereichs liegen können, verwenden Sie in neuem Code stattdessen „ sliced()“, da dies schneller ist.

Wenn ` len ` den Wert -1 (Standard) hat oder ` pos ` + ` len ` >= ` size` ist, gibt die Funktion ein Byte-Array zurück, das alle Bytes ab der Position ` pos ` bis zum Ende des Byte-Arrays enthält.

Siehe auch first(), last(), sliced(), chopped(), chop(), truncate() und slice().

[since 6.10] QByteArray &QByteArray::nullTerminate()

Wenn die Daten dieses Byte-Arrays nicht null-terminiert sind, erstellt diese Methode eine tiefe Kopie der Daten und versieht sie mit einem Null-Terminator.

Ein „ QByteArray “ ist standardmäßig null-terminiert; in einigen Fällen (z. B. bei Verwendung von ` fromRawData()`) enden die Daten jedoch nicht unbedingt mit einem „ \0 “-Zeichen, was beim Aufruf von Methoden, die eine null-terminierte Zeichenkette erwarten (z. B. C-API), zu Problemen führen kann.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch „ nullTerminated()“, „ fromRawData()“ und „ setRawData()“.

[since 6.10] QByteArray QByteArray::nullTerminated() &&

[since 6.10] QByteArray QByteArray::nullTerminated() const &

Gibt eine Kopie dieses Byte-Arrays zurück, die stets mit einem Null-Zeichen abgeschlossen ist. Siehe nullTerminate().

Diese Funktionen wurden in Qt 6.10 eingeführt.

Siehe auch nullTerminate(), fromRawData() und setRawData().

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

Gibt ein Byte-Array zurück, das die ganze Zahl „ n “ als Text darstellt.

Gibt ein Byte-Array zurück, das eine Zeichenkette enthält, die „ n “ darstellt, wobei die angegebene „ base “ (standardmäßig „ten“) verwendet wird. Die Basen 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden: A steht für zehn, B für elf und so weiter.

Beispiel:

int n = 63;
QByteArray::number(n);              // returns "63"
QByteArray::number(n, 16);          // returns "3f"
QByteArray::number(n, 16).toUpper();  // returns "3F"

Hinweis: Das Format der Zahl ist nicht lokalisiert; unabhängig von der Locale des Benutzers wird die Standard-C-Locale verwendet. Verwenden Sie ` QLocale `, um lokalisierungsabhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Siehe auch setNum() und toInt().

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

Dies ist eine überladene Funktion.

Siehe auch toLong().

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

Dies ist eine überladene Funktion.

Siehe auch toLongLong().

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

Dies ist eine überladene Funktion.

Siehe auch toULongLong().

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

Dies ist eine überladene Funktion.

Siehe auch toUInt().

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

Dies ist eine überladene Funktion.

Siehe auch toULong().

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

Gibt ein Byte-Array zurück, das die Gleitkommazahl n als Text darstellt.

Gibt ein Byte-Array zurück, das eine Zeichenkette enthält, die n darstellt, mit den angegebenen Parametern ` format ` und ` precision`, deren Bedeutung der von ` QLocale::toString` (double, char, int) entspricht. Beispiel:

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

Dies ist eine überladene Funktion.

Siehe auch toDouble() und QLocale::FloatingPointPrecisionOption.

[since 6.4] QByteArray QByteArray::percentDecoded(char percent = '%') const &

Dekodiert die Prozentkodierung im URI-/URL-Stil.

Gibt ein Byte-Array zurück, das den dekodierten Text enthält. Der Parameter „ percent “ ermöglicht die Verwendung eines anderen Zeichens als „%“ (z. B. „_“ oder „=“) als Escape-Zeichen.

Beispiel:

QByteArray encoded("Qt%20is%20great%33");
QByteArray decoded = encoded.percentDecoded(); // Set to "Qt is great!"

Hinweis: Bei ungültiger Eingabe (z. B. einer Zeichenkette, die die Sequenz „%G5“ enthält, die keine gültige Hexadezimalzahl ist) ist auch die Ausgabe ungültig. Beispiel: Die Sequenz „%G5“ könnte zu „W“ dekodiert werden.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch toPercentEncoding() und QUrl::fromPercentEncoding().

[since 6.11] QByteArray QByteArray::percentDecoded(char percent = '%') &&

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.11 eingeführt.

QByteArray &QByteArray::prepend(QByteArrayView ba)

Fügt die Byte-Array-Ansicht „ ba “ an dieses Byte-Array an und gibt eine Referenz auf dieses Byte-Array zurück.

Dieser Vorgang ist in der Regel sehr schnell (konstante Laufzeit), da „ QByteArray “ zusätzlichen Speicherplatz am Anfang der Daten vorab reserviert, sodass das Array erweitert werden kann, ohne dass jedes Mal das gesamte Array neu zugewiesen werden muss.

Beispiel:

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

Dies entspricht der Funktion `insert(0, ba)`.

Siehe auch ` append()` und ` insert()`.

QByteArray &QByteArray::prepend(char ch)

Fügt dem Byte-Array das Byte- ch, voran.

Dies ist eine überladene Funktion.

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

Fügt „ ba “ an den Anfang dieses Byte-Arrays an.

Dies ist eine überladene Funktion.

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

Fügt die mit „\0 “ abgeschlossene Zeichenkette „ str “ an den Anfang dieses Byte-Arrays ein.

Dies ist eine überladene Funktion.

QByteArray &QByteArray::prepend(const char *str, qsizetype len)

Fügt diesem Byte-Array len Bytes an, beginnend bei str. Die angefügten Bytes können „\0 “-Bytes enthalten.

Dies ist eine überladene Funktion.

QByteArray &QByteArray::prepend(qsizetype count, char ch)

Fügt diesem Byte-Array count Kopien des Byte- ch s vor.

Dies ist eine überladene Funktion.

void QByteArray::push_back(const QByteArray &other)

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion `append(other)`.

[since 6.0] void QByteArray::push_back(QByteArrayView str)

Entspricht append(str).

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

void QByteArray::push_back(char ch)

Entspricht append(ch).

Dies ist eine überladene Funktion.

void QByteArray::push_back(const char *str)

Entspricht append(str).

Dies ist eine überladene Funktion.

void QByteArray::push_front(const QByteArray &other)

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion „prepend(other)“.

[since 6.0] void QByteArray::push_front(QByteArrayView str)

Entspricht prepend(str).

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

void QByteArray::push_front(char ch)

Entspricht „prepend(ch)“.

Dies ist eine überladene Funktion.

void QByteArray::push_front(const char *str)

Entspricht „prepend(str)“.

Dies ist eine überladene Funktion.

QByteArray::reverse_iterator QByteArray::rbegin()

Gibt einen Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge auf das erste Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung des „ QByteArray “ ungültig.

Siehe auch „ begin()“, „ crbegin()“ und „ rend()“.

[noexcept] QByteArray::const_reverse_iterator QByteArray::rbegin() const

Dies ist eine überladene Funktion.

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

Entfernt len Bytes aus dem Array, beginnend bei der Indexposition pos, und gibt eine Referenz auf das Array zurück.

Liegt „ pos “ außerhalb des zulässigen Bereichs, geschieht nichts. Ist „ pos “ gültig, aber ist „ pos “ + „ len “ größer als die Größe des Arrays, wird das Array an der Position „ pos “ abgeschnitten.

Beispiel:

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

Beim Entfernen von Elementen bleibt die Kapazität des Arrays erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie ` squeeze()` nach der letzten Änderung der Array-Größe auf.

Siehe auch insert(), replace() und squeeze().

[since 6.5] QByteArray &QByteArray::removeAt(qsizetype pos)

Entfernt das Zeichen am Index pos. Liegt pos außerhalb des zulässigen Bereichs (d. h. pos >= size()), führt diese Funktion keine Aktion aus.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch remove().

[since 6.5] QByteArray &QByteArray::removeFirst()

Entfernt das erste Zeichen aus diesem Byte-Array. Ist das Byte-Array leer, führt diese Funktion keine Aktion aus.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch ` remove()`.

[since 6.1] template <typename Predicate> QByteArray &QByteArray::removeIf(Predicate pred)

Entfernt alle Bytes aus dem Byte-Array, für die das Prädikat „ pred “ den Wert „true“ zurückgibt. Gibt eine Referenz auf das Byte-Array zurück.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch ` remove()`.

[since 6.5] QByteArray &QByteArray::removeLast()

Entfernt das letzte Zeichen aus diesem Byte-Array. Ist das Byte-Array leer, führt diese Funktion keine Aktion aus.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch ` remove()`.

QByteArray::reverse_iterator QByteArray::rend()

Gibt einen Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge direkt auf das letzte Byte im Byte-Array zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung der „ QByteArray “ ungültig.

Siehe auch „ end()“, „ crend()“ und „ rbegin()“.

[noexcept] QByteArray::const_reverse_iterator QByteArray::rend() const

Dies ist eine überladene Funktion.

QByteArray QByteArray::repeated(qsizetype times) const

Gibt eine Kopie dieses Byte-Arrays zurück, die um die angegebene Anzahl von times wiederholt wird.

Ist times kleiner als 1, wird ein leeres Byte-Array zurückgegeben.

Beispiel:

QByteArray ba("ab");
ba.repeated(4);             // returns "abababab"

QByteArray &QByteArray::replace(qsizetype pos, qsizetype len, QByteArrayView after)

Ersetzt die ` len ` Bytes ab der Indexposition ` pos ` durch das Byte-Array ` after` und gibt eine Referenz auf dieses Byte-Array zurück.

Beispiel:

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

Siehe auch insert() und remove().

[since 6.0] QByteArray &QByteArray::replace(QByteArrayView before, QByteArrayView after)

Ersetzt jedes Vorkommen des Byte-Arrays „ before “ durch das Byte-Array „ after “.

Beispiel:

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

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Ersetzt jedes Vorkommen des Byte- before s durch das Byte-Array after.

Dies ist eine überladene Funktion.

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

Ersetzt jedes Vorkommen des Bytes „ before “ durch das Byte „ after “.

Dies ist eine überladene Funktion.

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

Ersetzt jedes Vorkommen der Bytes „ bsize “, beginnend bei „ before “, durch die Bytes „ asize “, beginnend bei „ after “. Da die Längen der Zeichenketten durch „ bsize “ und „ asize “ vorgegeben sind, dürfen sie die Bytes „'\0'“ enthalten und müssen nicht mit „'\0'“ abgeschlossen sein.

Dies ist eine überladene Funktion.

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

Ersetzt die Bytes „ len “ ab der Indexposition „ pos “ durch die Bytes „ alen “, beginnend an der Position „ after “. Die eingefügten Bytes können „'\0 “-Bytes enthalten.

Dies ist eine überladene Funktion.

void QByteArray::reserve(qsizetype size)

Versucht, Speicherplatz für mindestens size Bytes zuzuweisen.

Wenn Sie im Voraus wissen, wie groß das Byte-Array sein wird, können Sie diese Funktion aufrufen; wenn Sie resize() häufig aufrufen, erzielen Sie wahrscheinlich eine bessere Leistung.

Wenn Sie sich nicht sicher sind, wie viel Speicherplatz benötigt wird, ist es in der Regel besser, eine Obergrenze von ` size` zu verwenden oder eine hohe Schätzung der wahrscheinlichsten Größe, falls eine strenge Obergrenze deutlich darüber liegen würde. Ist ` size ` zu niedrig angesetzt, wird das Array bei Bedarf vergrößert, sobald die reservierte Größe überschritten wird. Dies kann zu einer größeren Speicherzuweisung führen, als es Ihre beste Überschätzung vorsähe, und den Vorgang, der dies auslöst, verlangsamen.

Warnung: reserve () reserviert Speicher, ändert jedoch nicht die Größe des Byte-Arrays. Der Zugriff auf Daten jenseits des Endes des Byte-Arrays führt zu undefiniertem Verhalten. Wenn Sie auf Speicher jenseits des aktuellen Endes des Arrays zugreifen müssen, verwenden Sie resize().

Der einzige Zweck dieser Funktion besteht darin, eine Möglichkeit zur Feinabstimmung der Speichernutzung von ` QByteArray` zu bieten. Im Allgemeinen wirst du diese Funktion so gut wie nie aufrufen müssen.

Siehe auch „ squeeze()“ und „ capacity()“.

void QByteArray::resize(qsizetype size)

Legt die Größe des Byte-Arrays auf size Bytes fest.

Ist „ size “ größer als die aktuelle Größe, wird das Byte-Array auf „ size “ Bytes erweitert, wobei die zusätzlichen Bytes am Ende angehängt werden. Die neuen Bytes sind nicht initialisiert.

Ist ` size ` kleiner als die aktuelle Größe, werden Bytes jenseits der Position ` size ` aus dem Byte-Array entfernt.

Hinweis: resize() vergrößertzwar bei Bedarf die Kapazität, verringert sie jedoch niemals. Um überschüssige Kapazität abzubauen, verwenden Sie squeeze().

Siehe auch ` size()`, ` truncate()` und ` squeeze()`.

[since 6.4] void QByteArray::resize(qsizetype newSize, char c)

Legt die Größe des Byte-Arrays auf newSize Bytes fest.

Ist „ newSize “ größer als die aktuelle Größe, wird das Byte-Array auf „ newSize “ Bytes erweitert, wobei die zusätzlichen Bytes am Ende angehängt werden. Die neuen Bytes werden auf „ c “ initialisiert.

Ist ` newSize ` kleiner als die aktuelle Größe, werden Bytes jenseits der Position ` newSize ` aus dem Byte-Array entfernt.

Hinweis: resize() vergrößertzwar bei Bedarf die Kapazität, verkleinert sie jedoch niemals. Um überschüssige Kapazität abzubauen, verwenden Sie squeeze().

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch „ size()“, „ truncate()“ und „ squeeze()“.

[since 6.8] void QByteArray::resizeForOverwrite(qsizetype size)

Passen Sie die Größe des Byte-Arrays auf size Bytes an. Wenn die Größe des Byte-Arrays zunimmt, sind die neuen Bytes nicht initialisiert.

Das Verhalten entspricht dem von ` resize(size)`.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch ` resize()`.

QByteArray QByteArray::right(qsizetype len) const &

Gibt ein Byte-Array zurück, das die letzten len Bytes dieses Byte-Arrays enthält.

Wenn Sie wissen, dass „ len “ nicht außerhalb des zulässigen Bereichs liegen kann, verwenden Sie in neuem Code stattdessen „ last()“, da dies schneller ist.

Das gesamte Byte-Array wird zurückgegeben, wenn ` len ` größer als ` size()` ist.

Gibt ein leeres ` QByteArray ` zurück, wenn ` len ` kleiner als 0 ist.

Siehe auch „ endsWith()“, „ last()“, „ first()“, „ sliced()“, „ chopped()“, „ chop()“, „ truncate()“ und „ slice()“.

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

Gibt ein Byte-Array der Größe width zurück, das das Byte „ fill “ gefolgt von diesem Byte-Array enthält.

Ist truncate falsch und ist die Größe des Byte-Arrays größer als width, so ist das zurückgegebene Byte-Array eine Kopie dieses Byte-Arrays.

Ist ` truncate ` wahr und ist die Größe des Byte-Arrays größer als ` width`, wird das resultierende Byte-Array an der Position ` width` abgeschnitten.

Beispiel:

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

Siehe auch ` leftJustified()`.

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

Gibt die Ganzzahl n als Text wieder.

Setzt dieses Byte-Array auf eine Zeichenkette, die n in der Basis base (standardmäßig 10) darstellt, und gibt eine Referenz auf dieses Byte-Array zurück. Die Basen 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden; A steht für 10, B für 11 und so weiter.

Beispiel:

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

Hinweis: Das Format der Zahl ist nicht lokalisiert; unabhängig von der Locale des Benutzers wird die Standard-C-Locale verwendet. Verwenden Sie „ QLocale “, um lokalisierungsabhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Siehe auch ` number()` und ` toInt()`.

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

Dies ist eine überladene Funktion.

Siehe auch ` toLong()`.

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

Dies ist eine überladene Funktion.

Siehe auch toLongLong().

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

Dies ist eine überladene Funktion.

Siehe auch toULongLong().

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

Dies ist eine überladene Funktion.

Siehe auch toShort().

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

Dies ist eine überladene Funktion.

Siehe auch toUInt().

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

Dies ist eine überladene Funktion.

Siehe auch ` toULong()`.

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

Dies ist eine überladene Funktion.

Siehe auch toUShort().

QByteArray &QByteArray::setNum(double n, char format = 'g', int precision = 6)

Stellt die Gleitkommazahl n als Text dar.

Setzt dieses Byte-Array auf eine Zeichenkette, die n darstellt, wobei format und precision vorgegeben sind (mit derselben Bedeutung wie bei QLocale::toString(double, char, int)), und gibt eine Referenz auf dieses Byte-Array zurück.

Dies ist eine überladene Funktion.

Siehe auch toDouble() und QLocale::FloatingPointPrecisionOption.

QByteArray &QByteArray::setNum(float n, char format = 'g', int precision = 6)

Stellt die Gleitkommazahl n als Text dar.

Setzt dieses Byte-Array auf eine Zeichenkette, die n darstellt, wobei format und precision vorgegeben sind (mit derselben Bedeutung wie bei QLocale::toString(double, char, int)), und gibt eine Referenz auf dieses Byte-Array zurück.

Dies ist eine überladene Funktion.

Siehe auch toFloat() und QLocale::FloatingPointPrecisionOption.

QByteArray &QByteArray::setRawData(const char *data, qsizetype size)

Setzt das ` QByteArray ` so zurück, dass es die ersten ` size ` Bytes des Arrays ` data ` verwendet. Die Bytes werden nicht kopiert. Die Variable ` QByteArray ` enthält den Zeiger ` data `. Der Aufrufer garantiert, dass ` data ` nicht gelöscht oder verändert wird, solange dieses ` QByteArray ` und alle unveränderten Kopien davon existieren.

Diese Funktion kann anstelle von ` fromRawData()` verwendet werden, um vorhandene ` QByteArray `-Objekte wiederzuverwenden und so Speicherneuzuweisungen zu vermeiden.

Siehe auch fromRawData(), data(), constData(), nullTerminate() und nullTerminated().

void QByteArray::shrink_to_fit()

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion „ squeeze()“.

QByteArray QByteArray::simplified() const

Gibt eine Kopie dieses Byte-Arrays zurück, bei der die Leerzeichen am Anfang und am Ende entfernt wurden und in der jede Folge interner Leerzeichen durch ein einzelnes Leerzeichen ersetzt wurde.

Bei den Leerzeichen handelt es sich um diejenigen, für die die Standard-C++-Funktion ` isspace() ` in der C-Locale den Wert ` true ` zurückgibt; dies sind die ASCII-Zeichen Tabulator „\t “, Zeilenvorschub „\n “, Wagenrücklauf „\r “, vertikaler Tabulator „\v “, Seitenvorschub „\f “ und Leerzeichen „ “.

Beispiel:

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

Siehe auch trimmed(), QChar::SpecialCharacter und Spacing Characters.

[constexpr noexcept] qsizetype QByteArray::size() const

Gibt die Anzahl der Bytes in diesem Byte-Array zurück.

Das letzte Byte im Byte-Array befindet sich an der Position size() - 1. Darüber hinaus stellt „ QByteArray “ sicher, dass das Byte an der Position size() immer „'\0'“ ist, sodass Sie den Rückgabewert von „ data()“ und „ constData()“ als Argumente für Funktionen verwenden können, die mit „'\0'“ abgeschlossene Zeichenketten erwarten. Wenn das Objekt ` QByteArray ` aus einem ` raw data ` erstellt wurde, das das abschließende Byte „\0 “ nicht enthielt, fügt ` QByteArray ` dieses nicht automatisch hinzu, es sei denn, es wird eine tiefe Kopie erstellt.

Beispiel:

QByteArray ba("Hello");
qsizetype n = ba.size();    // n == 5
ba.data()[0];               // returns 'H'
ba.data()[4];               // returns 'o'
ba.data()[5];               // returns '\0'

Siehe auch isEmpty() und resize().

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos, qsizetype n)

Ändert dieses Byte-Array so, dass es an der Position pos beginnt und sich über n Bytes erstreckt, und gibt eine Referenz auf dieses Byte-Array zurück.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0, n < 0 oder pos + n > size().

Beispiel:

QByteArray x = "Five pineapples"_ba;
x.slice(5);     // x == "pineapples"
x.slice(4, 3);  // x == "app"

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch sliced(), first(), last(), chopped(), chop() und truncate().

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos)

Ändert dieses Byte-Array so, dass es an der Position pos beginnt und sich bis zu seinem Ende erstreckt, und gibt eine Referenz auf dieses Byte-Array zurück.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0 oder pos > size().

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch ` sliced()`, ` first()`, ` last()`, ` chopped()`, ` chop()` und ` truncate()`.

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) &&

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) const &

Gibt ein Byte-Array zurück, das die ` n ` Bytes dieses Objekts enthält, beginnend an der Position ` pos`.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0, n < 0 oder pos + n > size().

Beispiel:

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

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch first(), last(), chopped(), chop(), truncate() und slice().

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) &&

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) const &

Gibt ein Byte-Array zurück, das die Bytes enthält, die bei der Position pos in diesem Objekt beginnen und sich bis zum Ende dieses Objekts erstrecken.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0 oder pos > size().

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch first(), last(), chopped(), chop(), truncate() und slice().

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

Teilt das Byte-Array an allen Stellen, an denen sep vorkommt, in Teilarrays auf und gibt die Liste dieser Arrays zurück. Wenn sep an keiner Stelle im Byte-Array vorkommt, gibt split() eine Liste mit einem einzigen Element zurück, die dieses Byte-Array enthält.

void QByteArray::squeeze()

Gibt den Speicher frei, der nicht zur Speicherung der Daten des Arrays benötigt wird.

Der einzige Zweck dieser Funktion besteht darin, eine Möglichkeit zur Feinabstimmung der Speichernutzung von QByteArray bereitzustellen. Im Allgemeinen werden Sie diese Funktion so gut wie nie aufrufen müssen.

Siehe auch „ reserve()“ und „ capacity()“.

[since 6.0] bool QByteArray::startsWith(QByteArrayView bv) const

Gibt „ true “ zurück, wenn dieses Byte-Array mit der von „ bv “ ermittelten Byte-Sequenz beginnt; andernfalls wird „ false “ zurückgegeben.

Beispiel:

QByteArray url("ftp://ftp.qt-project.org/");
if (url.startsWith("ftp:"))
    {/*...*/}

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch endsWith() und first().

bool QByteArray::startsWith(char ch) const

Gibt „ true “ zurück, wenn dieses Byte-Array mit dem Byte- ch beginnt; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

[noexcept] void QByteArray::swap(QByteArray &other)

Tauscht dieses Byte-Array mit „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

QByteArray QByteArray::toBase64(QByteArray::Base64Options options = Base64Encoding) const

Gibt eine Kopie des Byte-Arrays zurück, das unter Verwendung der Optionen „ options “ kodiert wurde.

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"

Der zur Kodierung von Base64-kodierten Daten verwendete Algorithmus ist in RFC 4648 definiert.

Siehe auch ` fromBase64()`.

CFDataRef QByteArray::toCFData() const

Erstellt ein CFData-Objekt aus einem „ QByteArray “.

Der Aufrufer ist Eigentümer des CFData-Objekts und für dessen Freigabe verantwortlich.

Siehe auch „ toRawCFData()“, „ fromCFData()“, „ fromRawCFData()“ und „ fromRawData()“.

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

Gibt das in einen „ double “-Wert konvertierte Byte-Array zurück.

Gibt „unendlich“ zurück, wenn es bei der Konvertierung zu einem Überlauf kommt, oder 0,0, wenn die Konvertierung aus anderen Gründen fehlschlägt (z. B. Unterlauf).

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

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 == false

Warnung: Der Inhalt von ` QByteArray ` darf nur gültige numerische Zeichen enthalten, darunter das Plus-/Minuszeichen, das Zeichen `e` in der wissenschaftlichen Schreibweise und den Dezimalpunkt. Die Einbeziehung der Einheit oder zusätzlicher Zeichen führt zu einem Konvertierungsfehler.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Siehe auch ` number()`.

[since 6.5] emscripten::val QByteArray::toEcmaUint8Array()

Erstellt ein `Uint8Array` aus einem ` QByteArray`.

Diese Funktion überträgt Daten aus dem Heap-Speicher eines ` QByteArray ` in einen JavaScript-Datenpuffer. Die Funktion reserviert Speicherplatz in einem `ArrayBuffer`, kopiert die Daten dorthin und gibt eine `Uint8Array`-Ansicht auf diesen Puffer zurück.

Die JavaScript-Objekte besitzen eine Kopie der Daten, und dieser ` QByteArray ` kann nach der Erstellung der Kopie sicher gelöscht werden.

QByteArray byteArray = "test";
emscripten::val uint8array = byteArray.toEcmaUint8Array();

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch ` fromEcmaUint8Array()`.

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

Gibt das in einen Wert vom Typ „ float “ konvertierte Byte-Array zurück.

Gibt „unendlich“ zurück, wenn bei der Konvertierung ein Überlauf auftritt, oder 0,0, wenn die Konvertierung aus anderen Gründen (z. B. Unterlauf) fehlschlägt.

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

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 == false

Warnung: Der Inhalt von „ QByteArray “ darf nur gültige numerische Zeichen enthalten, darunter das Plus- und Minuszeichen, das Zeichen „e“ in der wissenschaftlichen Schreibweise und den Dezimalpunkt. Die Einbeziehung der Einheit oder zusätzlicher Zeichen führt zu einem Konvertierungsfehler.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Siehe auch ` number()`.

QByteArray QByteArray::toHex(char separator = '\0') const

Gibt eine hexadezimal kodierte Kopie des Byte-Arrays zurück.

Die Hex-Kodierung verwendet die Ziffern 0–9 und die Buchstaben a–f.

Wenn „ separator “ nicht „\0 “ ist, wird das Trennzeichen zwischen den Hex-Bytes eingefügt.

Beispiel:

QByteArray macAddress = QByteArray::fromHex("123456abcdef");
macAddress.toHex(':'); // returns "12:34:56:ab:cd:ef"
macAddress.toHex(0);   // returns "123456abcdef"

Siehe auch fromHex().

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in ein „ int “ konvertiert wurde; standardmäßig ist dies die Basis 10. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden; A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird davon ausgegangen, dass es hexadezimal ist (Basis 16); ansonsten wird bei Beginn mit „0b“ angenommen, dass es sich um Binärzahlen (Basis 2) handelt; ansonsten wird bei Beginn mit „0“ angenommen, dass es sich um Oktalzahlen (Basis 8) handelt; andernfalls wird angenommen, dass es sich um Dezimalzahlen handelt.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist „ ok “ nicht auf „ nullptr “ gesetzt, wird ein Fehler durch Setzen von *ok auf „ false “ gemeldet, und ein Erfolg durch Setzen von *ok auf „ true “.

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

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in einen „ long “-Ganzzahlwert konvertiert wurde; die Standardbasis ist 10. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden: A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird davon ausgegangen, dass es hexadezimal (Basis 16) ist; ansonsten wird bei Beginn mit „0b“ davon ausgegangen, dass es sich um Binärzahlen (Basis 2) handelt; ansonsten wird bei Beginn mit „0“ davon ausgegangen, dass es sich um Oktalzahlen (Basis 8) handelt; andernfalls wird von Dezimalzahlen ausgegangen.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist ` ok ` nicht ` nullptr`, wird ein Fehler gemeldet, indem *`ok ` auf ` false` gesetzt wird, und ein Erfolg, indem *`ok ` auf ` true` gesetzt wird.

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

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie „ QLocale “, um Locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in ein „ long long “ konvertiert wurde; die Standardbasis ist 10. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden; A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird davon ausgegangen, dass es hexadezimal ist (Basis 16); ansonsten wird bei Beginn mit „0b“ davon ausgegangen, dass es sich um Binärzahlen (Basis 2) handelt; ansonsten wird bei Beginn mit „0“ davon ausgegangen, dass es sich um Oktalzahlen (Basis 8) handelt; andernfalls wird davon ausgegangen, dass es sich um Dezimalzahlen handelt.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist ` ok ` nicht ` nullptr`, wird ein Fehler gemeldet, indem *`ok ` auf ` false` gesetzt wird, und ein Erfolg, indem *`ok ` auf ` true` gesetzt wird.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

QByteArray QByteArray::toLower() const

Gibt eine Kopie des Byte-Arrays zurück, in der jeder ASCII-Großbuchstabe in einen Kleinbuchstaben umgewandelt wurde.

Beispiel:

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toLower();
// y == "qt by the qt company"

Siehe auch isLower(), toUpper() und Character Case.

NSData *QByteArray::toNSData() const

Erstellt ein NSData-Objekt aus einem „ QByteArray “.

Das NSData-Objekt wird automatisch freigegeben.

Siehe auch „ fromNSData()“, „ fromRawNSData()“, „ fromRawData()“ und „ toRawNSData()“.

QByteArray QByteArray::toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const

Gibt eine prozentkodierte Kopie dieses Byte-Arrays im URI-/URL-Format zurück. Mit dem Parameter „ percent “ können Sie das Standardzeichen „%“ durch ein anderes überschreiben.

Standardmäßig kodiert diese Funktion alle Bytes, die nicht zu den folgenden gehören:

ALPHA („a“ bis „z“ und „A“ bis „Z“) / ZIFFERN (0 bis 9) / „-“ / „.“ / „_“ / „~“

Um zu verhindern, dass Bytes kodiert werden, übergeben Sie sie an „ exclude “. Um die Kodierung von Bytes zu erzwingen, übergeben Sie sie an „ include “. Das Zeichen „ percent “ wird immer kodiert.

Beispiel:

QByteArray text = "{eine verdächtige Zeichenfolge?}";
QByteArray ba = text.toPercentEncoding("{}", "s");
qDebug("%s", ba.constData());
// gibt „{a fi%73hy %73tring%3F}“ aus

Die Hex-Kodierung verwendet die Ziffern 0–9 und die Großbuchstaben A–F.

Siehe auch fromPercentEncoding() und QUrl::toPercentEncoding().

CFDataRef QByteArray::toRawCFData() const

Erstellt ein CFData-Objekt, das die Bytes von „ QByteArray “ verwendet.

Die Bytes des ` QByteArray` werden nicht kopiert.

Der Aufrufer garantiert, dass das ` QByteArray ` nicht gelöscht oder geändert wird, solange dieses `CFData`-Objekt existiert.

Siehe auch „ toCFData()“, „ fromRawCFData()“, „ fromCFData()“ und „ fromRawData()“.

NSData *QByteArray::toRawNSData() const

Erstellt ein NSData-Objekt, das die Bytes von „ QByteArray “ verwendet.

Die Bytes des ` QByteArray` werden nicht kopiert.

Der Aufrufer garantiert, dass das ` QByteArray ` nicht gelöscht oder verändert wird, solange dieses `NSData`-Objekt existiert.

Siehe auch fromRawNSData(), fromNSData(), fromRawData() und toNSData().

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in ein short konvertiert wurde; die Standardbasis ist 10. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden; A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird davon ausgegangen, dass es hexadezimal ist (Basis 16); ansonsten wird bei Beginn mit „0b“ davon ausgegangen, dass es sich um Binärzahlen (Basis 2) handelt; andernfalls wird bei Beginn mit „0“ davon ausgegangen, dass es sich um Oktalzahlen (Basis 8) handelt; andernfalls wird davon ausgegangen, dass es sich um Dezimalzahlen handelt.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist ` ok ` nicht ` nullptr`, wird ein Fehler gemeldet, indem *`ok ` auf ` false` gesetzt wird, und ein Erfolg, indem *`ok ` auf ` true` gesetzt wird.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

std::string QByteArray::toStdString() const

Gibt ein std::string-Objekt zurück, das die in diesem „ QByteArray “ enthaltenen Daten enthält.

Dieser Operator ist vor allem nützlich, um ein ` QByteArray ` an eine Funktion zu übergeben, die ein `std::string`-Objekt akzeptiert.

Siehe auch ` fromStdString()` und ` QString::toStdString()`.

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in ein „ unsigned int “ konvertiert wurde; standardmäßig ist dies die Basis 10. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden: A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird davon ausgegangen, dass es hexadezimal (Basis 16) ist; ansonsten wird bei Beginn mit „0b“ davon ausgegangen, dass es sich um Binärzahlen (Basis 2) handelt; andernfalls wird bei Beginn mit „0“ davon ausgegangen, dass es sich um Oktalzahlen (Basis 8) handelt; andernfalls wird davon ausgegangen, dass es sich um Dezimalzahlen handelt.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist ` ok ` nicht ` nullptr`, wird ein Fehler gemeldet, indem *`ok ` auf ` false` gesetzt wird, und ein Erfolg, indem *`ok ` auf ` true` gesetzt wird.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in ein „ unsigned long int “ konvertiert wurde, wobei die Standardbasis 10 ist. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden; A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird davon ausgegangen, dass es hexadezimal (Basis 16) ist; ansonsten wird bei Beginn mit „0b“ davon ausgegangen, dass es sich um binäre Zahlen (Basis 2) handelt; ansonsten wird bei Beginn mit „0“ davon ausgegangen, dass es sich um oktale Zahlen (Basis 8) handelt; andernfalls wird davon ausgegangen, dass es sich um dezimale Zahlen handelt.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist ` ok ` nicht ` nullptr`, wird ein Fehler gemeldet, indem *`ok ` auf ` false` gesetzt wird, und ein Erfolg, indem *`ok ` auf ` true` gesetzt wird.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in ein unsigned long long konvertiert wurde; standardmäßig ist dies 10. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden; A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird es als hexadezimal (Basis 16) angesehen; ansonsten wird bei Beginn mit „0b“ davon ausgegangen, dass es sich um Binärzahlen (Basis 2) handelt; ansonsten wird bei Beginn mit „0“ davon ausgegangen, dass es sich um Oktalzahlen (Basis 8) handelt; andernfalls wird davon ausgegangen, dass es sich um Dezimalzahlen handelt.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist ` ok ` nicht ` nullptr`, wird ein Fehler gemeldet, indem *`ok ` auf ` false` gesetzt wird, und ein Erfolg, indem *`ok ` auf ` true` gesetzt wird.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie ` QLocale `, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

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

Gibt das Byte-Array zurück, das unter Verwendung der Basis base in ein „ unsigned short “ konvertiert wurde; die Standardbasis ist 10. Die Basen 0 sowie 2 bis 36 werden unterstützt, wobei für Ziffern über 9 Buchstaben verwendet werden; A steht für 10, B für 11 und so weiter.

Ist ` base ` gleich 0, wird die Basis automatisch anhand der folgenden Regeln ermittelt: Beginnt das Byte-Array mit „0x“, wird davon ausgegangen, dass es hexadezimal (Basis 16) ist; ansonsten wird bei Beginn mit „0b“ davon ausgegangen, dass es sich um Binärzahlen (Basis 2) handelt; andernfalls wird bei Beginn mit „0“ davon ausgegangen, dass es sich um Oktalzahlen (Basis 8) handelt; andernfalls wird davon ausgegangen, dass es sich um Dezimalzahlen handelt.

Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist ` ok ` nicht ` nullptr`, wird ein Fehler gemeldet, indem *`ok ` auf ` false` gesetzt wird, und ein Erfolg, indem *`ok ` auf ` true` gesetzt wird.

Hinweis: Die Konvertierung der Zahl erfolgt in der Standard-C-Locale, unabhängig von der Locale des Benutzers. Verwenden Sie „ QLocale “, um locale-abhängige Konvertierungen zwischen Zahlen und Zeichenketten durchzuführen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number().

QByteArray QByteArray::toUpper() const

Gibt eine Kopie des Byte-Arrays zurück, in der jeder kleine ASCII-Buchstabe in einen Großbuchstaben umgewandelt wurde.

Beispiel:

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toUpper();
// y == "QT BY THE QT COMPANY"

Siehe auch isUpper(), toLower() und Character Case.

QByteArray QByteArray::trimmed() const

Gibt eine Kopie dieses Byte-Arrays zurück, bei der Leerzeichen am Anfang und am Ende entfernt wurden.

Bei den Leerzeichen handelt es sich um diejenigen, für die die Standard-C++-Funktion ` isspace() ` in der C-Locale den Wert ` true ` zurückgibt; dies sind die ASCII-Zeichen Tabulator `'\t'`, Zeilenvorschub `'\n'`, Wagenrücklauf `'\r'`, vertikaler Tabulator `'\v'`, Seitenvorschub `'\f'` und Leerzeichen `' '`.

Beispiel:

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

Im Gegensatz zu ` simplified()` belässt `trimmed()` interne Leerzeichen unverändert.

Siehe auch „ simplified()“, „ QChar::SpecialCharacter “ und „ Spacing Characters “.

void QByteArray::truncate(qsizetype pos)

Kürzt das Byte-Array an der Indexposition pos ab.

Liegt pos außerhalb des Array-Endes, geschieht nichts.

Beispiel:

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

Siehe auch chop(), resize() und first().

QByteArray::operator const char *() const

QByteArray::operator const void *() const

Hinweis: Verwenden Sie in neuem Code stattdessen constData().

Gibt einen Zeiger auf die im Byte-Array gespeicherten Daten zurück. Der Zeiger kann verwendet werden, um auf die Bytes zuzugreifen, aus denen das Array besteht. Die Daten werden durch „\0 “ abgeschlossen.

Der Zeiger bleibt gültig, solange keine Trennung erfolgt und der „ QByteArray “ nicht verändert wird.

Dieser Operator ist vor allem nützlich, um ein Byte-Array an eine Funktion zu übergeben, die ein ` const char *` akzeptiert.

Sie können diesen Operator deaktivieren, indem Sie bei der Kompilierung Ihrer Anwendungen „ QT_NO_CAST_FROM_BYTEARRAY “ definieren.

Hinweis: Ein ` QByteArray ` kann beliebige Byte-Werte speichern, einschließlich `'\0`s, aber die meisten Funktionen, die ` char * `-Argumente entgegennehmen, gehen davon aus, dass die Daten am ersten `'\0` enden, auf das sie stoßen.

Siehe auch ` constData()`.

[noexcept, since 6.10] QByteArray::operator std::string_view() const

Wandelt dieses „ QByteArray “-Objekt in ein „ std::string_view “-Objekt um. Die zurückgegebene String-Ansicht erstreckt sich über das gesamte Byte-Array.

Diese Funktion wurde in Qt 6.10 eingeführt.

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

Fügt das Byte-Array „ ba “ an das Ende dieses Byte-Arrays an und gibt eine Referenz auf dieses Byte-Array zurück.

Beispiel:

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

Hinweis: „ QByteArray “ ist eine implizit gemeinsam genutzte Klasse. Wenn Sie also an ein leeres Byte-Array anhängen, nutzt dieses Byte-Array lediglich die in „ ba “ enthaltenen Daten. In diesem Fall erfolgt kein Kopieren der Daten, was konstante Zeit in Anspruch nimmt. Wird eine gemeinsam genutzte Instanz geändert, wird sie kopiert (Copy-on-Write), was lineare Zeit in Anspruch nimmt.

Ist das Byte-Array, an das angehängt wird, nicht leer, wird eine tiefe Kopie der Daten erstellt, was lineare Zeit in Anspruch nimmt.

Dieser Vorgang verursacht in der Regel keinen Zuweisungsaufwand, da ` QByteArray ` am Ende der Daten zusätzlichen Speicherplatz vorab zuweist, sodass das Array ohne erneute Zuweisung bei jedem Anhängen vergrößert werden kann.

Siehe auch ` append()` und ` prepend()`.

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

Fügt das Byte- ch s an das Ende dieses Byte-Arrays an und gibt eine Referenz auf dieses Byte-Array zurück.

Dies ist eine überladene Funktion.

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

Fügt die durch „\0 “ begrenzte Zeichenkette „ str “ an das Ende dieses Byte-Arrays an und gibt eine Referenz auf dieses Byte-Array zurück.

Dies ist eine überladene Funktion.

[noexcept] QByteArray &QByteArray::operator=(QByteArray &&other)

Weist „ other “ dieser „ QByteArray “-Instanz zu.

[noexcept] QByteArray &QByteArray::operator=(const QByteArray &other)

Weist diesem Byte-Array den Wert „ other “ zu und gibt eine Referenz auf dieses Byte-Array zurück.

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

Weist diesem Byte-Array den Wert „ str “ zu.

str Es wird davon ausgegangen, dass „is“ auf eine null-terminierte Zeichenkette zeigt, deren Länge dynamisch ermittelt wird.

Dies ist eine überladene Funktion.

char &QByteArray::operator[](qsizetype i)

Gibt das Byte an der Indexposition „ i “ als bearbeitbare Referenz zurück.

i muss eine gültige Indexposition im Byte-Array sein (d. h. 0 <= i < size()).

Beispiel:

QByteArray ba("Hello, world");
cout << ba[0]; // prints H
ba[7] = 'W';
// ba == "Hello, World"

Siehe auch ` at()`.

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

Genau wie unter (i).

Dies ist eine überladene Funktion.

Verwandte Nicht-Mitglieder

[since 6.1] template <typename T> qsizetype erase(QByteArray &ba, const T &t)

Entfernt alle Elemente aus dem Byte-Array „ ba “, die mit „ t “ übereinstimmen. Gibt die Anzahl der entfernten Elemente zurück, sofern vorhanden.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch erase_if.

[since 6.1] template <typename Predicate> qsizetype erase_if(QByteArray &ba, Predicate pred)

Entfernt alle Elemente aus dem Byte-Array „ ba “, für die das Prädikat „ pred “ den Wert „true“ zurückgibt. Gibt die Anzahl der entfernten Elemente zurück, sofern vorhanden.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch ` erase`.

quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)

Gibt die CRC-16-Prüfsumme von data zurück.

Die Prüfsumme ist unabhängig von der Byte-Reihenfolge (Endianness) und wird gemäß dem unter standard veröffentlichten Algorithmus berechnet. Standardmäßig wird der in ISO 3309 (Qt::ChecksumIso3309) veröffentlichte Algorithmus verwendet.

Hinweis: Diese Funktion ist eine 16-Bit-Implementierung des CRC-16-CCITT-Algorithmus mit Cache-Unterstützung (Tabelle mit 16 Einträgen).

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

Komprimiert das Byte-Array „ data “ und gibt die komprimierten Daten in einem neuen Byte-Array zurück.

Der Parameter ` compressionLevel ` gibt an, wie stark komprimiert werden soll. Gültige Werte liegen zwischen 0 und 9, wobei 9 der stärksten Komprimierung entspricht (d. h. kleinere komprimierte Daten), was jedoch auf Kosten eines langsameren Algorithmus geht. Kleinere Werte (8, 7, …, 1) bieten zunehmend geringere Komprimierung bei etwas höheren Geschwindigkeiten. Der Wert 0 entspricht keiner Komprimierung. Der Standardwert ist -1, was die Standardkomprimierung von zlib angibt.

Siehe auch ` qUncompress` (const QByteArray &data).

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

Komprimiert die ersten nbytes von data mit der Komprimierungsstufe compressionLevel und gibt die komprimierten Daten in einem neuen Byte-Array zurück.

Dies ist eine überladene Funktion.

QByteArray qUncompress(const QByteArray &data)

Entpackt das Byte-Array „ data “ und gibt ein neues Byte-Array mit den entpackten Daten zurück.

Gibt ein leeres ` QByteArray ` zurück, wenn die Eingabedaten beschädigt waren.

Diese Funktion dekomprimiert Daten, die mit ` qCompress()` aus dieser und allen früheren Qt-Versionen komprimiert wurden, bis zurück zu Qt 3.1, als diese Funktion hinzugefügt wurde.

Hinweis: Wenn Sie diese Funktion zum Dekomprimieren externer Daten verwenden möchten, die mit zlib komprimiert wurden, müssen Sie dem Byte-Array, das die Daten enthält, zunächst einen vier Byte langen Header voranstellen. Der Header muss die erwartete Länge (in Bytes) der unkomprimierten Daten enthalten, ausgedrückt als vorzeichenlose 32-Bit-Ganzzahl im Big-Endian-Format. Diese Zahl dient jedoch lediglich als Anhaltspunkt für die anfängliche Größe des Ausgabepuffers. Ist die angegebene Größe zu klein, um das Ergebnis aufzunehmen, wird die Größe des Ausgabepuffers dennoch so lange erhöht, bis entweder die Ausgabe hineinpasst oder dem System der Speicher ausgeht. Trotz des 32-Bit-Headers kann diese Funktion auf 64-Bit-Plattformen also mehr als 4 GiB an Ausgabe erzeugen.

Hinweis: In Qt-Versionen vor Qt 6.5 funktionierte die Verarbeitung von mehr als 2 GiB Daten unzuverlässig; in Qt-Versionen vor Qt 6.0 war dies überhaupt nicht möglich.

Siehe auch ` qCompress()`.

QByteArray qUncompress(const uchar *data, qsizetype nbytes)

Entpackt die ersten nbytes von data und gibt ein neues Byte-Array mit den entpackten Daten zurück.

Dies ist eine überladene Funktion.

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

Eine sichere „ strcmp() “-Funktion.

Vergleicht „ str1 “ und „ str2 “. Gibt einen negativen Wert zurück, wenn „ str1 “ kleiner ist als „ str2 “, 0, wenn „ str1 “ gleich „ str2 “ ist, oder einen positiven Wert, wenn „ str1 “ größer ist als „ str2 “.

Sind beide Zeichenfolgen nullptr, gelten sie als gleich; andernfalls wird, wenn eine der beiden Zeichenfolgen nullptr ist, diese als kleiner als die andere behandelt (auch wenn die andere eine leere Zeichenfolge ist).

Siehe auch qstrncmp(), qstricmp(), qstrnicmp(), Character Case und QByteArray::compare().

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

Kopiert alle Zeichen bis einschließlich „\0 “ von src in dst und gibt einen Zeiger auf dst zurück. Ist src gleich nullptr, wird sofort nullptr zurückgegeben.

Diese Funktion setzt voraus, dass dst groß genug ist, um den Inhalt von src aufzunehmen.

Hinweis: Wenn sich dst und src überschneiden, ist das Verhalten undefiniert.

Siehe auch qstrncpy().

char *qstrdup(const char *src)

Gibt eine Kopie der Zeichenkette zurück.

Reserviert Speicherplatz für eine Kopie von ` src`, kopiert diese und gibt einen Zeiger auf die Kopie zurück. Wenn ` src ` gleich ` nullptr` ist, wird sofort ` nullptr` zurückgegeben.

Die Eigentumsrechte werden an den Aufrufer übertragen, daher muss die zurückgegebene Zeichenkette mit ` delete[]` gelöscht werden.

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

Eine sichere Funktion „ stricmp() “.

Vergleicht str1 und str2 und ignoriert dabei Groß-/Kleinschreibungsunterschiede bei ASCII-Zeichen.

Gibt einen negativen Wert zurück, wenn „ str1 “ kleiner als „ str2 “ ist, 0, wenn „ str1 “ gleich „ str2 “ ist, oder einen positiven Wert, wenn „ str1 “ größer als „ str2 “ ist.

Sind beide Zeichenketten nullptr, gelten sie als gleich; andernfalls wird, wenn eine der beiden nullptr ist, diese als kleiner als die andere behandelt (auch wenn die andere eine leere Zeichenkette ist).

Siehe auch qstrcmp(), qstrncmp(), qstrnicmp(), Character Case und QByteArray::compare().

size_t qstrlen(const char *str)

Eine sichere Funktion „ strlen() “.

Gibt die Anzahl der Zeichen zurück, die dem abschließenden „\0 “ vorausgehen, oder 0, wenn „ str “ auf „ nullptr “ gesetzt ist.

Siehe auch qstrnlen().

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

Eine sichere strncmp() -Funktion.

Vergleicht höchstens len Bytes von str1 und str2.

Gibt einen negativen Wert zurück, wenn str1 kleiner als str2 ist, 0, wenn str1 gleich str2 ist, oder einen positiven Wert, wenn str1 größer als str2 ist.

Sind beide Zeichenfolgen „ nullptr “, gelten sie als gleich; andernfalls wird, wenn eine der beiden „ nullptr “ ist, diese als kleiner als die andere behandelt (auch wenn die andere eine leere Zeichenfolge ist oder „ len “ gleich 0 ist).

Siehe auch qstrcmp(), qstricmp(), qstrnicmp(), Character Case und QByteArray::compare().

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

Eine sichere strncpy() -Funktion.

Kopiert höchstens len Bytes aus src (und hört bei len oder dem abschließenden Zeichen „\0 “ auf, je nachdem, was zuerst eintritt) in dst. Stellt sicher, dass dst mit „\0 “ endet, außer wenn dst gleich nullptr ist oder len den Wert 0 hat. Wenn src gleich nullptr ist, wird nullptr zurückgegeben, andernfalls dst.

Diese Funktion setzt voraus, dass dst mindestens len Zeichen lang ist.

Hinweis: Wenn sich „ dst “ und „ src “ überschneiden, ist das Verhalten undefiniert.

Hinweis: Im Gegensatz zu strncpy() schreibt diese Funktion nicht „\0 “ in alle len Bytes von dst, sondern stoppt nach dem abschließenden „\0 “. In diesem Sinne ähnelt sie der C11-Funktion strncpy_s().

Siehe auch ` qstrcpy()`.

int qstrnicmp(const char *s1, const char *s2, size_t len)

Eine sichere strnicmp() -Funktion.

Vergleicht höchstens len Bytes von s1 und s2 und ignoriert dabei Unterschiede bei ASCII-Zeichen.

Gibt einen negativen Wert zurück, wenn s1 kleiner als s2 ist, 0, wenn s1 gleich s2 ist, oder einen positiven Wert, wenn s1 größer als s2 ist.

Sind beide Zeichenfolgen nullptr, gelten sie als gleich; andernfalls wird, wenn eine der beiden Zeichenfolgen nullptr ist, diese als kleiner als die andere behandelt (selbst wenn die andere eine leere Zeichenfolge ist oder len den Wert 0 hat).

Siehe auch qstrcmp(), qstrncmp(), qstricmp(), Character Case und QByteArray::compare().

size_t qstrnlen(const char *str, size_t maxlen)

Eine sichere Funktion „ strnlen() “.

Gibt die Anzahl der Zeichen zurück, die dem abschließenden „\0 “ vorausgehen, jedoch höchstens „ maxlen “. Wenn „ str “ gleich „ nullptr “ ist, wird 0 zurückgegeben.

Siehe auch ` qstrlen()`.

[noexcept] bool operator!=(const QByteArray &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ nicht mit dem Byte-Array „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator!=(const QByteArray &lhs, const char *const &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ nicht mit der durch „'\0'“ abgeschlossenen Zeichenkette „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator!=(const char *const &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn die durch „\0 “ abgeschlossene Zeichenkette „ lhs “ nicht mit dem Byte-Array „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept, since 6.4] QByteArray operator""_ba(const char *str, size_t size)

Literaloperator, der aus den ersten size Zeichen des Zeichenfolgenliterals str ein „ QByteArray “ erstellt.

Der ` QByteArray ` wird zur Kompilierungszeit erstellt, und die generierten Zeichenfolgendaten werden im schreibgeschützten Segment der kompilierten Objektdatei gespeichert. Doppelte Literale können denselben schreibgeschützten Speicherbereich nutzen. Diese Funktionalität ist austauschbar mit ` QByteArrayLiteral`, spart jedoch Tippaufwand, wenn viele Zeichenfolgenliterale im Code vorhanden sind.

Der folgende Code erstellt eine ` QByteArray`:

using namespace Qt::StringLiterals;

auto str = "hello"_ba;

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch ` Qt::Literals::StringLiterals`.

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

Gibt ein Byte-Array zurück, das das Ergebnis der Verkettung des Byte-Arrays „ a1 “ und des Byte-Arrays „ a2 “ ist.

Siehe auch QByteArray::operator+=().

[since 6.9] QByteArray operator+(QByteArrayView lhs, const QByteArray &rhs)

[since 6.9] QByteArray operator+(const QByteArray &lhs, QByteArrayView rhs)

Gibt ein Byte-Array zurück, das sich aus der Verkettung von „ lhs “ und „ rhs “ ergibt.

Diese Funktionen wurden in Qt 6.9 eingeführt.

Siehe auch QByteArray::operator+=().

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

Gibt ein Byte-Array zurück, das das Ergebnis der Verkettung des Byte- a1 s und des Byte-Arrays a2 ist.

Dies ist eine überladene Funktion.

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

Gibt ein Byte-Array zurück, das das Ergebnis der Verkettung des Byte-Arrays a1 und des Byte- a2 s ist.

Dies ist eine überladene Funktion.

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

Gibt ein Byte-Array zurück, das sich aus der Verkettung des Byte-Arrays „ a1 “ und der durch '\0' begrenzten Zeichenkette „ a2 “ ergibt.

Dies ist eine überladene Funktion.

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

Gibt ein Byte-Array zurück, das das Ergebnis der Verkettung der durch '\0' begrenzten Zeichenkette a1 und des Byte-Arrays a2 ist.

Dies ist eine überladene Funktion.

[noexcept] bool operator<(const QByteArray &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch kleiner ist als das Byte-Array „ rhs “; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch ` QByteArray::compare()`.

[noexcept] bool operator<(const QByteArray &lhs, const char *const &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch kleiner ist als die durch „'\0'“ begrenzte Zeichenkette „ rhs “; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator<(const char *const &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn die durch „\0 “ begrenzte Zeichenkette lhs lexikalisch kleiner ist als das Byte-Array rhs; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch „ QByteArray::compare()“.

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

Schreibt das Byte-Array „ ba “ in den Stream „ out “ und gibt eine Referenz auf den Stream zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

[noexcept] bool operator<=(const QByteArray &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch kleiner oder gleich dem Byte-Array „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator<=(const QByteArray &lhs, const char *const &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch kleiner oder gleich der durch „'\0'“ abgeschlossenen Zeichenkette „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator<=(const char *const &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn die mit „\0 “ abgeschlossene Zeichenkette „ lhs “ lexikalisch kleiner oder gleich dem Byte-Array „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator==(const QByteArray &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ mit dem Byte-Array „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator==(const QByteArray &lhs, const char *const &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ mit der durch „'\0 “ beendeten Zeichenkette „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator==(const char *const &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn die mit „\0 “ beendete Zeichenkette lhs mit dem Byte-Array rhs übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator>(const QByteArray &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch größer ist als das Byte-Array „ rhs “; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch ` QByteArray::compare()`.

[noexcept] bool operator>(const QByteArray &lhs, const char *const &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch größer ist als die durch „'\0 “ beendete Zeichenkette „ rhs “; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch „ QByteArray::compare()“.

[noexcept] bool operator>(const char *const &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn die durch „\0 “ begrenzte Zeichenkette „ lhs “ lexikalisch größer ist als das Byte-Array „ rhs “; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator>=(const QByteArray &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch größer oder gleich dem Byte-Array „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch ` QByteArray::compare()`.

[noexcept] bool operator>=(const QByteArray &lhs, const char *const &rhs)

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch größer oder gleich der durch „'\0'“ abgeschlossenen Zeichenkette „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

[noexcept] bool operator>=(const char *const &lhs, const QByteArray &rhs)

Gibt „ true “ zurück, wenn die durch „\0 “ begrenzte Zeichenkette „ lhs “ lexikalisch größer oder gleich dem Byte-Array „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch QByteArray::compare().

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

Liest ein Byte-Array aus dem Stream „ in “ in „ ba “ ein und gibt eine Referenz auf den Stream zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

Makro-Dokumentation

QByteArrayLiteral(ba)

Das Makro generiert die Daten für eine ` QByteArray ` aus dem String-Literal ` ba ` zur Kompilierungszeit. Das Erstellen einer ` QByteArray ` daraus ist in diesem Fall kostenlos, und die generierten Byte-Array-Daten werden im schreibgeschützten Segment der kompilierten Objektdatei gespeichert.

Beispiel:

QByteArray ba = QByteArrayLiteral("byte array contents");

Die Verwendung von `QByteArrayLiteral` anstelle eines einfachen C++-Zeichenfolgenliterals in doppelten Anführungszeichen kann die Erstellung von ` QByteArray `-Instanzen aus zur Kompilierungszeit bekannten Daten erheblich beschleunigen.

Siehe auch „ QStringLiteral “.

QT_NO_CAST_FROM_BYTEARRAY

Deaktiviert automatische Konvertierungen von ` QByteArray ` in `const char *` oder `const void *`.

Siehe auch „ QT_NO_CAST_TO_ASCII “ und „ QT_NO_CAST_FROM_ASCII “.

[since 6.8] QT_NO_QSNPRINTF

Durch die Definition dieses Makros werden die Funktionen `qsnprintf()` und `qvsnprintf()` deaktiviert. In der Dokumentation zu diesen Funktionen erfahren Sie, aus welchen Gründen Sie sie möglicherweise deaktivieren möchten.

Dieses Makro wurde in Qt 6.8 eingeführt.

Siehe auch qsnprintf() und 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.