Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Lens445
Thema: Nächste ungeordnete .xml Datei aus Ordner anzeigen?
Am im Forum: GUI: Windows-Forms

@T-Virus danke, und ja du hast Recht, es zeigt mir immer wieder die gleiche Datei an

@Abt ahh jez hab ichs glaub ich.

            PricingAnalyzer analyzer = new PricingAnalyzer();
            string bla = analyzer.GetNextFile();

            List<Result> list = analyzer.GetAllKschl(bla, fileNameData); //hat hier noch gefehlt

            decimal total = analyzer.GetTotalAmount(bla, fileNameData);

Wie löse ich dass denn wenn ich die Datei Namen nicht in meiner Methode haben will, aber diese ja doch dort brauche? einfach im "Hauptcode" deklarieren?

Thema: Nächste ungeordnete .xml Datei aus Ordner anzeigen?
Am im Forum: GUI: Windows-Forms

Hey,

Ich habe eine Methode

public List<Result> GetAllKschl(string fileNameResult, string fileNameData)
die mir eine Liste mit verschiedenen Elementen und dem Inhalt aus einer ewig langen .xml Datei zurückgibt. (Z.b. Info, Einzelpreis, Gesamtpreis, usw.)

Diese Daten gebe ich in einer DataGridView aus. Okay, funktioniert soweit.

Nun möchte ich einen weiteren Button Next File anlegen, der mir dann aus dem Order eben die nächste Datei anzeigt. Bzw wieder nur diese bestimmte Elemente aus der XML. (in der DGV)

Code für meinen ersten Button:

        string fileNameResult = @"bla.xml";
        string fileNameData = @"blabliblub.xml";
     
        private void button1_Click(object sender, EventArgs e)
        {
            PricingAnalyzer analyzer = new PricingAnalyzer();

            List<Result> list = analyzer.GetAllKschl(fileNameResult, fileNameData);

            decimal total = analyzer.GetTotalAmount(fileNameResult, fileNameData);

            //Gibt die Ergebnisse aus
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource = list;
            txtTotalAmount.Text = total.ToString();
        }

Das funktioniert

der zweite Button:

        private void btnNext_Click(object sender, EventArgs e)
        {
            PricingAnalyzer analyzer = new PricingAnalyzer();
            string bla = analyzer.GetNextFile();

            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource = bla;
        }

So hier für zeig ich mal meine Methode:

        IEnumerator<string> filesEnumerator;
        
        public string GetNextFile()
        {
            filesEnumerator = Directory.EnumerateFiles(@"C:\Pricing\sum", "Result*.xml").GetEnumerator();

            if (filesEnumerator != null && filesEnumerator.MoveNext())
            {
                return filesEnumerator.Current;
            }
            return null;
        }

Jetzt gibt er mir natürlich nichts aus, bzw einfach die ganze Datei, aber ich will ja nur die Elemente wieder haben! (aus der Klasse Result) Muss ich dann die andere Methode auch zusätzlich dort aufrufen? Also versteht ihr was ich meine?

Wieder nur Info, Gesamtsumme, usw. aus der XML Datei filtern und ausgeben, was ich halt mit der anderen Methode mache. Aber ich weiß nicht was ich dann in dem zweiten Button brauche, damit das so funktioniert?

LG

Thema: Windows Forms Taschenrechner erstellen mit eingebauter Logik?
Am im Forum: Grundlagen von C#

Ahh, ja genau, das ist die Methode die ich brauche

Jetzt klappt es, danke! :tongue:

Thema: Windows Forms Taschenrechner erstellen mit eingebauter Logik?
Am im Forum: Grundlagen von C#

Ja, aber dass ist ja nicht mal die Methode die ich brauche.

In meinem Calculator hab ich die Methode:

        public int DezAddieren(int number1, int number2)
        {
            return number1 + number2;
        }

auf die ich ja zugreifen will.

Also meinst du, ich muss dann extra nochmal die inputs als int konvertieren?

Thema: Windows Forms Taschenrechner erstellen mit eingebauter Logik?
Am im Forum: Grundlagen von C#

Hey,

habe zu erst ein Konsolen Programm programmiert dass mir alle Zahlensysteme (Dezimal, Dual, Hex) konvertieren kann und einen Taschenrechner.

