Inhalt von Elementen einer Struktur in einer Struktur indirekt abfragen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Inhalt von Elementen einer Struktur in einer Struktur indirekt abfragen

    Hallo zusammen

    Habe ein kleines Problem bei dem Ich nicht weiter komme.

    Ich möchte kurz Erklären woran Ich arbeite und wo mein Problemchen liegt. Ich schreibe zur Zeit in Visual Studio 2019 in Visual Basic ein Anlagensimulation für Produktionsanlagen. Das Programm simuliert mir Produkt und Palettenfördertechnik und dessen Sensorik, um Produkttransporte zu simulieren. Dafür werden Ansterungssignale aus einer Anlagensteuerung über eine Schnittstelle eingelesen und die Zustände der Sensoren über die Schnittstelle geschrieben. Dafür stehen mir eine Schreib- und Lesefunktion zur Verfügung. Die Anlagensimulation und die Schnittstelle an sich funktionieren würde diese gerne nur etwas optimieren.

    Da Ich mehrere verschiedene Anlagenelemtent habe die unterschiedliche Sensorik besitzen habe ich mir für jeden Anlagentyp eine Struktur angelegt die mehrere Unterstrukturen enthält.

    Die erste Unterstruktur ist ein Sensor

    Quellcode

    1. Public Structure Sensor
    2. Public Angewählt As Boolean
    3. Public Fehler As Boolean
    4. Public Zustand As Boolean
    5. Public Bezeichnung As String
    6. Public Position As Integer
    7. End Structure


    Die Information angewählt sagt mir ob dieser Sensor in der Simulation für dieses Element benötigt wird. Der Zustand gibt an ob der Sensor geschaltet hat. Die Bezeichnung ist für die Schreibfunktion der Schnittstelle wichtig.

    Die zweite Unterstruktur ist eine Ansteuerung

    Quellcode

    1. Public Structure Ansteuerung
    2. Public Angewählt As Boolean
    3. Public Fehler As Boolean
    4. Public Ansteuerungszustand As Boolean
    5. Public Bezeichnung As String
    6. End Structure



    Dies sind dann z.B. so eingebunden

    Quellcode

    1. Public Structure Simulationselement_Palettenförderer
    2. Public Lichtschranke_FT_Anfang As Sensor
    3. Public Lichtschranke_FT_Ende As Sensor
    4. Public Bandansteuerung As Ansteuerung
    5. End Structure


    Was möchte Ich jetzt machen. Ich möchte einer Funktion die Struktur übergeben können. Die Funktion soll die Elemente der Struktur erkennen und mir dessen Inhalt ausgeben.

    Habe es so nur mit einer Variablen als Struktur Sensor probiert

    Quellcode

    1. Public Structure Sensor
    2. Public Angewählt As Boolean
    3. Public Fehler As Boolean
    4. Public Zustand As Boolean
    5. Public Bezeichnung As String
    6. Public Position As Integer
    7. End Structure
    8. Private Sub ButtonTest_Click(sender As Object, e As EventArgs) Handles Button4.Click
    9. Dim Testsensor As New Sensor
    10. 'Aufruf der Funktion
    11. Struktur_auslesen(Testsensor)
    12. End Sub
    13. Public Sub Struktur_auslesen(Daten As Object)
    14. 'Testvariablen erstellen
    15. Dim Bezeichnung
    16. Dim Zustand
    17. 'Elemente der Struktur durchsuchen
    18. For Each Element As System.Reflection.FieldInfo In Daten.GetType().GetFields
    19. 'Wenn die variable der Struktur Bezeichung oder Zustand heißt dann den Wert auslesen
    20. If (Element.Name = "Bezeichnung") Then
    21. Bezeichnung = Element.GetValue(Daten)
    22. ElseIf (Element.Name = "Zustand") Then
    23. Zustand = Element.GetValue(Daten)
    24. End If
    25. Next
    26. 'Schnittstellenfunktion zum schreiben des Sensorzustandes aufrufen
    27. CHWriteBool(Bezeichnung, Zustand)
    28. End Sub


    Was Ich jetzt schon mit den verschiedensten Varianten probiert habe ist die Unterstrukturen zu ermitteln und diese dann aus zu lesen. Und Ich weiss der folgende Code kann so nicht funktionieren deswegen meien Frage wie geht es richtig :)

    Quellcode

    1. Public Structure Simulationselement_Palettenförderer
    2. Public Lichtschranke_FT_Anfang As Sensor
    3. Public Lichtschranke_FT_Ende As Sensor
    4. Public Bandansteuerung As Ansteuerung
    5. End Structure
    6. Private Sub ButtonTest_Click(sender As Object, e As EventArgs) Handles Button4.Click
    7. Dim Testsensor As New Simulationselement_Palettenförderer
    8. 'Aufruf der Funktion
    9. Struktur_auslesen(Testsensor)
    10. End Sub
    11. Public Sub Struktur_auslesen(Daten As Object)
    12. 'Testvariablen erstellen
    13. Dim Bezeichnung
    14. Dim Zustand
    15. 'Elemente der Struktur durchsuchen
    16. For Each Element As System.Reflection.FieldInfo In Daten.GetType().GetFields
    17. If (Element.GetType = Sensor) Then ' Hier würde Ich gerne abfragen ob das Element vom Typ Sensor ist
    18. For Each Unterelement As System.Reflection.FieldInfo In Element.GetType().GetFields
    19. 'Wenn die variable der Struktur Bezeichung oder Zustand heißt dann den Wert auslesen
    20. If (Element.Name = "Bezeichnung") Then
    21. Bezeichnung = Element.GetValue(Daten)
    22. ElseIf (Element.Name = "Zustand") Then
    23. Zustand = Element.GetValue(Daten)
    24. End If
    25. Next
    26. 'Schnittstellenfunktion zum schreiben des Sensorzustandes aufrufen
    27. CHWriteBool(Bezeichnung, Zustand)
    28. ElseIf (Element.GetType = Ansteuerung) Then ' Hier würde Ich gerne abfragen ob das Element vom Typ Ansteuerung ist
    29. For Each Unterelement As System.Reflection.FieldInfo In Element.GetType().GetFields
    30. 'Wenn die variable der Struktur Bezeichung oder Zustand heißt dann den Wert auslesen
    31. If (Element.Name = "Bezeichnung") Then
    32. Bezeichnung = Element.GetValue(Daten)
    33. ElseIf (Element.Name = "Ansteuerungszustand") Then
    34. Zustand = Element.GetValue(Daten)
    35. End If
    36. 'Schnittstellenfunktion zum schreiben des Sensorzustandes aufrufen
    37. Next
    38. CHReadBool(Bezeichnung, Zustand)
    39. End If
    40. Next
    41. End Sub


    Ich hoffe Ich konnte als Hobbyprogrammierer mein Problem rüber bringen und würde mich über Ratschläge freuen

    Lg Christian
    Willkommen im Forum. :thumbup:
    Sensor ist von Dir als eigener Datentyp eingeführt worden, verwende ihn auch so. Aus

    Jimmy schrieb:

    VB.NET-Quellcode

    1. Public Sub Struktur_auslesen(Daten As Object)
    machst Du

    VB.NET-Quellcode

    1. Public Sub Struktur_auslesen(Daten As Sensor)
    und feddich. :thumbsup:
    Und noch dies, arbeite mit Option Strict On:
    Visual Studio - Empfohlene Einstellungen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Und nochwas: Mit Structure kann man in 95% der Fälle keine vernünftige Datenverarbeitung machen. Es muss Class sein.



    Ansonsten hast du da glaub eine richtige Datenverarbeitung am Hals, um das "richtig" umzusetzen solltest du ein relationales Datenmodell implementieren.
    Da steht Technologie für bereit, mehrere sogar.
    Meine Lieblings-Technologie für relationale Datenverarbeitung ist das typisierte Dataset, vor allem, weil man dabei keine Datenbank! braucht.
    Bei deim Problem gibts auch mit Reflection nichts zu tun - also das mit FieldInfo etc. ist sicherlich ein Irrweg.

    Mal Beispiel, wie man relational denken würde, um dein Kram zu modellieren:
    Es gibt Plattenfoerderer, Ansteuerungen, Sensoren.

    Ein Palettenfoerderer hat eine Liste von Sensoren, und eine Ansteuerung.

    Jo, wenn man so modelliert, dann kann man mit Leichtigkeit ein Proggi schreiben, wo man Ansteuerungen eingeben und konfigurieren kann, Sensoren, und den Kram einem (oder auch verschiedenen) Plattenfoerderern zuordnen.

    Guck dir mal vier Views-Videos an, was man mit (einfachen!) typisierten Datasets bereits alles an Oberfläche und Logik aufsetzen kann.
    Speichern ist beim typDataset ein Einzeiler, aber kann sein, dass sich speziell dazu inne 4-Views kein Code-Beispiel findet.
    Aber ist glaub auch einiges weiter verlinkt.



    Aber, weil die Erfahrung lehrt, dass das wichtigste am liebsten überlesen wird, wenn mehrere Anregungen gegeben werden - hier nochmal:

    RodFromGermany schrieb:

    Und noch dies, arbeite mit Option Strict On:
    Visual Studio - Empfohlene Einstellungen
    Hallo Rod

    Danke für deine schnelle Antwort. ja ist richtig ich könnte jetzt im Sub über Daten. auf die Elemente zugreifen. Nur denke es löst noch nicht ganz das was Ich machen möchte. Würde es gerne nochmal erklären. vielleicht kann man es auch schöner lösen.

    Als Beispiel würde Ich Dinge aus dem Haushalt wie eine Kaffemaschine und einen Kühlschrank nehmen.
    Die Kaffemaschine hat einen Sensor für die Wassermenge, einen für die Temeratur. Die Ansteuerungskomponenten sind die Wasserpumpe und die Heizeinheit.

    Quellcode

    1. Public Structure Kaffemaschnine
    2. Public Wasserstand As Sensor ' ->Structure Sensor woraus Bezeichnung, Zustand und Angewählt benötigt wird
    3. Public Temperatur_erreicht As Sensor
    4. Public Wasserpumpe As Ansteuerung
    5. Public Heizeinheit As Ansteuerung
    6. End Structure


    Quellcode

    1. Public Structure Kühlschrank
    2. Public Temperatur_erreicht As Sensor
    3. Public Kühlagregat As Ansteuerung
    4. End Structure


    Habe jetzt zwei Funktionen (Eine Daten lesen und eine Daten schreiben) die Informationen und Steuerbefehle mit einem anderen Programm austauscht.
    Der Zustand in der Sensorstructur muss geschrieben werden und der Ansteuerungszustand aus der Structur Ansteuerung muss gelesen werden. :

    Quellcode

    1. Kaffemaschine.Wasserpumpe.Ansteuerungszustand = CHReadBool(Kaffemaschine.Wasserpumpe.Bezeichnung)
    2. CHWriteBool(Kaffemaschine.Temperatur_erreicht.Bezeichnung , Kaffemaschine.Temperatur_erreicht.Zustand)


    Was möchte Ich jetzt machen. Ich möchte eine Funktion Stuktur_auslesen haben der Ich die komplette Stuctur übergeben kann, die aus unterschiedlich vielen Strukturen Sensor und Aktoransteueruing besteht. Die Funktion soll die Struktur auslesen und alle Sensorstrukturen mit CHWriteBool schreiben und alle Ansteuerungen mit CHReadBool einlesen.


    Quellcode

    1. ' Einmal aufruf mit der Struktur Kaffeemaschine
    2. Struktur_auslesen(Kaffemaschine)
    3. 'Einmal mit der Strukltur Kühlschrank
    4. Struktur_auslesen(Kühlschrank)


    Was soll mir das gnaze bringen. Morgen gibt es die Einheit Wassboiler mit 3 Sensoren und 2 Ansteuerungen usw. Die möchte Ich als Struktur anlegen und dann der Struktur_zerlegen Funktion übergeben und diese soll halt dann ohne umprogrammieren das senden und Empfangen übernehmen.

    Lg Christian
    verstehe nicht genau wie du daten auswerten willst

    normalerweise legt mann grundsätzliche Stammdaten ..
    in einer Datenbank mit Tabellen oder wie schon erwähnt mit..das typisierte Dataset...
    ich bevorzuge gleich eine Datenbank zuverwenden.
    wenn ich jetzt dein Bsp. mit Kaffeemaschine und Sensor nehme wär meine erste Idee

    1)Tabelle Kaffenmaschinen
    die Felder wären:
    Bezeichnung
    Hersteller
    Füllmenge
    Farbe etc...
    und dann deine Relation zu Sensor
    also noch ein Feld für den verwendeten Sensor

    oder wenn dort zig verschiedene verbaut sein können noch eine zwischen Tabelle
    mit allen Sensoren

    wie ich die sache sehe möchtest du gleich die 'End Abfragen' ausführen ohne über
    die Stammdaten nachzudenken

    oder ich habe dein Ziel nicht verstanden
    @Jimmy Ich glaube, die Aufgabe überfordert Dich etwas. Sorry.
    Auch sehe ich noch nicht ganz durch was Du erreichen willst, aber vielleicht dies zum globalen Einstieg in die Ansteuerung komplexer Maschinen:
    Arbeite mit Interfaces.
    Arbeite mit Klassen (nicht Strukturen), die Interface implementieren.
    Arbeite mit einem PlugIn-System, wo Du z.B. eine Kamera-Ansteuerung mit einem Interface beschreibst und dann die konkrete Ansteuerung einer Müller-, Meier oder Lehmann-Kammera über das Kamera-Interface durchführst.
    Wie erstelle ich ein PlugIn System unter VB.NET (Framework 2)
    Erstellen eines Plugin-Systems mit VB.NET und MEF ab .NET 3.5
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Willkommen im Forum.

    Was ich verstanden habe: Du hast unterschiedlich komplexe Objekte, die unterschiedliche Anzahl von Sensoren haben. Deren Werte willst Du auslesen und beschreiben. Um Dich nicht mit der Komplexität eines Geräts auseinanderzusetzen, willst Du eine Prozedur, die allgemein ein Gerät entgegen nimmt und sich um die Sensorenauswertung kümmert.

    Was ich nicht verstanden habe: Was machen die Funktionen CHReadBool und CHWriteBool? Sag jetzt bitte nicht, einen Boolean-Wert setzen oder auslesen. Denn wie soll eine allgemeine Funktion aus einer Gerätbezeichnung einen Boolean-Wert herzaubern können? Da müssten die beide Funktionen ja die Geräte kennen. Von daher: Wie arbeiten diese Prozeduren? Wenn das externe Prozeduren sind, müsstest Du ja fixe Bezeichnungen vorgegeben haben, da die bestimmt nicht damit z.B. problemlos arbeiten: CHWriteBool("VaporiZed", True)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo zusammen

    Erst nochmal vielen Dank für die herzliche Aufnahme hier im Forum. Wie man anhand meiner Fragen vielleicht feststellen dürfte komme Ich urspünglich aus der Anlagensteuerungstechnik und habe die absoluten Grundlagen im Studium gelernt und mir versucht den rest selber bei zu bringen und mich jetzt weiter zu entwickeln. Deswegen bin Ich wirklich für alle Anregungen dankbar auch die besagen, dass ich vollkommen falsche Richtung denke.

    Also Ich habe 3 Komponenten die zusammen Arbeiten.
    Die erste Komponente ist "PLC SIM Advanced" von der Firma Siemens. Falls es jemand kennt. Dieses programm Simuliert eine Anlagensteuerung und arbeitet ein Steuerungsprograsmm einer Anlage ab. In dem Ablaufprogramm werden Sensoren (Lichtschranken, Endschalter Taster usw) in Form von boolischen Eingängen aber auch als Integer Werte (Temperaturen, Drücke usw) abgefragt und Motoren über Ausgänge bei uns zumeist auch boolisch gesteuert.

    Damit Ich die Eingänge (Sensoren) nicht manuel setzen muss um mein Programm zu testen habe Ich mir eine Simulationprogramm geschrieben, über das wir gerade reden. Dieses Programm kommuniziert über eine API Schnittstelle mit dem Programm PLC Sim Advanced. Die Ein- und Ausgänge in PLC Sim Advanced haben einen eindeutigen Namen in der Steuerung. Soll der Ein-oder Ausgang über die Api Schnittstelle beschrieben werden gibt es die Funktionen LeseBool, LeseInt, LeseReal usw...und das selbe für das schreiben. @VaporiZed Die Bezeichnung wird dafür benötigt mit der Schreibfunktion über die API den Ein- Bzw Ausgang im externen Simulationsprogramm zu beschreiben.


    Was kann Ich schon in meinem Programm machen.

    Man kann sich einen Förderer für z.B. eine Palette mit Produkt zusammenstellen. Z.B Mein Förderer hat einen Sensor am Anfang und einem am Ende. Der Sensor am Anfang heißt F1.Anfang als String und der am Ende F1.Ende. Den Förderer will Ich in Richtung R1 Fördern lassen mit dem Ausgang F1.R1. Nach der Konfiguration hat dieser Förderer jetzt 2 Sensoren und eine Ansteuerung. Wenn Ich jetzt eien virtuelle Palette auf den Anfang der Fördertechnik platziere wird der Sensor F1.Anfang von dieser viruel belegt (True). Jetzt gibt es fest programmiert schreibe mit WriteBool() für den Sensor F1.Anfang an das externe Programm, das de Eingang F1.Anfang den Wert true hat und F1.Ende false.
    In der Ablaufsteuerung ist jetzt z.B Programmeirt wenn F1.Anfang belegt schlte Förderer ein bis F1.Ende belegt. Also setzt diese den Ausgang F1.R1. Der Zusatnd es Ausgangs wird jetzt in meinem Programm über CHReadBool() über den Namen F1.R1 ausgelesen.

    Ist der Wert jetzt True wird die Palette in meiner Simulation über die Fördertechnikm in Förderrichtung R1 bewegt. Dabei frage Ich die Position der virtuellen Palette ab. Ist diese nicht mehr mit den Pixeln über dem Sensor F1.Anfang wird dieser wieder auf Fals geschaltet. Nach einer zeit x hat die Palette den Sesnor F1.Ende erreicht (Picturbox liegt mit den Koordinaten über dem Sensor F1.Ende) so wird der Sensor auf True geschaltet und ebenfalls an die Simulationssteuerung übertragen. Dort setzt das Ablaufprogramm seinen Ausgang zurück. So konnte das Ablaufprogramm für diesen Transport getestet werden ohne reale Anlage.

    Damit das nicht bei einem Förderer bleibt kann Ich mehrer Förderer hintereinader Schalten auf die die Palette nach erreichen Förderer Ende auf den nächsten Förderer übergeben wird.

    Ich habe in meiner Anlage festgelegt, dass Förderer maximal 4 Sensoren und 2 Ansteuerungen haben können. Es gibt aber mehr als nur Förderer, Drehtische, Hubtische usw. die unterschiedliche Anzahl Sensoren haben. Für jeden dieser Typen habe Ich die Funktion fürs Senden und Empfangen der Daten zu der Simulationssteuerung fest programmiert, also eienr Kommunikationsfunktiomn die Struktur Förderer übergeben und diese sendet 4 Sensoren und 2 Ansteuerungen. Dann gibt es eine Sendefunktion Hubtisch mit 6 Sensoren und 4 Ansteuerungen.

    Was Ich gerne hätte wäre einen Kommunikationfunktion die ein Struktur als Object übergeben bekommt. Die Funktion soll die Struktur Element für Element durchgehen. z.B. erstes Element Sensor1 also soll diese den inhalt nehmen und diesen über die WriteBool Funktion übertragen. Als nächstes kommt Senor 2 danach Ansteuerung1 also diese lesen.

    Hoffe konnte etwas mehr Klarheit in meine Anforderung bringen.

    :)


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Jimmy“ ()

    Jimmy schrieb:

    die ein Struktur als Object übergeben bekommt
    Grundirrtum der Epoche.
    Strukturiere Deine Daten so, dass Du kein Object, sondern ein MyDataBaseObject übergeben kannst, wo Namen und Typen und die Daten selbst drinne stehen und daraus der korrekte Datentyp festgestellt werden kann.
    Dazu musst Du Dir natürlich eine clevere Datenstruktur ausdenken, und mach da ne Klasse draus, keine Struktur.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nehmen wir an, Du hast einen Gegenstand mit 4 Sensoren und 6 Ansteuerungen. Und einen mit 8 Sensoren und 10 Ansteuerungen. Wer legt wie fest, in welcher Reihenfolge wann was durch wen an- oder ausgeschaltet wird?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Jimmy schrieb:

    Hoffe konnte etwas mehr Klarheit in meine Anforderung bringen.
    Jo, und was ich in post#3 erstmal mutig annahm - nämlich dass du eine richtige Datenverarbeitung am Hals hast - sehe ich voll bestätigt.
    Ich erwähnte dort auch den Lösungs-Ansatz, und nach deiner Präzisierung bin ich nun ganz sicher, dass an der erwähnten relationalen Datenmodellierung kein Weg vorbei geht.

    Vielen Dank fürs Ignorieren - das schrieb ich ja auch schon: Das Wichtigste wird meist übersehen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    @VaporiZed Also wiviel Sensoren es für was gibt wird durch mich und die Konstruktionsabteilung festgelegt. Jeder Förderer der ein Aufgabe erfükkt hat ein gewisen Anzahl fester und eine gewisse Anzahl optionaler Sensoren. Aus diesen kann der Programmierer dann für seine Simulation auswählen.

    Aber aus euren Tips nehme Ich jetzt mit, dass Ich mich erstmal mehr mit Datenmodelen und Datenverarbeitung auseinader setzen sollte bevor Ich weiter mache.

    @ErfinderDesRades
    Sorry habe das was du geschrieben hast absolut nicht ignoiert sonder mit Interesse aufgenommen und für mich fürs weiter vorgehen mit einbezogen. Habe nur gesehen, dass Ich es leider nicht im weiteren nicht erwähnt hatte. Sorry. Hatte es aber gelesen :)

    Jimmy schrieb:

    Aber aus euren Tips nehme Ich jetzt mit, dass Ich mich erstmal mehr mit Datenmodelen und Datenverarbeitung auseinader setzen sollte bevor Ich weiter mache.
    Also dieses kannst du sofort tun:

    RodFromGermany schrieb:

    Und noch dies, arbeite mit Option Strict On:
    Visual Studio - Empfohlene Einstellungen
    (ca. 15min).

    Und dann guckste mal kurz in 4 Views rein und lernst geschwind ein typisiertes Dataset anlegen (ca. 30min).

    Dann kannste auch schon erste Tabellen konzipieren.
    Also was du hier immer als "Struktur" vorgestellt hast - das ist ja bereits Datenmodellierung (nur nicht relational, und mit ungeeigneten Mitteln) - die muss glaub sogar 1:1 in die Tabellen einfliessen. Also deine Struktur-Namen werden Tabellen-Namen, deine Struktur-Properties werden Tabellen-Spalten.
    Hinzu kommen Primär- und dann auch Fremdschlüsselspalten - aber dazu im Tut.

    Jo, und dann Bildle davon posten, dann könnemer dir das alles wieder schön kaputtreden.
    Optimal wäre noch ein gezipptes Projekt mit dem Dataset anhängen, dass man mit Leichtigkeit Gegenvorschläge unterbreiten kann.

    Also wenn du dich drauf einlässt, kanns verhältnismässsig flott vorangehen.