Seite 1 von 1

QStringList

Verfasst: 10. April 2008 16:08
von wafelek
Hallo QT-Freunde!

Ich Programmiere unter QT 3.1 und habe folgendes Problem:
Ich speichere die Attribute Name als String und gebe mir diese einzeln mit Komma getrennt wider aus: (m_VariableNameList ist der QString und m_VarList ist die QStringList)

Code: Alles auswählen

	if	(! m_VariableNameList.isEmpty())
			{
			m_VariableNameList += ", ";
			}
		m_VariableNameList += qName;

Die Ausgabe sieht so aus und ist auch korrekt:
Info (Iformation)
Data (Tm, LG, MM)
Error (Es_x, Es_y)
Layer (Ox, Oy)
Product (Product)
das fkt auch. Aber jetzt möchte ich mir die Namen in eine QStringList abspeichen:

Code: Alles auswählen

		m_VarList.append(qName);
		if	(!m_VarList.isEmpty())
			{
			m_VariableNameList = m_VarList.join( ", " );
			}
Die Ausgabe sieht so aus und die Werte von Error stehen bei Layer und die von Data in Product drin:
Info (Iformation)
Data (Tm, LG, MM)
Error (Es_x, Es_y)
Layer (Es_x, Es_y, Ox, Oy)
Product (Tm, LG, MM, Product)
Hat jemand eine Idee was ich ändern muss?
MfG
wafelek

Verfasst: 11. April 2008 07:28
von macman
Ich werde aus dem Posting nicht schlau. Was ist denn was? Das ist etwas verwirrend, aber es sieht so aus, als wenn Du die StringList falsch befüllst. Wahrscheinlich wird eine Variable zwischenzeitlich nicht geleert. Wie gesagt, zu wenige, verwirrende Informationen.

Re: QStringList

Verfasst: 11. April 2008 09:37
von Deever
BTW:
wafelek hat geschrieben:Ich Programmiere unter QT 3.1
QuickTime 3.1? ;)

SCNR,
/dev

Verfasst: 11. April 2008 11:45
von moviemax
sieht in der tat etwas umständlich aus, ist

Code: Alles auswählen

   m_VariableNameList = m_VarList.join( ", " ); 
nicht ewtas doppelt gemoppelt.
Es fehlt auch etwas der Kontext.

<Cristallkugel mode>
Du liest eine XML datei aus. qName ist ein tag und vars
die Attribute oder Text mmh.
ich würde es irgendwie anders machen ...
Also alles gleich richtig einsortieren und anghängen.
Manchmal ist auch ein uninteligentes sinniger:

Code: Alles auswählen

string1 = var1;
if (!var2.empty()) 
{
   string1 += ", " + var2;
 } 
Am allerbesten ist meistens eine eigene klasse.


</Cristallkugel mode>


[/code]

Geht

Verfasst: 14. April 2008 11:14
von wafelek
Ich habe einfach vergessen den String zu leeren und bekamm die Daten des vorherigen mit.

Danke für eure Hilfe

Verfasst: 16. April 2008 10:52
von moviemax
keine Ursache..
Du solltest dann den thread auf [gelöst] setzen ...