Autor Beitrag
mau04
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 06.05.09 20:41 
Hallo,

ich fange gerade ab, C# zu lernen und bin auf ein Problem gestoßen.

Ich will die ersten beiden Zeilen einer Datei auslesen.
Die erste Zeile beinhaltet einen Usernamen, der dann der Variablen "benutzername" zugeordnet werden soll, die zweite Zeile das zugehörige Passwort, was der Variablen "benutzerpasswort" zugeordnet werden soll.

Wie macht man das?


Schonmal Danke! :)


Moderiert von user profile iconKha: Topic aus C# - Die Sprache verschoben am Mi 06.05.2009 um 21:54
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 06.05.09 20:55 
Hallo und :welcome:

Schau mal, ob du mit der Methode System.IO.File.ReadAllLines weiterkommst.

_________________
>λ=
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.05.09 20:56 
Allerdings ist eine Textdatei für solche Einstellungen kaum der geeignete Ort.
mau04 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 06.05.09 20:59 
Die Methode System.IO.File.ReadAllLines hab ich mir schon angeguckt, habe aber ehrlich gesagt keine Ahnung, wei cih die benutzen soll :(

@jaenicke: Es geht mir nur ums probieren..
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.05.09 21:01 
Das Beispiel in der Dokumentation hast du dir noch nicht angeschaut, oder?
msdn.microsoft.com/d...ibrary/s2tte0y1.aspx
Zitat:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
        // Open the file to read from.
        string[] readText = File.ReadAllLines(path);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
mau04 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 06.05.09 21:03 
Doch, genau das ;)
nur ich weiß nich, wie ich die einzelnen Zeilen da rauskriege.. -.-
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.05.09 21:07 
Wie wäre es mit readText[0] und readText[1]? Wobei du aber schauen solltest, ob die Zeilen überhaupt exstieren.
mau04 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 06.05.09 21:13 
hmmm...

Zitat:
string[] readText = File.ReadAllLines(@"data.txt");

{
string benutzername = readText[0];
string benutzerpasswort = readText[1];
MessageBox.Show(benutzername + " " + benutzerpasswort);

}


Jetzt funktionierts :)

Danke :)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.05.09 21:15 
Du solltest den Pfad mit angeben. Wenn du die Datei in dem Verzeichnis der Exe hast, dann kannst du dieses Verzeichnis mit Application.StartupPath auslesen:
msdn.microsoft.com/d...ion.startuppath.aspx
Sonst ist es eher Zufall, dass es klappt.
mau04 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 06.05.09 21:23 
Ich hab schon das nächste Problem. :(
Das auslesen klappt ja jetzt, aber wenn ich die Variablen nun im nächsten Befehl verwenden will erhalte ich die Meldung: Der Name "benutzername" ist im aktuellen Kontext nicht vorhanden.

Wie änder ich das?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.05.09 21:40 
Ich vermute das liegt an dem Quelltextblock, den du mit { ... } erstellt hast, was dadurch genau passiert weiß ich nicht. Grundsätzlich heißt der Fehler jedenfalls, dass die Variablen an der Stelle nicht zur Verfügung stehen.
k-weddige
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 49

Win Vista Business
C# (VS 2008 Professional)
BeitragVerfasst: Do 07.05.09 08:27 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
string[] readText = File.ReadAllLines(@"data.txt");

                { // Hier öffnest du einen Scope
                    string benutzername = readText[0]; // Die Variablen werden im aktuellen Scope deklariert
                    string benutzerpasswort = readText[1];
                    MessageBox.Show(benutzername + " " + benutzerpasswort);

                } // Hier schließt du den Scope wieder. Damit sind auch die Variablen nicht mehr verfügbar.


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
public partial class Form1 : Form
    {
        private string benutzername; // Wenn du die Variablen gleich zu Beginn der Klasse deklarierst, sind sie 
        private string benutzerpasswort;  // überall in der Klasse sichtbar.

        ...

_________________
Meine Programme sind perfekt, der Computer versteht sie bloß nicht.