PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Problem beim OpenFileDialog


stav0815
2008-04-27, 20:28:39
Hallo,

ich habe folgendes Problem. Ich möchte per OpenFileDialog ne Datei öffnen. Dafür habe ich einen Stream eingeführt der dann den "Dialog" ausliest. Nur leider liest er mir dabei immer nür müll aus.


OpenFileDialog file = new OpenFileDialog();
string path;
file.ShowDialog();
System.IO.StreamReader reader = new System.IO.StreamReader(file.FileName);
path = reader.ReadLine();
pfadbox.Text = path;
reader.Close();


kann mir jemand helfen?
Und hat evtl. jemand ne kleine Einführung in Streams und Buffers?

Matrix316
2008-04-27, 20:53:01
Was für eine Datei liest du denn ein?

Probier doch mal sowas wie

System.IO.StreamReader reader = new System.IO.StreamReader(file.FileName,Encoding.UTF8);

stav0815
2008-04-27, 21:05:55
die art der datei is egal... eigentlich will ich nur den Pfad und dateinamen um später eine "einfache" exceldatei einlesen zu können.

ich habe das gefühl er liest dabei die datei selbst aus und nicht den pfad & dateinamen

Gast
2008-04-27, 23:01:23
Ich versteh die Frage leider auch nicht. :)

Willst du jetzt nur die Pfadangabe haben, oder die Datei auch direkt öffnen?

Falls Ersteres, warum so kompliziert?


OpenFileDialog file = new OpenFileDialog();
file.ShowDialog();
pfadbox.Text = file.FileName;

Monger
2008-04-27, 23:09:34
Schau dir doch mal den Filename im Debug Modus an!

Was kommt denn da raus?

stav0815
2008-04-28, 06:28:35
Ich versteh die Frage leider auch nicht. :)

Willst du jetzt nur die Pfadangabe haben, oder die Datei auch direkt öffnen?

Falls Ersteres, warum so kompliziert?


OpenFileDialog file = new OpenFileDialog();
file.ShowDialog();
pfadbox.Text = file.FileName;


Hm... geht... dann muss ich die datei aber immer doppelt öffnen...
In der MSDN Library stand drin, dass man das mit nem Stream auslesen muss (was ich aber nicht verstanden habe, da streams doch dafür gut wären, Inhalte aus einer Datei zu ziehen?!)

Supa
2008-04-28, 06:44:17
Hallo,

ich habe folgendes Problem. Ich möchte per OpenFileDialog ne Datei öffnen. Dafür habe ich einen Stream eingeführt der dann den "Dialog" ausliest. Nur leider liest er mir dabei immer nür müll aus.


OpenFileDialog file = new OpenFileDialog();
string path;
file.ShowDialog();
System.IO.StreamReader reader = new System.IO.StreamReader(file.FileName);
path = reader.ReadLine();
pfadbox.Text = path;
reader.Close();


kann mir jemand helfen?
Und hat evtl. jemand ne kleine Einführung in Streams und Buffers?

du bist dir schon im klaren darüber, dass du in deine Pfadbox den Inhalt der ersten Zeile deiner ausgewählten Datei schreibst und nicht den eigentlichen Pfad?

TheGamer
2008-04-28, 09:02:17
Hm... geht... dann muss ich die datei aber immer doppelt öffnen...
In der MSDN Library stand drin, dass man das mit nem Stream auslesen muss (was ich aber nicht verstanden habe, da streams doch dafür gut wären, Inhalte aus einer Datei zu ziehen?!)

Was musst du da doppelt oeffnen. Gar ncihts musst du. MIt file.FileName hast du den Pfad als string, den schreibst du in die Textbox und in der naechsten Zeile oeffnest du die Datei und streamst diese rein.

Was bitte ist daran jetzt doppelt.


System.IO.StreamReader reader = new System.IO.StreamReader(file.FileName);
path = reader.ReadLine();

Was nuetzt dir das wenn du nur den Pfad willst, den hast du ja, nein du verwendest ihn sogar. Er steht naemlich hier -> file.FileName

