Autor Beitrag
sheroco
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 09.03.11 18:29 
Hallo. Ich würde gerne über die Kommandozeile eine Text-Datei einlesen.
Hab in der suche dazu leider nichts finden können, falls es dazu doch schon etwas gibt, das ich übersehen haben, bitte verschieben :)

also wenn ich in dos bin:

C:\Users\...\Documents\Visual Studio 2010\Projects\...\...\bin\Debug

dann will ich mit dem befehl "programm textdatei" die textdatei einlesen die sich auch debug ordner befindet.

ihr hoffe ihr könnt mir da etwas weiterhelfen.

mfg


Moderiert von user profile iconKha: Topic aus C# - Die Sprache verschoben am Mi 09.03.2011 um 18:57
3marci
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 61
Erhaltene Danke: 5

Windows 7 / Kubuntu 11.04
C# / vb.net / php / progress (VS 2010 Express / SharpDevelop / NetBeans / proAlpha)
BeitragVerfasst: Mi 09.03.11 18:37 
Das ist zwar das falsche Forum aber egal^^

Den Parameter musst du in deiner Main-Methode auslesen... z.B.

ausblenden C#-Quelltext
1:
static void Main(string[] args)					

Den Dateipfad kannst du dann, zumindest in der Main-Methode, per args[0] auslesen bzw. wieder per Parameter über den Konstruktor weitergeben.
Dementsprechend musst du den Konstruktor deiner Form anpassen, so dass der den Pfad als string erhalten kann.

Für diesen Beitrag haben gedankt: sheroco
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 09.03.11 18:44 
Hallo sheroco,

was ist dir denn genau unklar bzw. was für eine konkrete Frage hast du denn?

Zum Auswerten der Kommandozeilenparameter einfach das im Main übergebene String-Array auswerten:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
void Main(string [] args)
{
  if (args.Length > 0)
  {
    string filename = args[0];
  }
}

Und zum Einlesen der Datei schau dir mal die File-Klasse an, z.B. die statischen Methoden ReadAllText bzw. ReadAllLines.

Für diesen Beitrag haben gedankt: sheroco
sheroco Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 09.03.11 19:10 
@3marci

wusste leider nicht in welches forum ich es posten sollte, aber bitte bei bedarf verschieben.
wenn ich das richtige verstehe wird über das (string[] args) nur die parameter, also in meinem fall "textdatei" ausgelesen?
edit: ok gerade getestet: das hab ich mal verstanden :)

@th69

mir ist unklar wie ich das überhaupt angeh. das einzige was ich weiß das ich das über das string array der main methode mach.
für mich ist es auch schwierig nachzuvollziehen, da ich ja das programm in vb nicht debuggen/testen kann und ich so nicht sehen kann
welchen stringwert zb filename hat.

mit dem der ReadAllText Methode könnt ich schon etwas anfangen, mein Problem ist nur die Verbindung C# Programm - Eingabekommando,
was mir halt noch nicht ganz klar ist.

mfg
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 09.03.11 19:23 
Hallo,

du meinst sicherlich "im VS (Visual Studio)", oder?

Zu Testzwecken kannst du in den Projekteigenschaften auch feste Kommandozeilenparameter eintragen (unter "Debuggen" / "Befehlszeilenargumente") und dann ganz normal dein Programm debuggen. Evtl. noch das Arbeitsverzeichnis (Working Directory) richtig einstellen, damit er die externe Datei auch findet.

Für diesen Beitrag haben gedankt: sheroco
3marci
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 61
Erhaltene Danke: 5

Windows 7 / Kubuntu 11.04
C# / vb.net / php / progress (VS 2010 Express / SharpDevelop / NetBeans / proAlpha)
BeitragVerfasst: Mi 09.03.11 19:29 
Ich hab das früher immer so gemacht, dass ich, wenn ich einen Wert wissen wollte, an der entsprechende Stelle ein System.Windows.Forms.MessageBox.Show(args[0]); eingefügt habe.
Wenn du dir nicht sicher bist was z.B. args[0] ausgibt kannst du das so sehr schnell herausfinden.

Für diesen Beitrag haben gedankt: sheroco
sheroco Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 09.03.11 19:42 
ja mit visual studio
ahhh, ich habs ja gewusst das es da sowas gibt, wo man den parameter eintragen und dann debuggen kann :)

mein nächstes problem ist jetzt nun, das ja z.B die ReadAllText Methode einen Pfad angegeben haben will,
nur wie sag ich ihm das das die Datei im Arbeitsverzeichnis (also wo sich auch die *.exe gefindet) liegt.
wenn ich also z.b den ordner auf einen anderen pc kopiere, soll das programm immer noch funktionieren (vorausgesetzt es befindet sich halt die datei im ordner die eingelesen wird).

@3marci ja stimmt, so kann man es natürlich auch machen :)

mfg