-
Gesamte Inhalte
9.912 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
3
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Klotzkopp
-
-
Ja, aber nur die des in der 2. Listbox ausgewählten Schlüssels. Keine Rekursion.Ich verstehe diesen Satz so: Im dritten Listenfeld sollen alle Unterschlüssel und alle Einträge angezeigt werden. Also Sowohl als auch.Deine Interpretation der Aufgabe würde den Schwierigkeitsgrad massiv erhöhen ("Damit die Lösung nicht zu aufwendig wird...").
Zudem ist es totaler Blödsinn, so etwas mit Listboxen zu machen.
Und selbst wenn das beabsichtigt wäre, wäre es Unsinn, in der dritten Listbox eine rekursive Datenstruktur zu visualisieren. Das könnte man auch mit einer einzelnen Listbox machen.
Ich glaube, du verrennst dich total.
Aber bitte, wenn du willst:
Ist dir klar, dass du für die Rekursion eine eigene Funktion/Methode brauchst? Du kannst das nicht direkt in deine SelectedIndexChanged-Eventhandler einbauen.
-
MySQL hat einen Connector für .NET.
Die Dokumentation dazu findest du hier.
-
C++ ist das aber nicht.
Verschoben -> Windows
-
Wie lautet denn die Fehlermeldung?
-
Es ist nicht "alles down". Einige Downloads funktionieren nicht, und wir sind leider bisher nicht dazu gekommen, uns darum zu kümmern. Ich bitte um Nachsicht.Musste aber leider feststellen, dass im Download Bereich alles down ist. -
Warum sollte sie nicht funktionieren?1. Warum funktioniert die Ausgabe in der zweiten Listbox mit einem Array?
Da musst du schon den Code dazu zeigen. Und die exakte Fehlermeldung. Nicht "sinngemäß".2. Warum meckert der Compiler dabei bei der dritten Listbox? Sinn gemäß kann er den SubKeyNames() nicht in Array öffnen.
Ich verstehe die Aufgabe so, dass du die Unterschlüssel und Werte des Schlüssels in der 2. Liste anzeigen sollst. Nicht die Werte der Schlüssel in der dritten Liste. Würde auch keinen Sinn ergeben, weil du nicht erkennen könntest, welcher Wert zu welchem Schlüssel gehört.Um die Aufgabe richtig zu lösen muss ich auch die "Unterordner" oder vielmehr die "Unterschlüssel" anzeigen und dann erst die Werte der Unterschlüssel. -
Wenn der Intervall zu niedrig ist werden Tasten doppelt interpretiert
Dann stimmt die Abfragelogik nicht. Ein neues "Drück"-Ereignis sollte nur dann generiert werden, wenn auch zwischendurch ein "Loslass"-Ereigniss eingetreten ist.
-
Du darfst auf Fenster und Steuerelemente nur aus dem Thread zugreifen, in dem sie erstellt wurden.
-
Du willst also gar keine Baumstruktur.
Du willst einfach nur in der dritten Listbox sowohl die Sub-Schlüssel als auch die Werte des in der zweiten Listbox ausgewählten Schlüssels sehen.
Das hätten wir auch einfacher haben können.
private: System::Void listBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e)
{
listBox2->Items->Clear();
RegistryKey^ subkey = Registry::CurrentUser->OpenSubKey(listBox1->SelectedItem->ToString());
for each (String ^eintrag in subkey->GetSubKeyNames())
listBox2->Items->Add(eintrag);
}
private: System::Void listBox2_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e)
{
listBox3->Items->Clear();
RegistryKey^ subkey = Registry::CurrentUser->OpenSubKey(listBox1->SelectedItem->ToString());
RegistryKey^ subkey2 = subkey->OpenSubKey(listBox2->SelectedItem->ToString());
for each (String ^eintrag in subkey2->GetSubKeyNames())
listBox3->Items->Add(eintrag);
for each (String ^eintrag in subkey2->GetValueNames())
listBox3->Items->Add(eintrag + " = " + Convert::ToString(subkey2->GetValue(eintrag)));
}
[/code]Ganz sauber ist das auch nicht. Man sollte die RegistryKey-Objekte direkt als Nutzdaten an die Listbox-Items hängen, anstatt immer zwischen RegistryKey und String zu wechseln. Aber so geht's wenigstens.
-
Solange du nur lesend auf die Registry zugreifst, kann nichts passieren.Funktionen/Methoden haben wir schon erstellt, doch jetzt im Bezug auf die Registry bin sehr verunsichert, weil man sich dieses wichtige "Windowstool?" schnell zerschießen kann und dann nichts mehr läuft.
Es sollte kein Tipp sein. Ich wollte wirklich nur wissen, ob du weißt, was Rekursion ist. Rekursion ist der einfachste Weg, das TreeView zu befüllen.Nach Deinem Tipp müsste ich mir eine Funktion basteln in der es Rekursion gibt und diese dann im "Hauptprogramm" ausgeben? Diese Funktion/Methode müsste dann aber auch mit den "Schlüsseln" arbeiten. Oder nicht?
"Kind" bedeutet Art oder Typ, nicht wie der deutsche Begriff Kind. GetValueKind liefert dir die Information, ob ein Wert ein DWORD oder String oder was auch immer ist.Da fällt mir die Anweisung "GetValueKind" ein. Das was ich bisher darüber weiß ist, dass die Anweisung im Grunde die Unterschlüssel auflisten müsste, weil ich denke das diese Unterschlüssel "Kinder" des darüber liegenden Schlüssels sind.
Kommt darauf an, welche Anforderungen an die Ausgabe in der Aufgabenstellung stehen.Ist es wichtig für die Ausgabe der Werte anzugeben ob es binäre oder strings sind?
Warum willst du die Registry bearbeiten? Du sollst doch nur lesen.Gibt es eventuell eine Seite, auf der man diese ganzen "Bearbeitungsschlüssel" wie SetSubKey unw. etwas einfacher aufgelistet findet und wo die Erklärungen eher für Anfänger verständlich sind?Kannst du bitte mal den genauen Wortlaut der Aufgabenstellung hier posten? Ich glaube, du verrennst dich gerade total.
-
Es gibt keinen Grund, ein internes Projekt anders zu behandeln als eines mit einem externen Auftraggeber. Du nimmst dir durch das Weglassen von Projektteilen nur die Möglichkeit zu zeigen, was du kannst.Habe in meiner Dokumentation ja einen Punkt "Aufgabenstellung", aber kein typisches Pflichtenheft, weil es eben ein internes Projekt ist und mir mehr oder weniger schwammig gesagt wurde: "Mach das". -
Woher wusstest du denn, was der Kunde haben will, wenn du kein Lastenheft hattest?
-
Beim Programmieren stimmt das nicht. Es gibt nicht für jedes Programmierproblem eine fertige Lösung, die man nur noch finden und abschreiben muss. Es gibt bestenfalls Leute, die vorsagen.Wie sagt unser Dozent immer so schön... Man muss nicht genau wissen wie´s geht, sondern wissen wo´s steht -
for each (String ^eintrag in EintragListe)
treeView1->Nodes->Add(eintrag + "Wert" + " = " + Convert::ToString(SchluesselListe->GetSubKeyNames()));[/code]Weißt du, wie man eigene Funktionen schreibt? Weißt du, was Rekursion ist?
Falls nicht, ist die Aufgabe, so wie du sie darstellst, ein paar Nummern zu groß für dich. Möglicherweise hast du sie falsch verstanden.
-
In Einzelfällen kannst du folgendes Benutzen:
using namespace std::cout;
using namespace std::cin;
[/code] Das funktioniert so nicht. Eine Using-Direktive (using namespace ...) erlaubt den Zugriff auf den gesamten Inhalt eines Namespace ohne Angabe des Namespace. Eine Using-Deklaration (using ...) tut das mit einzelnen Namen im Namespace. Also:[code]using std::cout;
using std::cin; -
1. NF ja, der Rest ist Käse.Kann man das so im groben sagen? -
Aber sonst geht's dir noch gut?
-
Dann befüllst du die Steuerlemente wohl nicht richtig. Wenn du nicht den Code dazu zeigst, ist eine genauere Diagnose kaum möglich.Wie man sieht, werden die Werte nicht angezeigt und auch die "Unterordner" vielmehr Unterschlüssel auch nicht.
Die MSDN Library gehört zu den besten Dokumentationen, auch für Anfänger. Man darf eben nicht erwarten, dass man darin Schritt-für-Schritt-Anleitungen findet. Eine Dokumentation ist kein Tutorial.Wir haben dazu auch keinen weiteren Key-Methoden erhalten außer den Hinweis auf die MSDN Library im Netz, die einem Anfänger wie mir nun wirklich nicht hilfreich ist sondern eher noch mehr verwirrt. -
Wo schauen denn deine Mitschüler nach? Oder haben die die Tabelle auswendig gelernt?
-
Gibt es, aber die ist für jeden Prozessortyp anders.Gibt es da irgendwo eine Tabelle wo ich nachschauen kann?In deinem Fall gehe ich davon aus, dass der Lehrer sich diesen Befehlssatz selbst ausgedacht hat.
-
Natürlich sind C und C++ plattformunabhängig.Könnte damit auch "plattformunabhängig" gemeint sein?Das ist es natürlich nicht.
-
Das ist vollkommener Quatsch.Es kommt drauf an, was der Prüfer mit "Betriebssystem-Sprache" meint. Wenn er meint, dass man dazu ein Betriebssystem benötigt, um Programme in C oder C++ auszuführen, hat er vollkommen recht. Kein Prozessor kann ohne ein "Betriebssystem" C/C++ ausführen. Anders ist es zum Beispiel bei Assembler, damit spricht man die Befehle aus dem Befehlssatz des Prozessors direkt an, benötigt also nicht zwingend ein Betriebssystem.Sowohl C als auch C++ und Assembler müssen vor der Ausführung in Maschinencode übersetzt werden. Ob dabei ein Programm herauskommt, das ein Betriebssystem benötigt, ist nicht von der Sprache abhängig, sondern von den Möglichkeiten/Einstellungen des Compilers/Assemblers.
-
Erstens gibt es keine Sprache namens C/C++.
Zweitens habe ich den Begriff "Betriebssystemsprache" noch nie gehört. Was soll das sein?
-
Der Code besteht aus zwei vollständigen Klassen. Den kannst du nicht einfach in einen Button-Handler stecken.Aber es kommen zig weitere Meldungen, wenn ich den ganzen code so unterhalb von "button1.click" platziereDer Code tut auch für sich genommen nichts. Du musst die darin enthaltenen Klassen in deinem Code benutzen.
Füge die beiden Klassen deinem Projekt hinzu, am einfachsten in einer neuen Code-Datei. Dann erstellst du in einem Button-Handler eine neue Instanz von pdf2txt und rufst deren GetText-Methode auf.
CStatusBar im WorkerThread
in C++: Compiler, IDEs, APIs
Geschrieben
Es bleibt dabei: Zugriff auf Steuerelemente nur aus dem erstellenden Thread.