Zum Inhalt springen

Narf!

Mitglieder
  • Gesamte Inhalte

    480
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Narf!

  1. Hat geklappt. Und, wie sollte es anders sein, habe ich ein neues Problem: lesen.open(MainPth+"\\Datei", ios::in); //Öffnen einer Datei mit Pfadangeben while(!lesen.eof()) { lesen.getline(lese, 20); //lesen der Pfadangabe if(lese[0]!='\0') { a=0; mp3.open(lese, ios::in); //öffnen der Pfadangabe while(!mp3.eof()) { mp3.getline(lesemp3, 300); //lesen aus der Datei in der Pfadangabe if(lesemp3[0]!='\0') ... } mp3.close(); ... Beim ersten Durchlauf funktioniert alles prima. Beim zweiten und allen weiteren Durchläufen passiert das: Die Pfadangabe wird gelesen, die Datei wird geöffnet, aber bei der Abfrage nach dem Dateiende wird es als wahr gewertet und zu mp3.close() gesprungen, obwohl die Datei gerade erst geöffnet wurde und sich auch etwas in der Datei befindet.
  2. Ich habe es in ios::in geändert und es funktioniert. Nun noch die andere Seite: ofstream schreiben; schreiben.open(LW+"\\Datei", ios::ate); //Datei öffnen und neue Daten am Ende anhängen. Die Datei wird geöffnet, jedoch der Inhalt gelöscht und mit dem neuen Inhalt überschrieben.
  3. Habe das mit dem using namespace gemacht, läuft prima bis auf eine winzige Kleinigkeit : CString CDDrive="F:\\"; ifstream lesen; Ich versuche mit lesen.open(CDDrive+"Dateiname", ios::out); eine Datei zu öffnen. if(!lesen) {...} Es wird jedesmal in die if-Anweisung gesprungen, obwohl die Datei vorhanden ist.
  4. Ups, keine Ahnung, wie die da reingekommen ist. Jedenfalls habe ich sie gelöscht und nun gehts.
  5. Da sich die Probleme häufen, ein VC++ 6.0 Projekt in ein VC++ .NET Projekt zu konvertieren, habe ich mal dieses Thema erstellt. Er bringt mir folgende Fehlermeldung: d:\Microsoft Visual Studio\VC98\MFC\SRC\STREX.CPP(28) : error C2039: 'CString': Ist kein Element von 'ATL::CStringT<BaseType,StringTraits>' Er greift also noch auf den alten Ordner von VC++ 6.0 zu, da ich das .NET auf LW G: installiert habe. Ich habe alles abgesucht, um diesen Pfad zu ändern, habe aber nichts gefunden.
  6. Ich habe jetzt #include <fstream> drin stehen, aber er kennt jetzt ifstream und ofstream nicht, obwohl die auch in der Hilfe bei fstream als Member drin stehen.
  7. Dann noch was: Wenn ich ein Programm mit Dateiarbeit entwickle, muss ich da auf Rechtevergabe achten? Das Programm erstellt ändert und löscht Dateien.
  8. Hallo Leute. Mein Visual C++ 6.0 wurde auf Visual C++ .NET umgestellt und da ergeben sich einige Probleme. Die Dateiarbeit habe ich bisher mit fstream.h (ifstream zum lesen, ofstream zum schreiben) gemacht, jetzt muss ich das mit CFile tun. Mit "cf.Open(CDDrive+"ncc.html", CFile::modeRead, NULL))" versuche ich eine Datei auf dem CD-ROM-LW zu öffnen, das funktioniert aber nicht. Muss ich den Pfad in einer Variablen schreiben? In einer while-Schleife möchte ich das Ende der Datei abfragen. Mit fstream.h ging das so: ifstream lesen; lesen.open(Datei); while(!lesen.eof()) {...}
  9. Mal ein anderes Beispiel: OnSelChangeTree() { ... Funktion(); return [Wert]; } Wenn ich in der treeansicht navigiere, wird das markierte Item in Funktion weiterverarbeitet. Da aber mehrmals im Tree navigiert wird, wird die Funktion OnSelChangeTree() öfters aufgerufen ohne vorher mit return abgeschlossen worden zu sein, weil immer die Funktion() davor steht. Ich möchte also die Funktion OnSelChangeTree() mit dem Aufruf der Funktion() UND dem return [Wert] abschließen.
  10. GotoPage() und NächsteFunktion() sind void und warten auf kein Ergebnis. Aber die Funktion PreTranslateMessage() wird wieder aufgerufen, ohne das sie vorher ihr return hatte, weil ständig irgend welche Tasten gedrückt werden. Deshalb wäre es gut, wenn man in der PreTranslateMessage() schreiben könnte: { ... return [Wert] UND GotoPage(); } Damit halt die Funktion ihr return hat und die Funktion GotoPage() aufgerufen wird.
  11. Ich glaube, die kommt nicht zurück. Das mit dem Code wird schwierig, weil zu lang. Ich versuche es mal so: PreTranslateMessage() { ... GotoPage(); ... return irgendwas; } GotoPage() { ... NächsteFunktion(); ... } Es ist ein bischen chaotisch, aber das Programm läuft.
  12. Mal was Neues. In meinem Programm habe ich Funktionen mit Rückgabewert, z. Bsp. PreTranslateMessage(MSG* pMsg). In dieser Funktion rufe ich eine weitere Funktion auf und gebe keinen Wert zurück. Ich denke mir, dass da Fehler auftreten, die zwar das Programm nicht behindern, aber ich möchte sie doch vermeiden. Kann ich eine Funktion aufrufen UND einen Wert zurückgeben, damit sich die erste Funktion beendet?
  13. Das hilft mir jetzt nicht weiter. Bei WM_KEYFIRST, WM_KEYLAST gibt es den Accelerator zurück. Wie kriege ich die Tasten im Eingabefeld abgefragt?
  14. Es sollen nur Zahlen eingegeben werden und wenn die Entertaste gedrückt wurde, soll der Inhalt des Eingabefeldes zur weiteren Verarbeitung ausgelesen werden. Und die Entertaste interessiert mich nur bei diesem Eingabefeld und wie schon oben geschrieben, die Nachricht WM_KEYDOWN wird nicht angesprochen.
  15. Bei mir sieht es jetzt so aus: #define ALLOWED_CHARS "0123456789\x8\x13" kommt nach den includes. BOOL CTest2Dlg::PreTranslateMessage(MSG* pMsg) { //Für die Menü-Tastenkürzel if(pMsg->message>=WM_KEYFIRST && pMsg->message<=WM_KEYLAST) { return ::TranslateAccelerator(m_hWnd,(HACCEL__ *)m_hAccel, pMsg); } //Für das Eingabefeld if(pMsg->message==WM_KEYDOWN || pMsg->message==WM_KEYUP) { if(pMsg->hwnd==GetDlgItem(IDC_EDIT1_Page)->m_hWnd) { if(NULL==strchr(ALLOWED_CHARS, pMsg->wParam)) { return TRUE; } //Ist Enter gedrückt worden? if(pMsg->wParam=='\x13') MessageBox("Hallo",""); } } return CDialog::PreTranslateMessage(pMsg); } Es passiert nichts. Ich habe es auch mit Haltepunkten getestet, aber er hält nicht bei WM_KEYDOWN an. Es kann also keine Abfrage der Eingabe erfolgen.
  16. Die Meldung tritt schon zweimal auf, nach dem OnInitDialog() return true; ausgeführt hat. Ich bekomme auch eine Warnung: No Listbox Item selected. Kann auch nicht, weil noch keins drin steht. Die Listbox füllt der User.
  17. Neues Problem: Wenn ich in der Tree-Ansicht navigiere, erhalte ich im Debug-Fenster folgende Zeile: Nicht abgefangene Ausnahme in test2.exe (GDI32.DLL): 0xC0000005: Access Violation. Was hat das zu bedeuten und wie kann ich das beheben?
  18. Wie kann ich damit feststellen, ob die Enter-Taste gedrückt wurde und wenn ich die Enter-Taste bei #define mit angeben muss, ist es dann "\x13"?
  19. Haben DVD-Laufwerke eine andere Kennung als CD-ROM-Laufwerke (DRIVE_CDROM)beim Erkennen? (Code siehe oben)
  20. Habe ich nicht unter XP getestet. Du brauchst unter XP auch nicht in die Registry, sondern es reicht die Funktion mit RegisterWindowMessage. (siehe oben) Ich habe auch diese Funktion genutzt und es haut hin.
  21. Ich habe jetzt so einen Button drin, aber es passiert nichts. Bekommt der eine besondere ID? Ich habe keine Default-ID gefunden bzw. habe es mit IDOK versucht.
  22. Nicht so richtig. Ich arbeite mit MS VC++ 6.0
  23. Hallo Leute! Ich möchte die Eingabe in ein Eingabefeld mit Enter bestätigen und nicht auf einen Button klicken. Ich habe einen Menüeintrag, der den Eingabefocus auf das Edit-Feld setzt, jetzt soll dort eine Zahl eingegeben und mit Enter bestätigt werden. Nach dem Bestätigen soll die eingegebene Zahl weiter verarbeitet werden. Wenn ich aber Enter drücke, passiert gar nichts.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...