Jetzt möchte ich das als WinForms haben, habe den Konvertierer auch schon fertig, aber das mit dem Taschenrechner will nicht so ganz, hab eine Logik mit Rechnungen bereits, deswegen benötige ich doch nur z.B.

        private void btnRechne_Click(object sender, EventArgs e)
        {
            Calculator calculator = new Calculator();
            string input1 = txtInputCalc1.Text;
            string input2 = txtZeichen.Text;
            string input3 = txtInputCalc2.Text;
            string result = string.Empty;

            if (rbDezCalc.Checked)
            {
                if (input2 == "+")
                {
                    result = calculator.DezAddieren(int.Parse(input1, input3));
                }
            }

        }

und input1 passt ihm so, aber bei input3, meckert er
Fehler
Error CS1503 Argument 2: cannot convert from 'string' to 'System.Globalization.NumberStyles'

Ich versteh das nicht

Thema: Dateiname aus Pfad filtern?
Am im Forum: Grundlagen von C#

Ja genau das war der Fehler.. X(

Aber ja jetzt klappt es

Thema: Dateiname aus Pfad filtern?
Am im Forum: Grundlagen von C#

Ok ich hab meinen Fehler gefunden! es funktioniert

                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, fileName);
                }
                string inputFile = Console.ReadLine();

Danke euch für die schnelle Hilfe

Thema: Dateiname aus Pfad filtern?
Am im Forum: Grundlagen von C#

Ahhh danke! Hab ich total übersehen 8o

Aber: jetzt gibt er mir zwar nicht mehr den ganzen Pfad aus, aber dafür nur noch jeweils einen Buchstaben pro Datei

Thema: Dateiname aus Pfad filtern?
Am im Forum: Grundlagen von C#

Hey,

habe hier folgenden Code, der auch funktioniert:

            if (userInput == "1")
            {
                string[] allFiles = Directory.GetFiles(@"C:\Users\Debug", "*.txt");
               
                
                Console.WriteLine("Wähle eine Datei aus, die du öffnen möchtest:", allFiles.Length);
                Console.Write("\n");
                
                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, allFiles[index]);
                    
                    
                }
                string inputFile = Console.ReadLine(); 

                int userIndex;
                if (int.TryParse(inputFile, out userIndex)) 
                {
                    if (userIndex ≥ 0 && userIndex < allFiles.Length)
                    
                    {
                        string selectFile = allFiles[userIndex]; 
                        string readText = File.ReadAllText(selectFile);  
                        Console.WriteLine(readText); 
                    }
                    else
                    {
                        Console.WriteLine("Eingabe außerhalb des Bereichs!");
                    }
                }
                else
                {
                    Console.WriteLine("Kein numerischer Wert!");
                    Console.Read();
                }
                Console.Read();

Jetzt gibt er mir immer den kompletten Pfad aus, ich möchte aber das er mir eben nur den hinteren Teil also den Namen ausgibt.

Wie ihr seht habe ich es bereits mit

                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, allFiles[index]);
                    
                    
                }
                string inputFile = Console.ReadLine();

versucht. Man braucht ja die GetFileName Methode, aber wo liegt den mein Fehler? Finde im Internet nichts dazu und er gibt mir auch keinen Fehler aus

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Klar ich probier es selber, wollte nur wissen ob der Ansatz so stimmt :)

danke :)

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Hey,

danke für eure Hilfe!

was sagt ihr zu diesem Code?

            if (userInput == "1")
            {
                string[] allFiles = Directory.GetFiles(@"C:\Users\Debug", "*.txt");
                Console.WriteLine("Wähle eine Datei aus:", allFiles.Length);
                Console.Write("\n");

                int count = 0;
                foreach (string file in allFiles)
                {
                    count += 1;
                    Console.WriteLine("{0} Datei: {1}", count, file);            
                }
                Console.Read();
                
                string inputFile = Console.ReadLine();

            }

Also es wird mir so als 1 Datei ist blablabla 2 Datei ist blabliblub usw angezeigt.

Kann ich damit dann weiter arbeiten, also dass wenn ich jetzt die 1 auswähle er mir dann den Inhalt von 1 ausgibt

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

echt, brauch ich dafür ne Liste?
Dann muss ich ja erst mal immer alles in die Liste speichern und dann abrufen oder?

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Hey,

habe jetzt folgenden Code:

            if (userInput == "1")
            {
                string[] allFiles = Directory.GetFiles(@"C:\Users\ConsoleApp3\bin\Debug", "*.txt");
                Console.WriteLine("Wähle eine Datei aus:", allFiles.Length);
                Console.Write("\n");
                foreach (string file in allFiles)
                {
                    Console.WriteLine(file);            
                }
                Console.Read();
                string indexFile = Console.ReadLine();

Ich glaube ich stehe gerade auf dem Schlauch, aber ich möchte dass meine Dateien nummeriert in der Konsole erscheinen, sodass man eben eine Datei auswählen kann, also die Dateien werden untereinander angezeigt, aber ohne Nummern davor wie kann ich das ändern?

LG

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Hey 123thomas,

Vielen Dank, hilft mir schon mal sehr viel weiter


@Coffebean

Danke dir auch, werde es jetzt mal testen.

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Hey Abt,

Hab ich sehr wohl gelesen und geschrieben, dass ich das nicht ganz verstehe, da ich nicht verstehe was mein zweiter string sein soll, siehe paar Beiträge weiter oben

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Hey,

Ja genau den Inhalt der dateien brauch ich auch. Aber das Problem ist, in dem Ordner befinden sich eben viele Dateien, z.B. eine mit .exe, oder .pdb. Aber ich will NUR die .txt Datei in meinem Programm lesen, wisst ihr was ich meine? Momentan sieht meine Konsole so aus:

Wähle eine Option aus:

1. Datei öffnen
2. Datei erstellen
1
Das sind alle vorhandenen Dateien:

ConsoleApp3.exe
ConsoleApp3.exe.config

ConsoleApp3.pdb
Hallo.txt


und ich will nur z.B. die Hallo.txt Datei haben.

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Hey,

danke, meinst du GetFiles(String,String) ?

aber ich versteh trotzdem nicht ganz, was mein zweiter string sein soll 8o

LG

Thema: Wie beim Programmstart mehrere Textdateien einlesen?
Am im Forum: Grundlagen von C#

Hey,

bin neu hier und die Frage klingt vllt doof, aber ich hab mehrere .txt Dateien gespeichert und will diese beim Öffnen meines Programms abrufen.
Ich finde nur Befehle und Tutorials für das Einlesen für einen Pfad? Das ist ja nicht schwer, da geb ich einfach den bestimmten Pfad ein, aber wie mach ich das mit mehreren? Die können sich auch immer verändern, heißt einfach "alle" Pfads eingeben geht auch nicht.

Hier mal mein Code:

   if (userInput == "1")
            {
                Console.WriteLine("Das sind alle vorhandenen Dateien:");
                Console.Read();              

                DirectoryInfo di = new DirectoryInfo(@"C:\Pfad wo alle Dateien drin sind");
                foreach (var file in di.GetFiles())
                {
                    Console.WriteLine(file.Name);
                    Console.Read();
                }
                Console.WriteLine();

mein Programm beendet sich einfach immer nachdem es jede Datei abgelaufen ist.
Ich muss ihm jetzt irgendwie noch sagen, dass er alle .txt Dateien anzeigen soll, gibt es da einen bestimmten Befehl den ich übersehen habe?

Bin eben neu im Programmieren

LG

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Vielen Dank für die 'netten' Worte @LaTino.

Kann ichs ja anscheinend gleich sein lassen, wenn es eh zu spät ist.

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Eben, ich will einfach verschiedenes versuchen zu üben

Will dann das ganze auch noch mit XML probieren.. einfach um das mal gemacht zu haben.

Und ich will das Ganze auch nicht mit Helfern oder Librarys machen, sondern eben selber.

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Ja, habe ich vorhin auch selber bemerkt

Aber danke! Hat geklappt

So jetzt muss ich schauen, dass immer wenn ich das Programm schließe, dass dann die gespeicherten Daten angezeigt werden.

Muss ich quasi alles rückwärts machen jez oder? Also Datei lesen, spliten ..?

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

ach so, also fehlt mir sowas wie

File.WriteAllText(@"Name.csv", autos);

? Dass er auch alles in eine Datei schreibt?

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Wenn ich das aber genau so mit dem Debugger durchlaufen lassen, dann zeigt er mir alle vorhandenen Autos an

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

okay, danke schon mal

Aber wenn ich jetzt

CSVWriter.SaveFileAuto(_autos);

in meinen Hauptcode schreibe, dann müssten doch alle Autos gespeichert sein oder?

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

So habe eine Klasse CSVWriter erstellt:

    public static class CSVWriter
    {       
        public static void SaveFileAuto(List<Auto> autos)
        {
            // Erste Zeile (Header für Auto)
            string fileContent = "Hersteller;Modell;Farbe;Kennzeichen" + Environment.NewLine;

            // weitere Zeilen hinzufügen
            foreach (var auto in autos)
            {
                fileContent += auto.Hersteller + ";" + auto.Modell + ";" + auto.Farbe + ";" + auto.Kennzeichen + Environment.NewLine;
            }
        }

        public static void SafeFilePersonen(List<Personen> personen)
        {
            // Erste Zeile (Header für Personen)
            string fileContent = "Vorname;Nachname,Geburtstag" + Environment.NewLine;
            
            // weitere Zeilen hinzufügen
            foreach (var person in personen)
            {
                 fileContent += person.Vorname + ";" + person.Nachname + ";" + person.Geburtstag + Environment.NewLine;
            }         
        }       
    }

jetzt muss ich es noch ausgeben als CSV Datei..

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Das letzte was ich wollte ist irgendwem böse Absichten zu unterstellen 8o

Entschuldigung bei allen, ich werde versuchen es iwie selber hinzubekommen

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Ich habe es probiert! Mega viele Varianten..

Mein Problem ist, dass ich sowas noch nie gemacht habe und jetzt halt nicht weiß, kommt das alles vor static void Main?

weil da hab ich ja bereits eine Klasse mit Fuhrpark, muss danach die Klasse CSVWriter? Das würde mir schon sehr viel weiter helfen, dass zu wissen.

Hab nie nach einer vollständigen Lösung verlangt.

Noch hinzu kommt, im Internet steht nie was man tun soll, wenn das Programm, anlegen, löschen und editieren kann und man das alles speichern möchte.

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Hä? nein, nur wollte ich eine Erklärung dazu haben mensch..
Sorry, das ich Anfänger bin und es nicht verstanden habe.

Ja, ich habe mir alle Beispiele angeschaut, nur war bei mir immer alles falsch und es kamen nur Fehlermeldungen, deswegen dachte ich, dass das nicht die richtige Lösung war.

Nicht sehr freundlich mich gleich so anzuschnauzen.

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Ja, aber das hilft mir ja alles nicht wirklich weiter, ich will ja mein Konsolen Programm in CSV Format speichern.

Mein Programm beginnt ja schon mal mit:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fuhrpark1
{
    class Fuhrpark
    {
        private static List<Auto> _autos = new List<Auto>(); // Anlegen von neuer Liste für Autos
        private static List<Personen> _personen = new List<Personen>(); // Anlegen von neuer Liste für Personen

        static void Main(string[] args)
        {
            do
            {
                Console.WriteLine(
                    "\n" +
                    "Wähle bitte eine Möglichkeit: \n\n" +
                    "1 für das Anlegen eines neuen Autos \n" +
                    "2 für das Anzeigen der vorhandenen Autos \n" +
                    "3 für das Anlegen von Personen \n" +
                    "4 für das Anzeigen von vorhandenen Personen \n\n" +
                    "5 für das Löschen einer Person \n" +
                    "6 für das Löschen eines Autos \n" +
                    "7 für das Bearbeiten einer Person \n" +
                    "8 für das Bearbeiten eines Autos \n\n" +
                    "9 für das Verknüpfen von Auto und Personen\n" +
                    "0 Für das Anzeigen der Verknüpfungen\n");                
                input = Console.ReadKey().Key;
                Console.Clear();

also nur ein kleiner Ausschnitt vom Anfang, und ich will jez dass immer wenn ich eine Person/Auto anlege oder verknüpfe dass es mir das in CSV Format speichert.

Thema: Daten in CSV Format speichern bzw einlesen?
Am im Forum: Grundlagen von C#

Ach so, macht Sinn.

Kann ich aber

public class CSVWriter
{}

schreiben als Anfang?