Seite 1 von 1

qstring von lineedit auslesen und in zwei strings splitten

Verfasst: 5. September 2016 16:24
von XamZnew
hallo zusammen,

muss einen key aus einer lineedit lesen und da dieser größer als 16bit ist, brauch ich diesen somit in zwei strings um ihn in einer datei zu lesen.
wie löse ich dieses problem, also ihn in zwei teile zu splitten?

danke und grüße...

Re: qstring von lineedit auslesen und in zwei strings splitten

Verfasst: 6. September 2016 07:46
von hilefoks
Moin,

Wenn du jedes einzelne Zeichen aus einem QString willst, dann:

Code: Alles auswählen

for (int i = 0; i < str.size(); ++i) {
    QChar ch = str.at(i);
    //...
}
Willt du einen QString teilen, dann können QString::right, QString::left, QString::mid oder QString::split hilfreich sein.

MfG
Hilefoks

P.S: Wenn das deine Frage nicht beantwortet, dann erkläre bitte genauer was dein Problem ist.

Re: qstring von lineedit auslesen und in zwei strings splitten

Verfasst: 6. September 2016 07:48
von XamZnew
der string besteht aus 40 zeichen, also zahlen und buchstaben zusammengesetzt, da hexa
eine zeile kann in dem file aber nur 16bit enthalten, heißt die restlichen 4 müssen in die nächste zeile
deswegen muss ich nach 16bit in die nächste zeile schreiben
wie kann ich das machen?

danke...

Re: qstring von lineedit auslesen und in zwei strings splitten

Verfasst: 6. September 2016 08:56
von hilefoks
Moin,

16 Bit ergeben für mich jetzt keinen Sinn... vielleicht meinst du 16 Byte?

Unter der Annahme das es sich beim String nur um ASCII-Werte handelt, was bei einem Hex-String ja der Fall ist, könntest du folgendes machen:

Code: Alles auswählen

for (int i = 0; i < str.size(); ++i) {
    char ch = str.at(i).toLatin1();
    // write char to file
    if(i > 0 && i % 16 == 0) {
        // write newline
    }
}
Die beiden Kommentarzeilen musst du natürlich durch entsprechenden Code zum schreiben in die Datei ersetzen.

MfG
Hilefoks

Re: qstring von lineedit auslesen und in zwei strings splitten

Verfasst: 6. September 2016 09:00
von XamZnew
oh ja sorry 16byte habe mich verschrieben
gehen immer 16byte in eine zeile heißt die letzten 4 benötige ich in einer neuen zeile

Re: qstring von lineedit auslesen und in zwei strings splitten

Verfasst: 6. September 2016 09:01
von XamZnew
noch eine andere frage:
wie kann ich denn einen timestamp in ein schon bestehendes dokument, vor jede zeile setzen?
denn das sind traces und logdaten die da reingeschrieben werden, zb. reset der unit davon die verschiedenen daten, die ja zu verschiedenen uhrzeiten abgerufen/geschrieben werden, wenn man das trace laufen lässt...

danke