Autor Beitrag
DenniZ
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30

Win XP
C# (VS 2k5)
BeitragVerfasst: So 11.03.07 01:01 
Hi,

ich schon wieder *g*... wollte nicht im alten Thread weiterschreiben, wäre OT

Also, ich möchte beim Starten der Anwendung eine *.txt Datei ausführen lassen.
Klar, dazu benötigt man den StreamReader (das weis ich schon, bin ansonsten noch Anfänger)
Ich hab dazu auch schon meinen Code geschrieben:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
string Path = Application.StartupPath + ("appPath1.txt");
            
StreamReader sr = new StreamReader(Path);
String AppPath = sr.ReadToEnd().ToString();

richTextBox1.Text = AppPath;


Stimmt das soweit? Er soll die Datei auslesen und den Inhalt in eine richTextBox einfügen!
Fehler habe ich jedenfalls keine, allerding Funktioniert es leider auch nicht wenn ichs auf einen Button lege.
Das ist Problem Nummer 1, das andere lautet so:

Wie lege ich fest, dass er beim Start der Anwendung jedes mal die Datei durchließt und es in die richTextBox einfügt?

Wäre über so eine schnelle Hilfe wie beim anderen Thread sehr sehr erfreut :)
Danke schonmal!


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am So 11.03.2007 um 18:45
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 11.03.07 11:26 
Hallo,

benutze doch zum Einlesen:
ausblenden C#-Quelltext
1:
richTextBox1.LoadFile(Path, RichTextBoxStreamType.PlainText);					

Dann kannst Du auch steuern, ob es sich um reinen oder um formatierten Text handelt. Ich könnte mir vorstellen, dass Dein Problem damit zusammenhängt (denn auf den ersten Blick sieht der Code zwar umständlich, aber sauber aus).

Zitat:
Wie lege ich fest, dass er beim Start der Anwendung jedes mal die Datei durchließt und es in die richTextBox einfügt?

Aktiviere den dazu erforderlichen Code in MainFormLoad().

Gruß Jürgen
DenniZ Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30

Win XP
C# (VS 2k5)
BeitragVerfasst: So 11.03.07 19:34 
Ok, danke schonmal für den Einlese-Code, den werde ich jetzt benutzen.

Die Frage ist nur, wie wende ich das MainFormLoad() an? Die Form heißt bei mir (immernoch) Form1, also das Fenster, muss ich dann dort einfach Form1Load schreiben? Sprich so:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
namespace Game_Add_Loader
{
    public partial class Form1 : Form
    {
        public void Form1Load()
        {
            InitializeComponent();

            string Path = Application.StartupPath + ("appPath1.txt");
            richTextBox1.LoadFile(Path, RichTextBoxStreamType.PlainText);

        }


Wie man sieht ist das auch der unmittelbare Anfang des Codes ;) Wäre über eine schnelle Antwort erfreut, bin grad ein bisschen überfordert, auch rumprobieren hat nichts gebracht :(
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 11.03.07 19:45 
Hallo!

Du legst im Designer einfache in entsprechendes Ereignis an. Dazu die Form markieren und Dir die Eigenschaften anzeigen lassen. Dann oben auf den Blitz klicken, um die Ereignisse anzeigen zu lassen (siehe Screenshot). Dort das Ereignis "Load" suchen und in das leere Feld rechts daneben doppelt klicken. Schon wird eine Methode für das Ereignis angelegt und auch dem Ereignis zugewiesen.

Funktioniert bei allem Komponten so, nur haben die halt andere Ereignisse :)

Grüße
Christian

//edit: Demnächst bitte unbedingt für zwei Fragen auch zwei Threads erstellen. Der hier lässt sich leider nur schwer trennen, daher lass ich ihn ausnahmsweise mal so.
Einloggen, um Attachments anzusehen!
_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
DenniZ Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30

Win XP
C# (VS 2k5)
BeitragVerfasst: So 11.03.07 20:22 
Zitat:
//edit: Demnächst bitte unbedingt für zwei Fragen auch zwei Threads erstellen. Der hier lässt sich leider nur schwer trennen, daher lass ich ihn ausnahmsweise mal so.

Jap, aber es dreht sich trotzdem noch um meine Frage am Anfang, wie ich das einfüge, deswegen poste ich hier mal weiter :)

Also, wie ihr das beschrieben habt, klappt das einwandfrei! Er liest jetzt am Anfang die Datei, doch leider kommt doch ein Fehler:

"The process cannot access the file 'F:\ ... \bin\Debug\appPath1.txt' because it is being used by another process."

Das kommt dort, wo die Aufgabe des schreibens in die Datei steht, also bei mir bei richTextBox1_TextChanged!
Der Code dort lautet so:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            StreamWriter sw = new StreamWriter(Application.StartupPath + @"\appPath1.txt");
            {
                sw.Write(richTextBox1.Text);
                sw.Flush();
                sw.Close();
            }
        }


Ich habe nun versucht, meinen alten Code oben zu benutzen, beim Auslesen, dass er dort den StreamReader benutzt "und diesen auch wieder schließt!" so dachte ich mir, dass das wichtig ist.

Hat jemand eine Idee wie ich das umgehen kann? Evtl ein "wenn die Datei benutzt wird --> überspringen"? so eine art if und break?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 11.03.07 20:55 
Nee, Du, jetzt mach ich aber mal zu :lol:

Probleme beim Zugriff auf eine Datei haben nun wirklich nix mehr damit zu tun, etwas beim Start der Anwendung auszuführen. Erstell' dazu mal einen neuen Thread in der richtigen Sparte ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.