Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9.912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Beiträge von Klotzkopp

  1. Ich verstehe diesen Satz so: Im dritten Listenfeld sollen alle Unterschlüssel und alle Einträge angezeigt werden. Also Sowohl als auch.
    Ja, aber nur die des in der 2. Listbox ausgewählten Schlüssels. Keine Rekursion.

    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.

  2. 1. Warum funktioniert die Ausgabe in der zweiten Listbox mit einem Array?
    Warum sollte sie nicht funktionieren?

    2. Warum meckert der Compiler dabei bei der dritten Listbox? Sinn gemäß kann er den SubKeyNames() nicht in Array öffnen.
    Da musst du schon den Code dazu zeigen. Und die exakte Fehlermeldung. Nicht "sinngemäß".

    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.
    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.
  3. 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.

  4. 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.
    Solange du nur lesend auf die Registry zugreifst, kann nichts passieren.

    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?
    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.

    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.
    "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.

    Ist es wichtig für die Ausgabe der Werte anzugeben ob es binäre oder strings sind?
    Kommt darauf an, welche Anforderungen an die Ausgabe in der Aufgabenstellung stehen.

    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?
    Warum willst du die Registry bearbeiten? Du sollst doch nur lesen.

    Kannst du bitte mal den genauen Wortlaut der Aufgabenstellung hier posten? Ich glaube, du verrennst dich gerade total.

  5. 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".
    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.
  6.  for each (String ^eintrag in EintragListe)
    treeView1->Nodes->Add(eintrag + "Wert" + " = " + Convert::ToString(SchluesselListe->GetSubKeyNames()));[/code]

    Damit ist es natürlich nicht getan. Das ist dasselbe, was du mit den Listboxen machst.

    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.

  7. 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;

  8. Wie man sieht, werden die Werte nicht angezeigt und auch die "Unterordner" vielmehr Unterschlüssel auch nicht.

    Dann befüllst du die Steuerlemente wohl nicht richtig. Wenn du nicht den Code dazu zeigst, ist eine genauere Diagnose kaum möglich.

    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.
    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.
  9. 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.
    Das ist vollkommener Quatsch.

    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.

  10. Aber es kommen zig weitere Meldungen, wenn ich den ganzen code so unterhalb von "button1.click" platziere
    Der Code besteht aus zwei vollständigen Klassen. Den kannst du nicht einfach in einen Button-Handler stecken.

    Der 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.

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...