Laden...

Die Argumente von der Kommandozeile?

Erstellt von mike001 vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.649 Views
M
mike001 Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren
Die Argumente von der Kommandozeile?

aufgabenstellung:

Schreiben Sie ein Programm, das die Anzahl der Worte, Zeilen und Zeichen in einer Textdatei zählt.

Den Namen der Datei sollen Sie "aus der Kommandozeile" entnehmen.

static void Main(string[] args)  
{  
    ...  
}  

Die Argumente auf der Kommandozeile können Sie dem Feld args entnehmen.

ich habe das programm geschrieben und es läuft auch, jedoch lese ich die datei über den Streamreader ein. Was ist damit gemeint: "Den Namen der Datei sollen Sie "aus der Kommandozeile" entnehmen"bzw. "die argumente auf der kommandozeile können Sie dem Feld args entnehmen???? kann mir das bitte jmd. erklären?

LG

195 Beiträge seit 2006
vor 15 Jahren

Das du dein Programm mit einem Parameter startest. Dieser soll wahrscheinlich der Dateipfad sein. in Args steht dann der Wert den du beim aufruf übergeben hast.

1.433 Beiträge seit 2006
vor 15 Jahren

Und mit File.ReadAllLines() kannst du dann den Inhalt lesen...

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo mike001,

jedoch lese ich die datei über den Streamreader ein.

ja, aber den StreamReader gibst du doch einen Dateinamen mit. Jetzt sollst du den Dateinamen von der Kommandozeile nehmen. Und der steht als (erstes Element) im Array args.

herbivore

1.433 Beiträge seit 2006
vor 15 Jahren

Ich denke sowas in der Art hast Du gesucht.


using System;
using System.Collections.Generic;
using System.IO; // Ist notwendig damit auf die FileReade etc. Methoden zugegriffen werden kann.
using System.Text;

namespace Sample.ConsoleApplication {

    class Program {

        /// <summary>
        /// Haupteinstiegspunkt des Programs. Args wird als String Array
        /// entgegen genommen. Es kann ja sein, dasss jemand mehr als nur
        /// ein Argument eingibt.
        /// </summary>
        /// <param name="args"></param>
        static void Main( string[] args ) {
            args = new string[] {@"C:\Temp\Text.txt"}; // Ist nur zu Testzwecken hier, kann gelöscht werden für die definitive Umsetzung.

            if ( args.Length != 0 ) {
                Console.WriteLine( "Lese Datei aus dem Verzeichnis {0}", args );
                foreach ( string str in ReadFile(args[0]) ) {
                    Console.WriteLine( str );                    
                }
            }
            else {
                Console.WriteLine( "Keine Argumente angegeben" );
            }           

            Console.ReadKey( );
        }

        /// <summary>
        /// Diese Methode liest den FileInhalt in ein String Array und
        /// gibt diesen für die weitere Verarbeitung zurück.
        /// </summary>
        /// <param name="args">der Pfad der eingegeben wurde. (Muss dem Schema C:\ entsprechen.</param>
        /// <returns>Das gelesene TextFile als String Array.</returns>
        static string[] ReadFile( string args ) {
            string[] fileInhalt = File.ReadAllLines( args );
            return fileInhalt;
        }
    }
}

Zum Nachschlagen empfehlen sich die folgenden Lektüren immer wieder 😉 => 📗 🛈 :rtfm:

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt