Datei anlegegen und auslesen "Datei im Zugriff"
-
Habe ein zugriffproblem - beim Öffnen kommt die Meldung das die Datei im zugriff ist.
Erstellen mit folgender Syntax eine Datei:
FileInfo FI = new FileInfo(@"config.conf"); FileStream FS = FI.Create();
Später lese ich die datei wieder aus mit dem folgenden Syntax:
string[] readLines = File.ReadAllLines(@"config.conf", Encoding.Default); textBox_host1.Text = readLines[0]; //Host 1 textBox_host2.Text = readLines[1]; //Host 2 textBox_host3.Text = readLines[2]; //Host 3 textBox_host4.Text = readLines[3]; //Host 4 textBox_host5.Text = readLines[4]; //Host 5 textBox_host6.Text = readLines[5]; //Host 6 textBox_internet.Text = readLines[6]; //Internet URL
Jetzt kommt beim Starten des Programmes nach dem erstellen der exe , ein zugriff fehler , das die datei schon im zugriff ist.
Kann ich das irgedwie verhindern ?
Ist die Syntax denn richtig - die Datei soll im Aktuellen Verzeichnis liegen wo auch die EXE zu finden ist.
-
Mach mal nach dem Erstellen der Datei ein
FileInfo FI = new FileInfo(@"config.conf"); FileStream FS = FI.Create(); FS.Close();
EDIT: Eventuell solltest du dir das mal anschauen
C# – Warum der using-Block so wichtig ist.
-
Später beim speichern mit dem folgenden Syntax
File.WriteAllLines(@"C:\text.txt",CreateText,Encoding.Default);
bekomme ich einen fehler
Eine nicht behandelte Ausnahme des Typs "System.ArgumentNullException" ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Der Wert darf nicht NULL sein.
Reicht die eine Zeile oder fehlt da noch was ?
-
Hast du den Debugger schonmal benutzt und selber geschaut welche Variable Null ist?Fals nicht, dann tu das bitte!
-
Firefighter schrieb:
Hast du den Debugger schonmal benutzt und selber geschaut welche Variable Null ist?Fals nicht, dann tu das bitte!
Warnung 1
Dem Feld "Ping_Tool.Form_Konfiguration.CreateText" wird nie etwas zugewiesen, und es hat immer seinen Standardwert von "null". D:\Programmieren_2010\Ping_Tool\Ping_Tool\Form_Konfiguration.cs 16 26 Ping_Toolund springt dann nach
private string[] CreateText;
-
1. Ist das nicht eine Debugger-Meldung, sondern eine Kompilermeldung.
2. Und was soll daran unklar sein? Die Warnung ist ja klipp und klar. Du weistCreateText
nie einen Wert zu. Wenn du somitFile.WriteAllLines
aufrufst, übergibst du einennull
-Wert.Grüssli
-
Weiß aber nicht was ich ändern soll??
-
Ich würde dir dringend empfehlen nochmal die Grundlagen durchzugehen.
Eventuell würde ich auch eher eine List<string> nehmen, anstatt ein Array.
-
hift mir jetzt auch nicht weiter
-
Dann bemüh dein Kopf, und such im Internet. Von uns bekommst du keine vorgefertige Lösung, deine Eigeninitiative ist gleich 0.
-
Es lief ja schon mal und bin mir sicher das ich nichts geändert jabe
-
Fakt ist:Du hast ein Fehler im Programm, kennst die Grundlagen nicht und solange du diesen nicht behebst wird das Programm nicht laufen.
Kleiner Tip: Du solltest das Array "CreateText" initialisieren.
-
basti2005 schrieb:
Weiß aber nicht was ich ändern soll??
Wir wissen es auch nicht, wir haben deinen Code schliesslich nicht. Du musst halt einfach einen Wert der Variable CreateText zuweisen, sonst hat sie eben keinen. Ist ja logisch, nicht?
basti2005 schrieb:
Es lief ja schon mal und bin mir sicher das ich nichts geändert jabe
Dann finde heraus was du geändert hast! Das können wir nicht für dich tun.
Grüssli
-
Welchen teil des Quellcodes braucht ihr denn um zu helfen ?
-
basti2005 schrieb:
Welchen teil des Quellcodes braucht ihr denn um zu helfen ?
Willst du mich auf den Arm nehmen?
1. Das Problem ist mehr als trivial und wurde nun wirklich schon genaustens erklärt.
2. Woher sollen wir das wissen? Nur du kannst den Fehler eingrenzen und dann Code liefern. Aber komm gar nicht auf die Idee nun dein ganzes Programm hier zu präsentieren! Das wird sich niemand antun. Vor allem hast du wirklich, wie schon Firefighter gesagt hat, so gut wie keine Eigeninitiative gezeigt. An so einem Problem kann man nur noch aus Faulheit oder nicht beherrschen der Grundlagen scheitern. Gegen beides kannst nur du etwas unternehmen.Grüssli
-
Bin da ja schon seid gestern am suchen finde ihn wohl nicht !
Werde hier ja auch keine 600 Zeilen code posten!
-
Um mal Heidi Klum zu zitieren:
"Leider muss ich dir sagen, wir haben keine Lösung für dich, du hast dich nicht genug angestrengt."Großmoglich Winforms-Anwendungen programmieren wollen aber keine Ahnung davon haben wie man ein Array definiert. Kunden schickts Arbeitsamt.
-
Firefighter schrieb:
Um mal Heidi Klum zu zitieren:
"Leider muss ich dir sagen, wir haben keine Lösung für dich, du hast dich nicht genug angestrengt."Großmoglich Winforms-Anwendungen programmieren wollen aber keine Ahnung davon haben wie man ein Array definiert. Kunden schickts Arbeitsamt.
Naja, mal nicht so streng sein...
Du hast wahrscheinlich irgendwo ein "string[] CreateText". Dieser wird niemals gefüllt. Das sagt dir auch die Kompilermeldung. An einer x-beliebigen Stelle solltest du diesen Array Initialisieren und mit Werten füllen.
z.B.
string[] CreateText = new string[] {"foo", "bar", "mooh"};
Das gehört aber wie schon einige Vorreder treffen gesagt haben, zu den Grundlagen. Deswegen rate ich dir einfach, nochmal ein paar Grundlagen durch zu gehen und einige Tuts zu machen. Wenn man sich aber strikt dagegen weigert, kann dir keiner helfen
gruß
Hellsgore
-
DANKE KLAPPT
-
Kann ich den Speicherort auch irgendwie aus einem Textfeld auslesen ?