Autor Beitrag
deada
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 25.11.10 16:50 
hallo alleseits,

habe mit diesem Code:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
            private void BTsaveCurrList_Click(object sender, EventArgs e)
            {
                string selectedParty = CBparty.SelectedItem.ToString();
                string FileName = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\StepSaveItems.txt";
                string itemValue;

                
                
                StreamWriter writeFile = new StreamWriter(FileName);


                if (File.Exists(FileName))
                {
                    writeExistingContent();
                    writeFile.WriteLine("Party: " + selectedParty);
                    writeFile.WriteLine("--------------------------------------");


                    foreach (object itemo in CLBlist.CheckedItems)
                    {

                        itemValue = itemo.ToString();

                        if (File.Exists(FileName))
                        {

                            writeFile.WriteLine(itemValue);

                        }
                        else
                        {
                            writeFile.WriteLine(itemValue);

                        }

                    }

                    writeFile.WriteLine("--------------------------------------");
                    writeFile.WriteLine();
                }
                else
                {
                    writeFile.WriteLine("Party: " + selectedParty);
                    writeFile.WriteLine("--------------------------------------");


                    foreach (object itemo in CLBlist.CheckedItems)
                    {

                        itemValue = itemo.ToString();

                        if (File.Exists(FileName))
                        {

                            writeFile.WriteLine(itemValue);

                        }
                        else
                        {
                            writeFile.WriteLine(itemValue);

                        }

                    }

                    writeFile.WriteLine("--------------------------------------");
                    writeFile.WriteLine();
                }
                writeFile.Close();

            }


            public String writeExistingContent()
            {
                string existingContent = "";
                string FileName = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\StepSaveItems.txt";

                StreamReader readContent = new StreamReader(FileName);
                existingContent = readContent.ReadToEnd();
                readContent.Close();

                return existingContent;
            
            }


folgende Exception:
Der Prozess kann nicht auf die Datei "G:\Users\Sa\AppData\Local\StepSaveItems.txt" zugreifen, da sie von einem anderen Prozess verwendet wird.

Ieine Lösung?


Moderiert von user profile iconKha: Topic aus WinForms verschoben am Do 25.11.2010 um 20:05
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 25.11.10 17:16 
Du hast die Datei im StreamWriter schon offen und versuchst danach in writeExistingContent auf die Datei zuzugreifen.
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Do 25.11.10 17:18 
Wollte ich auch gerade schreiben.

Und den Sinn von
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if (File.Exists(FileName))
{
   writeFile.WriteLine(itemValue);
}
else
{
   writeFile.WriteLine(itemValue);
}
musst Du mir mal genauer erklären!

Marko
deada Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 25.11.10 18:28 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Du hast die Datei im StreamWriter schon offen und versuchst danach in writeExistingContent auf die Datei zuzugreifen.


wie soll ich es dann lösen? ich beim klick auf den button den bereits vorhandenen inhalt der datei mit dem rest speichern..
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 25.11.10 20:43 
Wie wäre es zuerst den alten Inhalt auszulesen und dann die Datei zum Schreiben zu öffnen?

Aber davon abgesehen: Wozu willst du den Inhalt denn überhaupt auslesen, wenn du ohnehin nur weitere Daten anhängen willst?

Stell dir einmal vor du willst in ein Notizbuch schreiben. Was du jetzt machst ist:
Zuerst setzt du auf Seite 10 den Stift zum Schreiben an und wunderst dich dann, dass du so schlecht parallel am Anfang anfangen kannst zu lesen...
Und warum solltest du zuerst den alten Inhalt lesen, wenn du doch nur dahinter weiterschreiben willst?

Schau dir einfach einmal die möglichen Konstruktoren an:
msdn.microsoft.com/d...er.streamwriter.aspx
Ja, ich weiß: zu viel zu lesen... Schau dir den an...
msdn.microsoft.com/d...ibrary/36b035cb.aspx
deada Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 25.11.10 21:26 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wie wäre es zuerst den alten Inhalt auszulesen und dann die Datei zum Schreiben zu öffnen?

Aber davon abgesehen: Wozu willst du den Inhalt denn überhaupt auslesen, wenn du ohnehin nur weitere Daten anhängen willst?

Stell dir einmal vor du willst in ein Notizbuch schreiben. Was du jetzt machst ist:
Zuerst setzt du auf Seite 10 den Stift zum Schreiben an und wunderst dich dann, dass du so schlecht parallel am Anfang anfangen kannst zu lesen...
Und warum solltest du zuerst den alten Inhalt lesen, wenn du doch nur dahinter weiterschreiben willst?

Schau dir einfach einmal die möglichen Konstruktoren an:
msdn.microsoft.com/d...er.streamwriter.aspx
Ja, ich weiß: zu viel zu lesen... Schau dir den an...
msdn.microsoft.com/d...ibrary/36b035cb.aspx


Der Button wird öfters im laufendem Programm gedrückt, deswegen das öfnen beider streamas. Sonst würd er mir die datei überschreiben oder?
deada Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 25.11.10 21:32 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wie wäre es zuerst den alten Inhalt auszulesen und dann die Datei zum Schreiben zu öffnen?

Aber davon abgesehen: Wozu willst du den Inhalt denn überhaupt auslesen, wenn du ohnehin nur weitere Daten anhängen willst?

Stell dir einmal vor du willst in ein Notizbuch schreiben. Was du jetzt machst ist:
Zuerst setzt du auf Seite 10 den Stift zum Schreiben an und wunderst dich dann, dass du so schlecht parallel am Anfang anfangen kannst zu lesen...
Und warum solltest du zuerst den alten Inhalt lesen, wenn du doch nur dahinter weiterschreiben willst?

Schau dir einfach einmal die möglichen Konstruktoren an:
msdn.microsoft.com/d...er.streamwriter.aspx
Ja, ich weiß: zu viel zu lesen... Schau dir den an...
msdn.microsoft.com/d...ibrary/36b035cb.aspx


okay dank dir, hatte wohl logik probleme. dank dir =)