Mit Path.GetFileName(file.FileName) bekommst du nur den Dateinamen.


PS: Warum laedst du den Inhalt der Datei die Varaible path ;D

del_4901
2008-04-28, 09:15:20
Tja Doku lesen muss man auch erstmal lernen. Auch wenn die MSDN sehr gut ist, kann man da nicht jeden Anfänger mit berücksichtigen. Ich hab mir auch an den Kopf gefasst, als ich den Thread hier gesehen habe. Das ganze war aber zu "abgedreht" & "wirr", das ich erstmal abwarten wollte, was denn gemeint ist.

stav0815
2008-04-28, 09:16:22
Was musst du da doppelt oeffnen. Gar ncihts musst du. MIt file.FileName hast du den Pfad als string, den schreibst du in die Textbox und in der naechsten Zeile oeffnest du die Datei und streamst diese rein.

Was bitte ist daran jetzt doppelt.


System.IO.StreamReader reader = new System.IO.StreamReader(file.FileName);
path = reader.ReadLine();

Was nuetzt dir das wenn du nur den Pfad willst, den hast du ja, nein du verwendest ihn sogar. Er steht naemlich hier -> file.FileName

Mit Path.GetFileName(file.FileName) bekommst du nur den Dateinamen.


PS: Warum laedst du den Inhalt der Datei die Varaible path ;D

Mit dem doppelt meine ich, dass wenn ich den Dialog schließe, er sofort wieder aufgeht.

del_4901
2008-04-28, 09:21:13
Mit dem doppelt meine ich, dass wenn ich den Dialog schließe, er sofort wieder aufgeht.
Ähhh das wirft mehr Fragen auf, als beantwortet werden. Sicher, das dieser Fehler nicht an dir liegt?

PS: Ich hab in meiner ganzen Programmierer-Laufbahn erst 2 Fehler gefunden, wo einer der "Großen" dran schuld war. (Beta-SW mal rausgenommen)

TheGamer
2008-04-28, 09:23:07
Mit dem doppelt meine ich, dass wenn ich den Dialog schließe, er sofort wieder aufgeht.

Bullshit, solange da nicht 2x ShowDialog ausgefuehrt wird, passiert das unter Garantie nicht.

Wie kommst du darauf? Liegt es am umliegenden Code den wir nicht kennen (Schleifen)?


@AlphaTier: Das passiert sicher nicht. Der Fehler muss in seinem Code liegen er meint nur das dies passieren wird. Der File Dialog ist sowas essentielles da ist mit SIcherheit kein Bug drinnen (since 1984), zumindest keiner der dieses Verhalten zeigt. Da lege ich sogar fuer Microsoft die Hand ins Feuer.

Wie du sagtest sowas ist sehr sehr selten :D

del_4901
2008-04-28, 09:28:26
Wie du sagtest sowas ist sehr sehr selten :D
Das kann sehr sehr nasty werden wenn es erstmal auftritt. Insbesondere Compilerbugs sind heftig. Heutzutage kommt doch niemand mehr auf die Idee sich den Assembler-Code mal anzusehen.

stav0815
2008-04-28, 10:42:26
Bullshit, solange da nicht 2x ShowDialog ausgefuehrt wird, passiert das unter Garantie nicht.

Wie kommst du darauf? Liegt es am umliegenden Code den wir nicht kennen (Schleifen)?


@AlphaTier: Das passiert sicher nicht. Der Fehler muss in seinem Code liegen er meint nur das dies passieren wird. Der File Dialog ist sowas essentielles da ist mit SIcherheit kein Bug drinnen (since 1984), zumindest keiner der dieses Verhalten zeigt. Da lege ich sogar fuer Microsoft die Hand ins Feuer.

