dateien nach dateiendung filtern
-
oh man alles klar danke dir . habe grade nur die ersten beiden zeilen gelöscht und schon funtkioniert es. man ey so was und ich sitz da so lange dran.
Danke dir !!
-
kurze und letzte frage hätte ich da noch.
ich habe ja den pfad jetzt entgültig angegeben. der ist bei mir aber variable und wird in einen cstring gespeichert.
wenn ich den pfad durch den string ersetze geht es irgendwie nicht und die listboc bleibt leer.
woran kann das liegen ?danke
-
Zeig den Abschnitt mal.
-
m_ctl_fpga.Dir(0x0000,_T((LPCTSTR)"C:\\Dokumente und Einstellungen\\Heidenreich.KRAUSE_DE\\Desktop\\bin-dateien\\*.rbt"));
ich habe es jetzt so versucht:
m_ctl_fpga.Dir(0x0000,cFileDir);
m_ctl_fpga.Dir(0x0000,_T((LPCTSTR)cFileDir));
oder muss ich es anders mache ?
danke !!
-
ok habe grad gesehen das ich die *.rbt am ende vergessen habe. aber er sollte doch trotzdem dann alles anzeigen was sich in dem ordner befindet oder?
EDIT; hat sich erledigt. habe jetzt die dateiendung drangehangen. jetzt geht es wieder. besten dank !!!
-
Na ist doch schön.
Fehler alleine finden ist doch viel besser als alles gezeigt kriegen, oder?
-
BTW:
.Dir()
kannst nicht benutzen um die Box rekursiv zu füllen. AfAIK musst
du dir da was eigenes bauer.TinTin
-
wie meinste das jetzt ? also füllen geht doch . zumindest stehen da die dateinamen. ich bin jetzt nur dabei das ganze wieder auszulesen und das in einen string zu speichern. bin noch auf der suche nach dem passenden stück code.
-
Da du keine Rekursion nutzen willst, ist das was Tintin gesagt hat nicht so wichtig für dich.
Rekursion == auch untergeordnete Ordner durchguckenWegen dem Auslesen schau dir mal CListBox::GetText an.
-
sorry ich nochmal. komme irgendwie nicht weiter. habe das jetzt mit gettext versucht. wenn ich die daten aus dem listenfeld speichern will muss ich diese aber vorher makieren und kann immer nur das makierte speicher.
geht es nicht auch das alles automatisch makiert ist ? also das ich einfach auf den speicher button klicke und automatisch alle im listenfeld befindlichen daten gespeichert werden ?
-
Du musst da nix markieren.
Ich hab jetzt nur in die MSDN geguckt, aber ich hab da ne Funktion, wo ich den Index angeben kann:MSDN schrieb:
CListBox::GetText
void GetText( int nIndex, CString& rString ) const;Parameters
nIndex
Specifies the zero-based index of the string to be retrieved.rString
A reference to a CString object.Remarks
Gets a string from a list box.Das ist ein gekürzter Auszug mit dem wichtigsten für dich.
-
ok sorry eigene doofheit- hatte da noch ein current selection vorne dran.
danke dir !
-
ich nochmal
also soweit funktioniert alles wunderbar
ich habe jetzt nur noch ein kleines problem.
ich lese die daten aus dem ordner aus:
c:dokumente_u_einstellungen\bla\bla\_BIN_
das gebe ich vorher durch einen Openfiledialog an.
der pfad wird in einem string gespeichert.ich möchte aber gleichezitig noch diesen pfad auslesen:
c:dokumente_u_einstellungen\bla\bla\_DATA_
also einfach einen ordner zurückspringen dann in den auch noch reingehen.
habe gehört das man das so machen kann : ordner..\anderer ordner . also mit(..\)
ich habe jetzt das problem das in dem gepseichertem string die pfadangabe so steht:
c:dokumente_u_einstellungen\bla\bla\_BIN_\ -- ich müsste doch den letzten schrägstrich dafuer wegmachen oder ? oder geht sowas generell nicht in MFC ?
wenn doch wie kann ich am gescheitesten das letzte zeichen entfernen.
hab schon viel probiert aber da alles was den pfad angeht variabel bleiben muss hab ich es irgendwie noch nicht rausgefunden._DATA_ und _BIN_ liegen aber im gleichen ordner.
wäre dankbar fuer hilfe !!!
-
CString strPfad = "c:dokumente_u_einstellungen\bla\bla\_BIN_ "; strPfad.Replace("_BIN_", "_DATA_");
So würde ich das mal versuchen.
Sorry, wenn ich nicht wirklich auf deine Idee eingehe, aber relative Pfade in einer totalen Pfadangabe sind mir suspekt.
Ich glaube, du müsstest den letztes Backslash nicht wegmachen und könntest das andere einfach anhängen - versuchs doch mal.
-
k das funzt! besten dank !
also die ordner data und bin werden sich NIE ändern. denke das das dann geht oder?
-
Vodn7V schrieb:
also die ordner data und bin werden sich NIE ändern. denke das das dann geht oder?
Klar geht das.
Falls du für den Fall doch vorbeugen willst, kannst du diese Werte ja in eine Ini-Datei oder die Registry schreiben.
...später...PS: Für den Anfang kannst du ja #defines machen, dann lässt sich der Code leichter anpassen, falls du es doch ändern willst.
-
das ist eine sehr gute idee
werd ich gleich mal machen.besten dank !
-
oh man ich schon wieder. wollte es eigentlich alleine weiterschaffen aber es geht einfach nicht :|
also ich habe ja die dateien in der CListbox drin.
die sehen jetztt so aus.
forrcalc_1270_dpi.ct3
forrcalc_1060_dpi.ct3
forrcalc_944_dpi.ct3
forrcalc_1290_dpi.ct3
2540_dpi.ct3
1016_dpi.ct3ich versuche schon die ganze zeit rauszubekommen wie man am besten einen filter darein bringt. also das nur die zahlen angezeigt werden.
ich will immer nur "1270" oder "944" da stehen haben. habe es schon mit etlichen sachen versucht. in der msdn zu clistbox finde ich nichts passendes und so google sagt auch nicht das was ich suche. hat jemand evtl ein stichwort fuer mich ?
EDIT: habe auch schon überlegt erst den inhalt der listbox auszulesen das dann zu verändern dann wieder in die box rein. aber das krieg ich auch nicht hin.
danke
-
Wenn ich das so angucke, steht die Lösung schon hier in diesem Thread.
Replace kann auch "was" durch nix ersetzen.
-
hmm ja ok das geht ja bei denen hier zb da kann ich immer das ende wegschneiden.
1240_dpi.ct3
1016_dpi.ct3aber bei denen hier:
forrcalc_1270_dpi.ct3
forrcalc_1060_dpi.ct3die sollen gar nicht angezeigt werden. ich habe es mit bla.replace("forr*","");
versucht. aber das geht nicht.