qstring von lineedit auslesen und in zwei strings splitten

Verschiedenes zu Qt
Antworten
XamZnew
Beiträge: 34
Registriert: 18. August 2016 15:20

qstring von lineedit auslesen und in zwei strings splitten

Beitrag von XamZnew » 5. September 2016 16:24

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

hilefoks
Beiträge: 138
Registriert: 13. März 2008 17:09

Re: qstring von lineedit auslesen und in zwei strings splitten

Beitrag von hilefoks » 6. September 2016 07:46

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.

XamZnew
Beiträge: 34
Registriert: 18. August 2016 15:20

Re: qstring von lineedit auslesen und in zwei strings splitten

Beitrag von XamZnew » 6. September 2016 07:48

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

hilefoks
Beiträge: 138
Registriert: 13. März 2008 17:09

Re: qstring von lineedit auslesen und in zwei strings splitten

Beitrag von hilefoks » 6. September 2016 08:56

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

XamZnew
Beiträge: 34
Registriert: 18. August 2016 15:20

Re: qstring von lineedit auslesen und in zwei strings splitten

Beitrag von XamZnew » 6. September 2016 09:00

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

XamZnew
Beiträge: 34
Registriert: 18. August 2016 15:20

Re: qstring von lineedit auslesen und in zwei strings splitten

Beitrag von XamZnew » 6. September 2016 09:01

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

Antworten