Wie du sagtest sowas ist sehr sehr selten :D
Na dann leg mal,
drumherum gibt es nämlich keinen anderen Code der ausgeführt wird. Dieses Verhalten zeigt er aber nur unter WinXP auf zwei Rechnern. Auf den anderen macht er dies so wie er soll... evtl. ein Konfigurationsproblem, hab aber kein bock mich damit zu befassen, denn wenn ich ausm Debug Mode in den Release Mode gehe, funzt es einwandfrei

del_4901
2008-04-28, 10:51:56
Na dann leg mal,
drumherum gibt es nämlich keinen anderen Code der ausgeführt wird. Dieses Verhalten zeigt er aber nur unter WinXP auf zwei Rechnern. Auf den anderen macht er dies so wie er soll... evtl. ein Konfigurationsproblem, hab aber kein bock mich damit zu befassen, denn wenn ich ausm Debug Mode in den Release Mode gehe, funzt es einwandfrei
Das heißt noch lange nicht das da doch ein Fehler drin ist.
Solche Verhalten habe ich alle schon gehabt, und immer war ich schuld.

Hast du mal ein make -clean gemacht?

TheGamer
2008-04-28, 10:53:25
Na dann leg mal,
drumherum gibt es nämlich keinen anderen Code der ausgeführt wird. Dieses Verhalten zeigt er aber nur unter WinXP auf zwei Rechnern. Auf den anderen macht er dies so wie er soll... evtl. ein Konfigurationsproblem, hab aber kein bock mich damit zu befassen, denn wenn ich ausm Debug Mode in den Release Mode gehe, funzt es einwandfrei

Ja da leg ich gerne. Mein Job besteht darin 45 Stunden in der Woche .NET Programme zu entwickeln seit 5 Jahren . Darum nehm ich es dir nicht ab und ich lege eine Hand fuer Microsoft ins Feuer..

Irgendwas hast du falsch gemacht (ich mein du suchst ja auch den Dateinamen in der Datei selbst).

Du kannst ja gerne das Projekt zippen und hier rein stellen. Da koennen wir es ja mal anschauen und dir ggf. bei der Problemloesung helfen.


EDIT: Achja wenn du keinen Bock hast dich mit eventuellen Konfigurationen zu befassen, dann solltest du es lieber gleich komplett lassen.

stav0815
2008-04-28, 10:57:47
Ja da leg ich gerne. Mein Job besteht darin 45 Stunden in der Woche .NET Programme zu entwickeln seit 5 Jahren . Darum nehm ich es dir nicht ab und ich lege eine Hand fuer Microsoft ins Feuer..

Irgendwas hast du falsch gemacht (ich mein du suchst ja auch den Dateinamen in der Datei selbst).

Du kannst ja gerne das Projekt zippen und hier rein stellen. Da koennen wir es ja mal anschauen und dir ggf. bei der Problemloesung helfen.
So wichtig is es nicht. Und wie gesagt, im Release Mode macht er das nicht. Ich habe ja nicht behauptet, dass der Fehler bei MS liegt (dafür bin ich viel zu unerfahren im programmieren, in 99,999999% der Fälle war ich schuld, bei dem anderen Teil mein SAE Lehrer)

TheGamer
2008-04-28, 10:58:51
So wichtig is es nicht. Und wie gesagt, im Release Mode macht er das nicht. Ich habe ja nicht behauptet, dass der Fehler bei MS liegt (dafür bin ich viel zu unerfahren im programmieren, in 99,999999% der Fälle war ich schuld, bei dem anderen Teil mein SAE Lehrer)

Wenns im Release nicht passiert kann es wirklich was an der Config sein. Wuerde mich schon interessieren was :)

del_4901
2008-04-28, 11:01:10
Irgendwas hast du falsch gemacht (ich mein du suchst ja auch den Dateinamen in der Datei selbst).

muhahahaha huhuhuhu, da kann jetzt keiner was gegen sagen, ich hab mich köstlich amüsiert. (schön formuliert)

5 Jahre schon ... das gibs echt schon so lange ... man man man wie schnell die Zeit doch vergeht.

