Laden...

Forenbeiträge von Michael1995 Ingesamt 22 Beiträge

15.12.2020 - 10:04 Uhr

Servus,

genau das war der Haken.
musste nur Folgendes machen:
var FH = FHs.next();
und dann Zugriff darauf: FH.uname

Danke dir, habe ich vor 2 Tagen aber schon geschafft 😁 👍

11.12.2020 - 19:04 Uhr

verwendetes Datenbanksystem: MongoDB

Servus zusammen,

anbei hochgeladen die Aufgabenstellung.
habe mich jetzt einigermaßen viel mit MongoDB beschäftigt, doch die Lösung will einfach nicht klappen. Meine Grundidee, einfach die Unis in die variable FHs speichern (=Cursor). Und anschließend diese Unis durchgehen, alle Forscher dazu finden. und die einzelnen Forscher in der verschachtelten Schleife ausgeben.
Irgendwie denke ich, stimmt das FHs.uname nicht ganz? Dies war eine Aufgabe davor möglich, da ich eine Variable verwendet habe (die ich durch findOne-Methode generiert habe aber).
zur Info: uniname ist Feldname der Collection forscher, uname ist Feldname der Collection uni.

Mein Code:

var FHs = db.uni.find({gruendungsdatum: {$lt: "1975-1-1"}});

while (FHs.hasNext()) {
	FHs.next();
	var FHForscher = db.forscher.find({uniname: FHs.uname});
	while(FHForscher.hasNext()) {
		printjson(FHForscher.next());
        }
}

Aufgabe:

