ListWidget Dateien Ausgeben

Alles rund um die Programmierung mit Qt
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Habe da noch ein Paar Fehler !!!!

Folgendes Passiert

1. Der ListWidget zeigt mir alle .xsd dateien an sollte aber nur die anzeigen die signiert sind das heist jede signierte .xsd Datei gibt is doppelt nur das die zweite nicht mit .xsd endet sonder mit .p7s .

Beispiel:
diese .xsd Datei soll er Anzeigen weil es auch eine Signatur Datei gibt.
data1.xsd data1.p7s

diese .xsd Datei soll er nicht Anzeigen weil es keine Signature Datei gibt
data2.xsd
--------------------------
Das zweite Problem ist das wenn ich nochmal auf Durchsuchen klicke und einen anderen oder den gleichen Pfad angebe die alte Liste noch vorhandes ist und er die neuen Datein darunter anhängt.
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

Coca hat geschrieben:Habe da noch ein Paar Fehler !!!!

Folgendes Passiert

1. Der ListWidget zeigt mir alle .xsd dateien an sollte aber nur die anzeigen die signiert sind das heist jede signierte .xsd Datei gibt is doppelt nur das die zweite nicht mit .xsd endet sonder mit .p7s .

Beispiel:
diese .xsd Datei soll er Anzeigen weil es auch eine Signatur Datei gibt.
data1.xsd data1.p7s

diese .xsd Datei soll er nicht Anzeigen weil es keine Signature Datei gibt
data2.xsd
--------------------------
Das zweite Problem ist das wenn ich nochmal auf Durchsuchen klicke und einen anderen oder den gleichen Pfad angebe die alte Liste noch vorhandes ist und er die neuen Datein darunter anhängt.
Klappt doch!
Wenn Du die Liste einlädst, lösche sie einfach vorher über listwidget->clear().
Um zu vergleichen legst du dir halt noch eine Stringlist mit "*.p7s" Dateien an und vergleichst die Namen z.B. über if (s.section(".",0,0)==t.section(".",0,0)) miteinander oder anders und fügst im Falle des Erfolgs nur dann entsprechende Einträge ein.
Zuletzt geändert von Shadow am 4. April 2006 16:48, insgesamt 1-mal geändert.
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Um zu vergleichen legst du dir halt noch eine Stringlist mit "*.p7s" Dateien an und vergleichst die Namen z.B. über if (s.section(".",0,0)==t.section(".",0,0)) miteinander oder anders und fügst im Falle des Erfolgs nur dann entsprechende Einträge ein.
Verstehe ich nicht ganz Shadow wie ich das machen soll !![/quote]
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

Coca hat geschrieben:
Um zu vergleichen legst du dir halt noch eine Stringlist mit "*.p7s" Dateien an und vergleichst die Namen z.B. über if (s.section(".",0,0)==t.section(".",0,0)) miteinander oder anders und fügst im Falle des Erfolgs nur dann entsprechende Einträge ein.
Verstehe ich nicht ganz Shadow wie ich das machen soll !!
Die Logik musst du schon selbst implementieren.
Ich habe dir nur mal einen Tipp geliefert, wie man es einfach machen könnte ==> siehe QT-Assistant unter "QString".
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Shadow die Fuktionen habe ich nur bin ich mir noch nicht im Klaren wie ich das aufbauen soll :shock:

Ich weis so wie ich das geschrieben habe geht es gar nicht. Nur wie soll ich das mit den schleifen hinbekommen. Das ist der Quellcode nur die Funktionen muss Logik aufgerufen werden in einer Schleife.

Code: Alles auswählen


void XmlTool::InactiveList( QString s)
{
	ui.InactiveList->clear();
	QDir testDir(s); 
	 
    
	for (int i=0;i<testDir.entryList(QStringList("*.xsd")).count();i++) 
	{ 
	  QString fileName = testDir.entryList(QStringList("*.xsd")).at(i); 
	  QString filePath = testDir.absoluteFilePath(fileName);
	
	}
	for (int i=0;i<testDir.entryList(QStringList("*.p7s")).count();i++) 
	{
	QString fileName2  = testDir.entryList(QStringList("*.p7s")).at(i);
	QString filePath2 = testDir.absoluteFilePath(fileName2); 

	}

	QString file1 = fileName.section('.',-1);
	QString file2 = fileName2.section('.',-1);

	int erg = QString::compare(QString file1, QString  file2 );	
	if (erg = 0)
	{
		ui.InactiveList->addItem(fileName);
	}



	

}

macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Coca hat geschrieben:Shadow die Fuktionen habe ich nur bin ich mir noch nicht im Klaren wie ich das aufbauen soll :shock:
Das ist nicht zu übersehen, Du übernimmst die Sachen ohne zu wissen was Du da tust. Die meisten Hinweise hier, dienen dazu Anhaltspunkte zu geben, Hinweise, wie man eine Lösung erreichen kann. Niemand will dir das programmieren abnehmen.
Coca hat geschrieben:Ich weis so wie ich das geschrieben habe geht es gar nicht.
Warum schreibst Du es dann so?

Ich würde die Sache anders angehen, vielleicht ist es dann auch etwas klarer.

Code: Alles auswählen

void XmlTool::InactiveList( QString s)
{
	ui.InactiveList->clear();
	QDir testDir(s); 

	QFileInfoList fi = testDir.entryInfoList(QStringList() << "*.xsd");
	for (int l=0; l<fi.count(); l++)
	{
		if (testDir.exists(fi[l].baseName() + ".p7s"))
			ui.InactiveList->addItem(fileName);
	}
}

Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Ich habe es momentan versucht so zu lösen

Code: Alles auswählen

	void XmlTool::InactiveList( QString s)
{
	ui.InactiveList->clear();
	QDir testDir(s); 
	 
    

	for (int i= 0; i < testDir.entryList(QStringList("*.xsd")).count() &&  testDir.entryList(QStringList("*.p7s")).count() ; i++)
	 {
	  QString fileName = testDir.entryList(QStringList("*.xsd")).at(i); 
	  QString filePath = testDir.absoluteFilePath(fileName);
	  QString fileName2  = testDir.entryList(QStringList("*.p7s")).at(i);
      QString filePath2 = testDir.absoluteFilePath(fileName2); 
	  QString file1 = fileName.section('.',-2,1);
	  QString file2 = fileName2.section('.',-2,1);



	int erg = QString::compare(file1,file2 );	
	if (erg = 0)
	{
		ui.InactiveList->addItem(fileName);
	}	
	
	}

	

}
Der Zeigt mir hier nicht im ListWidget an, nach dem ich Debuged habe liegt der Fehler bei den beiden Funktionen

Code: Alles auswählen

QString file1 = fileName.section('.',-2,1);
	  QString file2 = fileName2.section('.',-2,1);
Es ist ja so ich will die datei namen dieser beiden dateien vergleichen und muss das hintere teil .xsd und .p7s weg schneiden und vergleichen. Doch die endungen kriege ich nicht weg geschnitten ich weis nicht genau was ich da falsch mache bei dem Aufruf.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Coca hat geschrieben:Ich habe es momentan versucht so zu lösen
Schmeiss es weg. Für das hantieren mit Dateien gibt es QDir, QFile und QFileInfo. An der Stelle sollte man nicht mit Strings arbeiten und anfangen sie in ihre Teile zu zerlegen. Es geht wirklich einfacher und Du brauchst dich nicht um unterschiedliche Pfadtrenner und mehrere Punkte in Dateinamen zu kümmern.
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

macman hat geschrieben:
Coca hat geschrieben:Ich habe es momentan versucht so zu lösen
Schmeiss es weg. Für das hantieren mit Dateien gibt es QDir, QFile und QFileInfo. An der Stelle sollte man nicht mit Strings arbeiten und anfangen sie in ihre Teile zu zerlegen. Es geht wirklich einfacher und Du brauchst dich nicht um unterschiedliche Pfadtrenner und mehrere Punkte in Dateinamen zu kümmern.
Das sollte, wie gesagt, auch nur als Anhaltspunkt dienen, da ich jetzt nicht noch den kompletten QT-Assistant nach eine eleganten Lösung durchgehe, für ein Problem, das ich nicht selbst lösen muß. So leid es mir tut....
Antworten