stav0815
2008-04-28, 11:01:47
Ich kann dir heute abend gern die Zip zur Verfügung stellen, bin aber gerade auffer Arbeit und kann nur Remote drauf zugreifen (lahm).

Kennst du eine Seite, auf der auf einfache Art und Weise Anleitungen an praxisnahen Beispielen erklärt wird?
Der Berufsschul Unterricht geht mir zu langsam :biggrin:

del_4901
2008-04-28, 11:10:54
Ich kann dir heute abend gern die Zip zur Verfügung stellen, bin aber gerade auffer Arbeit und kann nur Remote drauf zugreifen (lahm).

Kennst du eine Seite, auf der auf einfache Art und Weise Anleitungen an praxisnahen Beispielen erklärt wird?
Der Berufsschul Unterricht geht mir zu langsam :biggrin:

Tutorials sind eigendlich nie wirklich hilfreich, ok sie kosten nichts, das ist aber schon alles. Kauf dir lieber ein gutes Buch. Ich kann dir da jetzt auch keine Tips geben, die Bücher die ich mir kaufe sind bestimmt nichts für dich. k.A Such dir nen Thema, was dir Spass macht, wenn es nicht in C# beschrieben ist, ist das eigendlich auch nicht so wichtig. Mein C# habe ich in 2 Tagen gelernt. Nach der 3ten oder 4ten Sprache geht das sehr schnell. C# ist schon kewl keine Frage, nur kauf dir lieber ein inhaltlich gutes Buch, als auf die verwendette Sprache zu achten wollte ich damit sagen. C++, Java, C# etc. sind sich so ähnlich. Ich hab z.B nen Buch über Event-Systeme mit 2 guten praxisnahmen Beispielen im Apendix, aber das währe z.B noch nichts für dich.

TheGamer
2008-04-28, 11:17:40
muhahahaha huhuhuhu, da kann jetzt keiner was gegen sagen, ich hab mich köstlich amüsiert. (schön formuliert)

5 Jahre schon ... das gibs echt schon so lange ... man man man wie schnell die Zeit doch vergeht.

Die Existenz ist schon mehr als 5 Jahre gegeben -> 2001

del_4901
2008-04-28, 11:19:46
Die Existenz ist schon mehr als 5 Jahre gegeben -> 2001
Jetzt wo du es sagst, ich kann mich schwer erinnern, das da was war.
Ich kann mich auch entsinnen, das es ziehmlich scheisse zu Anfang war.

stav0815
2008-04-28, 11:21:09
Tutorials sind eigendlich nie wirklich hilfreich, ok sie kosten nichts, das ist aber schon alles. Kauf dir lieber ein gutes Buch. Ich kann dir da jetzt auch keine Tips geben, die Bücher die ich mir kaufe sind bestimmt nichts für dich. k.A Such dir nen Thema, was dir Spass macht, wenn es nicht in C# beschrieben ist, ist das eigendlich auch nicht so wichtig. Mein C# habe ich in 2 Tagen gelernt. Nach der 3ten oder 4ten Sprache geht das sehr schnell. C# ist schon kewl keine Frage, nur kauf dir lieber ein inhaltlich gutes Buch, als auf die verwendette Sprache zu achten wollte ich damit sagen. C++, Java, C# etc. sind sich so ähnlich. Ich hab z.B nen Buch über Event-Systeme mit 2 guten praxisnahmen Beispielen im Apendix, aber das währe z.B noch nichts für dich.
Ich bin halt an C# gebunden und hab auch schon ein kleines Grundwissen was Klassen, Schleifen, Arrays und Methoden angeht.
Ein Buch wäre auch ok, aber es sollte halt einfach an praxisnahen Beispielen erklärt werden. Das meiste ist halt sehr theorethisch.

TheGamer
2008-04-28, 11:41:46
das es ziehmlich scheisse zu Anfang war.

Sehr nett ausgedrueckt, zu nett.

stav0815
2008-04-28, 11:57:25
hab den fehler gefunden... hab in meiner Form.cs noch nen code rest gehabt x(