Die Namen aller Forscher aller Hochschulen mit Gründungsdatum vor dem
1.1.1975.
Auch hier sind zwei Schritte notwendig: zuerst einer Variablen die gesuchten
Hochschulen zuweisen (über find(), das erzeugt einen Cursor). Dann den
Cursor über die gefundenen Hochschulen iterieren lassen (Methoden
hasNext() und next() und dabei für jede Hochschule ihre Forscher finden
(erzeugt wiederum einen Cursor) und danach über diesen zweiten Cursor die
Namen der Forscher ausgeben (Methoden hasNext(), next() und printjson().

Danke schonmal für die kommenden Anregungen 😉

05.12.2020 - 23:23 Uhr

Danke für deine sehr ausführliche Antwort!

Da Du mit Unity arbeitest, hast Du also eine Desktop-Anwendung. Du kannst Dich also nicht mit einer Online-Datenbank verbinden, weil eine Datenbank niemals direkt über das Internet erreichbar sein darf.

Es wird eine Android-App, sorry habe vergessen, das zu erwähnen. Die DB, wenn wir selbst eine machen, würden wir auf dem Uni-Server platzieren können. Natürlich ist die da "relativ" sicher und nicht öffentlich zugänglich, wir informieren uns hierzu noch.

Klar, gibt tausende fertige Anwendungen, Services oder Frameworks dafür.
Microsoft, Google, Amazon und Co bieten alle solche Tools. Dazu viele Frameworks.

Habe mich dazu vorab auch schon etwas informiert. Finde "Firebase" sehr, sehr interessant auf den ersten Blick, mal sehen, sagt dir das was?

Biete den Leuten an, dass sie ihren Microsoft, Google, Facebook..... Account für den Login verwenden, dann kommst Du erst gar nicht in die Situation, dass Du Anmeldedaten verantworten musst oder verlieren kannst.

Finde ich sehr interessant, sich z.B. mit Google einloggen zu können.

Vielen Dank für deinen Text, wir werden die Punkte mal durchgehen und dann weiterschauen. 👍

05.12.2020 - 20:50 Uhr

Servus zusammen,

im Rahmen unseres Studienprojekts werden wir ein Multiplayer-Spiel (1v1) mit Unity erstellen.
Die erste UI + Spiellogik stehen und funktionieren soweit (Spiel gegen CPU, noch nicht Multiplayer).
Screens für Registrierung und Anmeldung sind auch in der UI schon erstellt.

Wie würdet ihr bezüglich dem User-Management vorgehen?

Meine Idee war es, hierfür eine Datenbank online anzulegen, die sämtlich Nutzerdaten speichert (Username, Passwort, Punktzahl, usw.) Was auch noch gleichzeitig eine coole Übung für Datenbanken wäre.
Habt ihr hier Erfahrungen über bestehende fertige Tools, oder macht es Sinn wirklich eine Datenbank mit den Infos der Nutzer anzulegen? Bedeutet das immensen Aufwand, oder ganz OK?
Also habe es mir für den Anfang so vorgestellt, dass man sich registriert, dann anmeldet, geprüft wird von der Anwendung, ob das ein gültiger Benutzer mit richtigem PW ist und dann man beispielsweise schon ein Singleplayer-Game mal starten kann. (PvP folgt dann noch).
(btw. später wollen wir den Multiplayer mit Server vom Mirror Networking laufen lassen)

Mit User-Management befassen wir uns gerade das erste Mal und im Internet gibt es dazu zig Infos, sodass man fast den Wald vor lauter Bäumen nicht sieht. Es wäre super, wenn hier jemand etwas zum Thema beitragen kann 🙂 Danke 😁 👍

03.10.2020 - 15:26 Uhr

Was haltet ihr von PostgreSQL?
Verwendet ihr dies bei Projekten?
Hat sich herausgestellt, dass wir damit in unserem Studium in das Thema Datenbanken bzgl. den relationalen Datenbanken einsteigen werden und bei den nicht-relationalen DB werden wir etwas zu MongoDB lernen.

Edit gfoidl: Typo in MonoDB --> MongoDB

30.09.2020 - 09:33 Uhr

Genau, habe es dynamisch gemacht, dass so viele DGVs erstellt werden, so viele Container ich habe von dem bestimmten Typ.

Die Daten werden doch mittels DataSource gesetzt, d.h. umgekehrt kannst du diese auch wieder auslesen:

Hierzu stellt sich mir nur die Frage, wo im Code ich das auslesen soll, ich meine, wenn ich das in der Methode ButtonUpdate_Click mache, dann habe ich doch gar keinen Zugriff mehr auf die DVG.DataSource, da diese bei der Form _Load erzeugt wird. Oder ist ein Button zum Updaten gar nicht nötig? Bin mir noch immer nicht sicher, wie ich das eingelesene XML nachdem Ändern in der DGV saven kann.
Außerdem soll der geänderte Text natürlich dann auch im neuen XML abgeändert sein.

An sich verstehe ich, dass ich den DataSource einer Liste mit "as" hinzufüge. Aber wo im Code soll das geschehen? Die anderen beiden Links lese ich auch gleich mal durch, wie du bemerkt hast, bin ich Anfänger 😉
Danke für das schnelle Antworten hier immer.

28.09.2020 - 23:09 Uhr

Guten Abend,

habe jetzt ein Problem hierzu. Habe alle string-Container in DataGridViews jetzt stehen. Wenn ich jetzt als Nutzer, Wörter abändere z.B. und dann auf den Button "Speichern" drücke, dann kann das wohl nicht gespeichert werden, da das DGV quasi nirgends abgespeichert ist. Kann das sein? Für jeden Container, den ich habe erstelle ich eine DGV, um die Wörter anzeigen zu lassen.

Wird der Aufwand groß das umzuändern? Bzw. gibt es keine Möglichkeit, die abgeänderten Daten von der GUI ins XML zu bekommen? bin grad echt etwas am Verzweifeln....

Danke schonmal.

Hier der Code:


for (int i = 0; i < QuantityOfContainers; i++) {
                if (PropertiesOfDPCS[i].PropertyType != typeof(List<string>)) {
                    continue;
                }
                DataGridView DGV = new DataGridView();
                DataGridViewTextBoxColumn Col = new DataGridViewTextBoxColumn();
                Col.HeaderText = PropertiesOfDPCS[i].Name;
                DGV.Columns.AddRange(Col);

                this.Controls.Add(DGV);
                //DGV.ColumnCount = 1;
                DGV.Location = new Point(Width, 35);
                Width += 160;
                DGV.Size = new Size(150, 400);

                DGV.DataSource = GetListForCurrentLoop(DPCS1, PropertiesOfDPCS[i].Name);
                DGV.Show();

            }

07.09.2020 - 01:32 Uhr

jep sehr gut, werde das OnlineBook mal durchgehen 😉
die grundsätzlichen Dinge zu OOP sind mir bewusst, aber ich denke schadet nicht nochmal drüber zu gehen und gleich die C#-Syntax zu lernen.

06.09.2020 - 23:55 Uhr

ok danke;)
ja bei Java, private final String name;

da steht auch das final mit drinnen, deshalb kam ich auf das const 😉

aber ok das reicht dann erstmal ;9
danke.

06.09.2020 - 23:11 Uhr

Guten Abend zusammen,

bitte um Hilfe hier bei dieser doch einfachen Frage.
Da ich gerade die Basics von C# lerne, bin ich hier ned ganz sicher, bzw. komme ned ganz weiter. In Java ist es so, dass mit dem Schlüsselwort "final" eine Eigenschaft einer Klasse unveränderbar gemacht werden kann, sprich eine Konstante.

Ich will jetzt in C# Folgendes machen:

class Character {

        //Attribut
        public const string Name { get; } 

set habe ich natürlich weggelassen, da der Wert ja unveränderlich sein soll.
bei get wird angezeigt: "get ist im aktuellen Kontext nicht vorhanden"

Das ganze initialisiere ich dann weiter unten mit einem Konstruktor, sprich der Wert Name wird zugewiesen.

Könnt ihr hier kurz helfen? danke

edit: was mir jetzt grad auffällt, ist es möglich das "const" wegzulassen, denn wenn kein set dabei steht, es dann eh quasi nur einmal über Initialisierungskonstruktor zuweisbar ?

04.09.2020 - 18:21 Uhr

verwendetes Datenbanksystem: <SQL>

Servus zusammen,

mal eine Anfängerfrage: Habe gesehen, dass wir im nächsten Semester in meinem Studium (Wirtschaftsinformatik) Datenbanken haben, speziell auch SQL.

Will mich da schon mal vorab etwas informieren, mir ist aufgefallen, mySQL und SQL-Server sind 2 verschiedene Systeme. Worin besteht denn da der Unterschied? Macht es Sinn beides anzuschauen? Was ist euch lieber? Wie groß sind die Unterschiede? Welche allgemeinen Tipps habt ihr für einen Datenbank-Anfänger?

Danke schonmal 😉

01.09.2020 - 21:00 Uhr

Außerdem kann man eine List<string> nicht direkt an ein DGV binden, denn dann sieht man nur die Länge der Strings, s.a.
>
(also entweder mit einer Wrapper-Klasse oder per LINQ)

Danke hierfür, das war eben das knackigste. Bin zurück ausm Urlaub und habe das eben weitergemacht. Hat funktioniert, und danke auch für die anderen Tipps 👍

Wie speichert man jetzt Änderungen, also wenn der Nutzer Änderungen in der DataGridView vornimmt?
Meine erste Überlegung wäre, einen Button "Speichern" einzufügen, sobald der Nutzer etwas geändert hat, sodass die Änderungen gesavt werden. Funktion des Buttons wäre "Serializen", sodass dies im XML gespeichert ist. Denkt ihr der Ansatz ist korrekt? 🙂

05.08.2020 - 14:09 Uhr

Servus zusammen 😉

ich überlege mir gerade, wie ich verschiedene Wörter von Containern am besten darstellen und auch verändern kann.

Habe aus einer XML die Daten gelesen (deserialisiert) und diese Wörter will ich nun in Spalten von den jeweiligen Containern darstellen. Für Adjektive und Objekte habe ich es provisorisch probiert. Leider erscheinen die Wörter nicht....
Habe auch einen anderen Ansatz versucht, die jeweiligen Container zu durchlaufen und dann in einer Methode (Print) diese jeweils als ListViewItem anzuhängen. Hier ist aber das Problem, dass der User später nicht die Werte schön ändern kann und alles in einer Spalte ist...

Hätte von euch jemand nen Tipp, wie man das "schön" lösen kann, wie gesagt, würde ich gerne eigl. die DataGridView verwenden, doch leider fällt es mir schwer, die Wörter in die jeweilige Spalte zu bekommen, bzw. bleibt diese einfach leer.

Probiere es heute wahrscheinlich noch den ganzen Tag weiter, könnt ja gerne was dazuschreiben.
Vielen Dank 😉


private void CreateContainer_Load(object sender, EventArgs e) {
            
            OpenFileDialog OFD = new OpenFileDialog();

            if (OFD.ShowDialog() == DialogResult.OK) {
                string path = OFD.FileName;

                XmlSerializer Serializer = new XmlSerializer(typeof(DrainPartContainerStore));
                StreamReader Reader = new StreamReader(path);

                DrainPartContainerStore Store1 = new DrainPartContainerStore();

                Store1 = (DrainPartContainerStore) Serializer.Deserialize(Reader);
                Reader.Close();

                DataGridView1.DataSource = Store1.AdjectiveContainer;
                DataGridView1.DataSource = Store1.ObjectContainer;


                //Store1.AdjectiveContainer.ForEach(Print);
                //Store1.ObjectContainer.ForEach(Print);


        public List<string> AdjectiveContainer { get; set; }

        public List<string> ObjectContainer { get; set; }


  <AdjectiveContainer>
    <string>blaue</string>
    <string>grüne</string>
    <string>dicke</string>
    <string>lustige</string>
    <string>frische</string>
    <string>arme</string>
    <string>reiche</string>
    <string>ziellose</string>
    <string>namenlose</string>
    <string>pünktliche</string>
    <string>saubere</string>
  </AdjectiveContainer>
  <ObjectContainer>
    <string>Bären</string>
    <string>Esel</string>
    <string>Löwen</string>
    <string>Würmer</string>
    <string>Nashörner</string>
    <string>Vögel</string>
    <string>Tiger</string>
    <string>Fliegen</string>
    <string>Ameisen</string>
  </ObjectContainer>

17.06.2020 - 14:03 Uhr

danke, für meinen Zweck vollkommen ausreichend.

17.06.2020 - 11:57 Uhr

Cool danke für deine Antwort.

aber eine so simple Anweisung, dass die Intvervall-Zeit abläuft, und dann erst der nächste Schleifendurchlauf anfängt, gibt es nicht?

Probiere diese Lösung mal aus, habe leider keine Erfahrung mit Asynchronen Methoden

17.06.2020 - 10:26 Uhr

Servus zusammen,

Habe ein Array an Sätzen erstellt (Notions, hier 10 Stück).

Bevor ich ein neues Notion-Objekt erstellen will, will ich nun z.B. 100ms warten.
Wie kann ich dies in die for-Schleife implementieren?
Habe mich da schon mit der Timer-Klasse etwas "gespielt".

Mein bisheriger Versuch:


 Notion[] NotionArr = new Notion[10];

            Timer t1 = new Timer();
            t1.Interval = 100;

            for (int i = 0; i < NotionArr.Length; i++) {
                NotionArr[i] = new Notion();
                Console.WriteLine(NotionArr[i]);
                t1.Start();
                t1.Stop();
            }
            Console.ReadKey();

17.06.2020 - 10:21 Uhr

Servus zusammen,

folgendes Code-Schnipsel habe ich zum Speichern eines Objekts in einer XML-Datei:

Wie sieht dazu parallel der Load-Schnipsel dazu aus? Also um Daten von einer XML zu laden?
Danke schon mal.

public static void Save<T>(T genericObject, string savepath) {
            using (FileStream FStream = new FileStream(savepath, FileMode.Create)) {
                XmlSerializer XmlSer = new XmlSerializer(typeof(T));
                XmlSer.Serialize(FStream, genericObject);

            }
        }
08.06.2020 - 01:42 Uhr

Servus zusammen,

bin gerade dabei Texte einzulesen von einem bestimmen Dateipfad (quasi manuell).

Wie kann ich einstellen, dass der Nutzer dies selbst ändern kann, also quasi über eine Einstelldatei?

Habt ihr dazu evtl. ein passendes Video bei YT oder wisst ihr wie man eine Einstelldatei erstellt? Das Programm sollte so natürlich dann dynamischer sein und kein C:-Link mehr darstellen....

Vielen Dank schonmal 😉

03.06.2020 - 15:33 Uhr

danke für den Beitrag. Würde es gerne bei der Implementierung so wie sie ist belassen, aber es ist ein großer Aufwand, ein Array an ListViewItems zurückzugeben? Hätte ich nicht gedacht, habe sehr viel nach diesem Schema jetzt aufgebaut.
Eigentlich müssten es ja k x i -viele Einträge im Array dann sein, das ich zurückgeben will.

03.06.2020 - 14:33 Uhr

Servus zusammen,

ich habe folgende Frage, wie kann ich bei meinem Code ListViewItems zurückgeben, als Array?

Die ListViewItems werden nach und nach erstellt, doch irgendwie pack ich es nicht, diese in ein Array zu speichern und diese dann zurückzugeben (als ListViewItem[])

Könnt ihr helfen?
Etwas weiter unten im Code der Versuch, des returns...

danke.


public static ListViewItem[] GenerateItems(string[] fileNames) {
            
            for (int k = 0; k < fileNames.Length; k++) {
                string[] Lines = System.IO.File.ReadAllLines(fileNames[k]);

                ListViewItem[] Items = new ListViewItem[Lines.Length];
                

                for (int i = 1; i < Lines.Length; i++) {       // start with i = 1, because in line 0 there is no information
                    string[] SingleWords = Lines[i].Split('~');

                    Items[i] = new ListViewItem("Anfrage");

                    for (int j = 0; j < SingleWords.Length; j++) {
                        Items[i].SubItems.Add(SingleWords[j]);      // add SubItems, quantity depending on quantity of SingleWords-Array              
                    }


                }
     ?           ListViewItem[] ItemsBack = new ListViewItem[Lines.Length];
     ?          return ItemsBack;
            }

        }

27.05.2020 - 10:08 Uhr

Servus Bernd,

genau das habe ich in der Früh vorhin auch schon verwendet und damit mein Problem gelöst, das Dicrectory.GetFiles.
Anschließend mit einer Schleife von jeder Datei die Zeilen ausgelesen. Macht, was es soll 😁 👍

Danke trotzdem 😉

27.05.2020 - 00:17 Uhr

Servus zusammen,

folgende Situation:

ich lese aus einer Datei mit System.IO.File.ReadAllLines(@"C:\Users[...]csv") problemlos eine CSV-Datei ein und speichere diese zeilen in einem Array ab:
string[] zeilen = System.IO.File.ReadAllLines(@"C:\Users[...]csv");
Anschließend erstelle ich ein ListViewItem-Array und lass dann mittels ner Schleife alles durchlaufen und bringe dies schön in mein ListView rein.

Jetzt aber folgender Fall: Wenn ich jetzt andere Dateien in dem Pfad auch noch einlesen will(nur Text von csv-Dateien), wie funktionert dies? Bin schon ewig auf der Suche..., am besten wäre, wenn ich diese Zeilen dann wieder schön in das string[] anschließend reinspeichern könnte. Mir geht´s nur darum, dass sich das Programm noch alle Dateien in dem Ordner raussucht, die mit einem bestimmten Dateinamen anfangen (das ist dann Schritt 2), und diese dann zeilenweise einliest.
Habt ihr Vorschläge?
edit.: bin im .Net-Framework 4.7.2 unterwegs
Vielen Dank. 😁