-
Gesamte Inhalte
9912 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
3
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Klotzkopp
-
Zuerst solltest du die innere und äußere Schleife vertauschen. Momentan vergleichst du erst jede Zelle mit dem ersten Listeneintrag, dann jede Zelle mit dem zweiten usw. Das ist nicht zielführend, weil du dann erst im letzten Durchlauf der äußeren Schleife wissen kannst, ob du löschen darfst. Wenn du aber erst die erste Zelle mit jedem Listeneintrag vergleichst, dann die zweite Zelle usw., kannst du nach jedem Durchlauf der inneren Schleife entscheiden, ob die Zeile gelöscht werden muss. Dazu solltest in der äußeren Schleife, aber vor der inneren Schleife eine Variable anlegen, die speichert, ob du für diese Zeile eine Übereinstimmung gefunden hast. Anfangs steht die auf False. Wenn du in der inneren Schleife eine Übereinstimmung findest, setzt du sie auf True. Und wenn hinter der inneren (aber noch innerhalb der äußeren) Schleife diese Variable immer noch False ist, hast du für diese Zeile keine Übereinstimmung gefunden und kannst sie löschen. Sinngemäß: For Zellen gefunden = False For Listeneinträge if Zelle = Listeneintrag Then gefunden = True Next if Not gefunden Then Löschen Next[/code]
-
Du solltest auch immer dazu schreiben, wie genau das "Nicht-funktionieren" aussieht. Lass mich raten: Bei mehr als einem Listeneintrag wird einfach alles gelöscht? Es soll eine Zeile gelöscht werden, wenn die Zelle mit allen Listeneinträgen nicht übereinstimmt, stimmts? Du löschst aber die Zeile, wenn die Zelle mit irgendeinem Listeneintrag nicht übereinstimmt. Der Effekt bei mindestens zwei unterschiedlichen Einträgen ist, das alles gelöscht wird, denn alles, was auf den ersten Eintrag passt (und damit im ersten Durchlauf stehenbleibt), passt dann natürlich nicht mehr auf den zweiten Eintrag, und wird damit auch gelöscht. Das ist ein Logikfehler in deinem Code. Du musst jede Zelle mit jedem Listeneintrag vergleichen, aber nur, wenn dabei keine Übereinstimmung gefunden wurde, darfst du löschen.
-
Das heißt, das alles funktioniert schon? Wo genau ist denn das Problem? Weißt du nicht, wie du an die Werte in Listbox2 rankommst? Weißt du nicht, wie du Spalte A durchsuchst? Weißt du nicht, wie du eine Zeile löschst?
-
Hast du die grundlegenden Konzepte drauf: Schleifen und Verzweigungen? Was ist mit Funktionen? Klassen? Templates?
-
In deinem ersten Thread hatte ich dir geraten, dich auf's Wesentliche zu konzentrieren. Das sind zunächst mal die Grundfunktionen der Sprache. Wenn du die drauf hast, kannst du anfangen, dich mit grafischen Oberflächen zu befassen, denn dann verstehst du auch, wie die funktionieren. Wenn du C++ ernsthaft lernen willst, solltest du von grafischen Oberflächen erst mal die Finger lassen. Und ganz nebenbei: Ich glaube nicht, dass C++ die Sprache ist, in der du eine Verbesserung deiner Kenntnisse am dringendsten brauchst.
-
Verschoben -> .NET
-
Das ist richtig, für diesen Code müsstest du schon Visual Basic 6 rauskramen. Die Frage ist, tust du das (dann bist du hier richtig), oder willst/musst du es mit VB.NET 2008 machen (dann verschiebe ich dich ins richtige Forum).
-
Der übliche Weg, Code auf mehrere Dateien zu verteilen, sind Headerdateien. Du kannst zu jeder deiner Quellcodedateien eine .h-Datei erstellen, die nur die Deklarationen beinhaltet. Diese Headerdatei kannst du dann in anderen Quellcodedateien, in denen du diese Funktionen brauchst, mittels Includedirektive einbinden: #include "deineheaderdatei.h" Bitte komm nicht auf die Idee, deine Quellcodedateien mit Includedirektiven zusammenzusetzen. Auf lange Sicht bereitest du dir damit nur Ärger. Beispiel: // foo.cpp void foo() { // Hier passiert etwas } [/code] [code]// bar.cpp int main() { // hier wird jetzt foo gebraucht } Du erstellst dann eine foo.h: // foo.h #ifndef FOO_H_INCLUDED #define FOO_H_INCLUDED // Hier die Deklaration der Funktion foo void foo(); #endif [/code] Das #ifndef/#define/#endif-Konstrukt sind die sogenannten Include-Guards. Merk dir einfach, dass eine Headerdatei so etwas haben sollte. Der Name des Symbols (FOO_H_INCLUDED) muss nicht so aussehen, aber er muss sich von dem aller anderen Headerdateien unterscheiden. Traditionell benutzt man Großbuchstaben. Wenn deine Headerdatei fertig ist, kannst du bar.cpp so ändern: [code]// bar.cpp # include "foo.h" int main() { // hier kann jetzt foo benutzt werden foo(); }
-
Ja, das geht. Es gibt dafür aber eigentlich keinen guten Grund. Was willst du denn damit erreichen? Das ist insofern wichtig, als ich dir dazu rate, von dieser Entwicklungsumgebung die Finger zu lassen. Sie ist ziemlich fehlerbehaftet und wird seit einigen Jahren nicht mehr weiterentwickelt. Nimm Code::Blocks oder Microsoft Visual C++ Express Edition.
-
Aber doch nur für die inneren Verknüpfungen des Verbands, oder nicht? Hier geht's aber weder um UND noch um ODER, sondern um die Assoziativität der Äquivalenz, wenn ich's richtig verstanden habe.
-
Ist das der Wortlaut der Aufgabe? Hast du das dann so aufgefasst, dass du das gefundene Wort in das zweite Array kopieren sollst? Das ist eigentlich Quatsch. Du weißt doch genau, welches Wort du suchst, es steckt hartcodiert in deinem Programmcode. Daher brauchst du es gar nicht aus dem durchsuchten String zu kopieren, du könntest es direkt in das zweite Array schreiben, wenn du es gefunden hast. Worauf ich hinaus will: Vielleicht ist das zweite Array für einen anderen Zweck gedacht: Da drin soll möglicherweise vorher stehen, welches Wort gesucht werden soll.
-
Sagt der, der C nicht von C# unterscheiden kann (die Namen, nicht die Sprachen) Nein, das ist kein C++. Das ist C++/CLI. In dem Handler wird überhaupt nichts mit der Textbox oder ihrem Inhalt gemacht. Da wird versucht, von der Konsole einzulesen.
-
Prob mit Funtion und Bedingung
Klotzkopp antwortete auf casper089's Thema in C++: Compiler, IDEs, APIs
Bitte jedes Thema nur einmal posten. Hier geht's weiter. -
Schau dir die Stelle, wo der Programmverlauf vom erwarteten Verhalten abweicht, mit dem Debugger genauer an und prüfe die Variablenwerte.
-
Diese Variable kann nur ein Zeiger sein (also Schnittstelle*), sonst würde die Zuweisung nicht funktionieren. Bei Zeigern benutzt man den Pfeiloperator, nicht den Punktoperator.
-
Im Prinzip läuft es darauf hinaus, ob man seinen Code lieber reentrant oder threadsafe machen möchte. Beides ist nicht ohne erhebliches Nachdenken zu machen. Weder DoEvents noch Multithreading ist eine Silberkugel für solche Probleme.
-
Ausprobieren? Subtraktion. Minus rechnen. Wie nennt man das denn heute in der Schule?
-
Abziehen und eine 1 ausgeben. Danach prüfst du der Reihe nach die nächstkleineren Zweierpotenzen, ob sie in die Zahl reinpassen. Falls ja, abziehen und 1 ausgeben, falls nicht, 0 ausgeben.
-
statisches und dynamisches Linken
Klotzkopp antwortete auf fr33g's Thema in C++: Compiler, IDEs, APIs
Ganz einfach gesagt: Statisches Linken passiert zur Compilezeit, dynamisches Linken zur Laufzeit. Was linkst du denn? Kommt drauf an. Das hast du schon gelesen? -
Da gibt's mehrere Möglichkeiten. Eine wäre, zuerst die höchste enthaltene Zweierpotenz zu ermitteln. Rekursion wäre eine andere.
-
Nachtrag: Ich habe den Link auf dein Rar-Archiv entfernt, weil da ein paar Dateien drin sind, die vermutlich nicht von dir sind, und bei denen somit unklar ist, ob du sie einfach so weitergeben darfst.
-
Wie gesagt, wenn du dran bleibst und dich auf das Wesentliche konzentrierst. Wenn du weiter nur Programme schreibst, die nichts weiter tun als sich selbst zu verlangsamen und fremde Programme zu starten, wirst du in einem Monat genauso weit sein wie jetzt. Du wirst vielleicht noch zwei Möglichkeiten finden, wie man andere Programm startet. Aber du wirst nicht lernen, wie du dein Programm dazu bringst, selbst etwas sinnvolles zu tun. Ich will dich nicht entmutigen. Ich will dir nur aufzeigen, dass das, was du bisher mit der Programmiersprache gemacht hast, nur Spielerei ist, damit kommst du nicht weiter.
-
Ich kann nur den Code beurteilen, den du gezeigt hast, und der sieht nicht so toll aus. Du möchtest vermutlich, dass dein Programm cool aussieht, mit Farben und langsam aufbauenden Texten, aber von solchem Sachen solltest du die Finger lassen, bis du weißt, wie man so etwas richtig macht. Wenn du dran bleibst und dich auf das Wesentliche konzentrierst, ist dir dieser Code in ein paar Monaten ganz furchtbar peinlich.