Zeichenkette in Datei Speichern

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
zheka777
Beiträge: 4
Registriert: 25. Oktober 2013 15:15

Zeichenkette in Datei Speichern

Beitrag von zheka777 »

Hallo Leute,

habe eben folgende Aufgabe bekommen und ich habe kein Plan wie ich da vorgehen soll.
Ich soll eine Oberfläche entwerfen wo man eine Adresse aus 16 Zeichen eingeben und abschicken kann. (Empfänger intressesiert uns noch nicht)
Da die Adresse so lang ist und aus verschiedenen Zeichen besteht, muss das Programm die jeweils eingegebene Adresse speichern können und dann die bereits eingegeben Adressen als Liste dem benutzer anbieten.
Das Programm soll die Adressen am besten als Textdatei spreichern und beim Laden des Programms diese Textdatei mit den Adressen automatisch laden.

Beispeil:
1. Adresse: SWT1:SET:YV:LKN=5404
2. Adresse: DHG0:GET:HJH:K:42040
Beide Adressen werden an ein anderes Programm gesendet.
Danach beende ich das Programm....
Nun starte ich das Programm wieder und die 2 Adressen sollen mir im Programm als LIste angeboten werden.

So nochmal: Es geht mir NUR wie ich diese Speicherung von Adressen und das Laden von Adressen realisiere

Vielen Dank schonmal für eure antworten.

EDIT: Zur Erläuterung nochmal

Bild
[*]In der ComboBox sollen die gespeicherten Adressen zur Verfügung stehen
[*]Im Unteren Feld gibt man die Adresse ein.
[*]Mit dem Klick auf Speichern werden die Adressen gespreichert [Senden spielt bis jetzt keine Rolle]
[*]Was ich mir noch vorstellen kann, dass ich die Datei wo die Adressen gespreichert sind, manuell lade und nicht automatisch...

Hat den keiner eine einfache Lösung dazu? Einfach in ein .txt File alles untereinander reinspeichern und dann wieder rausholen?
Zuletzt geändert von zheka777 am 4. November 2013 14:53, insgesamt 4-mal geändert.
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Re: Zeichenkette in Datei Speichern

Beitrag von dazedly »

Wie wäre es mit einer sqlite Datenbank? Würde perfekt passen meiner Meinung nach.
zheka777
Beiträge: 4
Registriert: 25. Oktober 2013 15:15

Re: Zeichenkette in Datei Speichern

Beitrag von zheka777 »

Danke für deine Antwort.

Könntest du evtl ein Beispiel Code schreiben, wie ich das machen soll?
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Re: Zeichenkette in Datei Speichern

Beitrag von dazedly »

Naja wegen deinem "Edit".
Du kannst mit einen QTextStream in ein QFile schreiben.

Beispiel aus der QFile Doku schreiben:

Code: Alles auswählen

QFile file("out.txt");
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
        return;

    QTextStream out(&file);
    out << "The magic number is: " << 49 << "\n";
Beispiel aus der QFile Doku lesen:

Code: Alles auswählen

    QFile file("in.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
        return;

    while (!file.atEnd()) {
        QByteArray line = file.readLine();
        process_line(line);
    }
zheka777
Beiträge: 4
Registriert: 25. Oktober 2013 15:15

Re: Zeichenkette in Datei Speichern

Beitrag von zheka777 »

EDIT:
Oder etwas einfacher:

Ich speichere einfach die eingegeben Adressen in der ComboBox? Das würde ja auch gehen oder?

***********************************************************************************************************************

Ja Doku hab ich auch angeschaut, aber mein Problem liegt eben daran, WIE bekomme ich diesen Text aus eben dieser Textbox IN die Datei und wie bekomme ich diesen Text aus der Datei in die ComboBox???

Ich muss ja zuerst den eingegeben Text auslesen:

Code: Alles auswählen

void MainWindow::speichereText(QString text) {
    QString a;
    a = (ui->lineEdit_3->text());
    text = a;
}
so jetzt muss ich diesen Text als Liste in die Datei schreiben.....
und danach den ganzen Text aus der Datei lesen?

Mir fehlen einfach die Kenntnisse das zussamenzufügen...

Kann denn keiner spezifisch auf mein Beispeiel eingehen und nicht die Doku posten bitte?

Und in welche Klasse soll ich den diese QFile und QTextStream einfügen?
Kann sein, dass ich einfach zu dumm bin und die Zusammenhänge nicht sehe :( liegt einfach daran, dass ich gar keine Erfahrung in den Sachen hab...
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Re: Zeichenkette in Datei Speichern

Beitrag von Hulk2442 »

Hi
Du hast ja nicht nur eine Frage sonder ein ganzes Projekt welches aus mehreren Punkten besteht.
Ohne den Sourcecode zu sehen ist es halt nicht so einfach sich in deine Schlussfolgerungen hinein zu denken.

Wenn ich mir deine Beschreibung anschaue würde ich sagen das dieses Projekt in folgende Module unterteilen werden kann
1) GUI – Grafische Oberfläche (soweit ich das verstanden habe hast du diese bereits)
2) Zugriff auf die GUI (Maus klick + Funktionsaufruf)
3) Verarbeiten der Daten (im Moment nicht wichtig - kommt später hinzu)
4) Speichern der Daten aus der GUI in eine *.txt Datei
5) Lesen der Daten aus eine *.txt Datei und hinzufügen zu deiner GUI

Soweit ich deine Beschreibung verstanden habe sind die Punkte 1 bis 3 klar bzw. werden erst später ausgeführt.
Falls meine Annahme falsch ist bitte Bescheid geben.

Zu Punkt 4:
Per druck auf den Button „Speichern“ führst du eine Funktion aus welche auf LineEdit zugreift und den Inhalt der Eingabe als String in eine Datei speichert.

Code: Alles auswählen

/Zu Punk 4
void MainWindow::saveClicked()
{
	//QLineEdit pLineEdit;
	writeToFile( pLineEdit->text );
}


void MainWindow::writeToFile( QString sData )
{
	QFile file("out.txt");
    if( file.open(QIODevice::WriteOnly | QIODevice::Text) )
	{
		QTextStream out(&file);
		out << sData;
	}
	else
	{
		qDebug() << "ERROR: File not Found";
	}
}
Zu Punkt 5:
Beim Starten deine Programms führst ganz zum Schluss eine Funktion aus welche aus einer Datei die Daten ausliest und diese Daten der GUI zuweist.

Code: Alles auswählen

//Zu Punk 5
void MainWindow::readFromFile( QString sData )
{
	//QLineEdit pLineEdit;

    QFile file("out.txt");
    if( file.open(QIODevice::ReadOnly | QIODevice::Text) )
	{
		QTextStream in(&file);
		while (!in.atEnd()) 
		{
			QString line = in.readLine();
			pLineEdit->insert( line );
		}
	}
	else
	{
		qDebug() << "ERROR: File not Found";
	}
}
Antworten