RB-Softarticle
-
Gesamte Inhalte
8 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von RB-Softarticle
-
-
Sieht gut aus.
Nur als Tipp, schreibe den Code so wie unten, ist Übersichtlicher.
Nimm die Klammern runter und gewöhne Dir an, bei einer Schleife die nur eine Befehlszeile hat, die Befehlszeile in Geschweiften-Klammern einzuschließen.
#include "stdafx.h" using namespace System; ref struct listenelement { String ^daten; listenelement ^next; }; listenelement ^einfuegen(String ^datenneu, listenelement ^listenende) { listenende->next = gcnew listenelement; listenende = listenende->next; listenende->daten=datenneu; return listenende; } void ausgeben(listenelement ^listenanfang) { listenelement ^hilfsHandle = listenanfang; Console::WriteLine("{0}",hilfsHandle->daten); while (hilfsHandle->next != nullptr) { hilfsHandle = hilfsHandle->next; Console::WriteLine("{0}",hilfsHandle->daten) ; } } int main(array<System::String ^> ^args) { listenelement ^listenanfang = gcnew listenelement; listenelement ^listenende = listenanfang; listenanfang->daten = "Element 0"; for (Int32 schleife=1;schleife<3;schleife++) { listenende = einfuegen("Element "+schleife,listenende); } ausgeben(listenanfang); return 0; }
-
Moin jugiii,
das Listenende übergibst Du ja nach jedem einfügen an die main().
Aber Du übergibst noch immer den Listenanfang als Argument beim einfügen.
Und gesht somit durch die ganze Liste, bis hilfsHandle->next != nullptr ist.
In next steht der letzte Eintrag, nur so als Tipp.
Gruß, René
-
Warum willst Du da mit der Bank sprechen, was soll Dir die Bank anbieten können?
Erkläre bitte mal genau was Du von der Bank erwartest.
Ich habe viel Zeit mit OCR verbracht.
Damals waren das Rechnungen von Krankenkassen und Krankenhäuser.
Dir Rechnungen wurden eingescannt und dann durch die OCR zugeordnet und in einer Datenbank gespeichert.
Damit wurden offene Posten ermittelt.
Bau doch in den Verwendungszweck eine Rechnungsnummer ein, die z.B. mit RE beginnt, dann suchst Du per OCR nach RE und die Nummer danach ist die Rechungsnummer. Sollte funzen und die Bank kann Dir da bestimmt nicht helfen. In vielen Fällen kannst Du die Kontoauszüge auch als PDF downloaden.
Denk mal drüber nach.
Gruß
René
-
Hallo Lars M
Ich würde Dir C++/CLI empfehlen.
Auf sicher ist der Einstieg in C++ alles andere als leicht, aber abgerechnet wird später.
Es kommt auch immer darauf an was man machen möchte, aber die Möglichkeiten in VB sind doch eher eingeschränkt, leider.
Ich persönlich arbeite mit C++/CLI.
Ich gebe Dir mal ein Link zu C++ Open Books.
Galileo Computing :: C von A bis Z
Ich bin noch nie an die Grenzen von C++ gestoßen.
Der Vorteil von C++ 2005 liegt auch klar auf der Hand, man kann managend und unmanagend Code (in ein und dem selben Projekt) schreiben.:uli
Wenn Du die Visual C++ 2005 Express Edition noch nicht hast, lade Sie Dir doch bei Microsoft kostenlose runter.:mail
Gruß René
-
Hallo Neuling5
Komm lass uns das Ding jetzt Durchziehen.
Glaub mir das ist nicht so schwer.
Ich gebe Dir jetzt die Funktion einfügen.
Das ist echt nicht schwer, wenn man in die richtige Richtung denkt.
//neues Element am Ende der Liste einfügen void einfuegen(String^ datenneu, listenelement^ listenanfang) { //ein Hilfshandle zum Wandern in der Liste listenelement^ hilfsHandle = listenanfang; //ein Hilfshandle zum speichern der vorgänger Adresse listenelement^ previousAddress; //Durch die Liste gehen, bis das letzte Element erreicht ist while (hilfsHandle->next != nullptr) { hilfsHandle = hilfsHandle->next; } //die Aktuelle Adresse im Hilfshandle zwischenspeichern previousAddress = hilfsHandle; //neues Element erstellen hilfsHandle->next = gcnew listenelement; //Hilfshandel auf das neue Element setzen hilfsHandle = hilfsHandle->next; //Die vorgängeradresse im neuen Handle speichern hilfsHandle->previous = previousAddress; //Zeichenkette im neuen Element eintragen hilfsHandle->daten = datenneu; //nullptr wird automatisch zugewiesen! }
Wir können den Code gerne durchgehen, dass ist wichtig damit Du weißt was da passiert.
Gruß René
-
Hallo Neuling 5
Ein Handle (Zeiger) das auf das Ende zeigt brauchst Du in diesem Sinne nicht.
Da ja das Ende der Liste schon im Handle ->next gespeichert ist.
Die Ausgabe ist in diesem Sinne auch recht einfach.
Du brauchst nur eine Schleife die vom Ende der Liste zum ->previous geht, bis previous = nullptr hat.
Das was sehr wichtig ist...
In der Funktion Einfügen, musst Du den previous zuvor speichern dann erst einen neuen Datensatz mit gcnew anlegen und danach den previous im neuen Datensatz speichern.
Solltest Du das nicht machen, hast Du einen previous der immer auf sich selber zeigt.
Das ist in Deiner Ausgabe gut zusehen.
Dann spricht man von einer Rekursion.
Gruß René
-
Wie weit bist Du mit Deiner Liste?
Helfe Dir da aufs Pferd. :upps
Ich vermisse in Deiner ref struct das Handle auf den vorigen Datensatz.
Die ref struct kann so nur eine einfach verkette Liste aufnehmen.
ref struct listenelement { String^ daten; listenelement^ next; listenelement^ previous;//Speichert die Vorgängeradresse };
Gruß René
Zuständig für Firmenwagen?
in Ausbildung im IT-Bereich
Geschrieben
Mach es einfach.
Das ist doch eine schöne Aufgabe in meinen Augen.
Und mach es mit einem Lächeln.
Wenn ich beim Bund eine Mistaufgabe machen musste, weil ich mal wieder negativ aufgefallen bin, habe ich den Ausbilder dabei noch angegrinst.
Das hat ihm am meisten genervt, obwohl mir der Käse richtig auf die Nerven ging, lass es Dir aber nicht anmerken.
„Das ist zu einfach, Drill Sargent“.
Und siehe es mal so, sei froh das Du da mal rauskommst.
Und wie schon oben gesagt, lass das Ding mal richtig durchgucken.
Gruß