PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [c#]Brauche Hilfe bei meinem Projekt



DimaMa
07.09.2010, 00:23
Ich habe ein Programm geschrieben.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Converter
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Dateiname:");
string filename=Console.ReadLine();
StreamReader Sreader = new StreamReader(filename+ ".txt");
StreamWriter Swriter = new StreamWriter(filename + @"_new.txt");
while (!Sreader.EndOfStream)
{
string @email = @Sreader.ReadLine();
string[] @parts = @email.Split('@');
string @hoster= @parts[1];
if (hoster == "web.de" || hoster == "gmx.de" || hoster == "gmx.net" || hoster == "googlemail.com" || hoster == "gmail.com" || hoster == "yahoo.com"
|| hoster == "t-online.de" || hoster == "arcor.de" || hoster == "arcor.com" || hoster == "ymail.com" || hoster == "freenet.de" || hoster == "rocketmail.com"
|| hoster == "aol.de" || hoster == "yahoo.de"|| hoster == "hotmail.de" || hoster == "hotmail.com" || hoster =="live.de" || hoster == "aol.com"
)
{
Swriter.WriteLine(email);
}
}
Sreader.Close();
Swriter.Close();

}
}
}

Source erklärt alles.
Nun sagt mir mein Compiler:
Der Index war außerhalb des Arraybereichs.
Source lässt sich fehlerfrei Compilieren.
Bitte um Hilfe :)

mfg

l0dsb
07.09.2010, 00:40
string @hoster= @parts[1];

DimaMa
07.09.2010, 03:07
was willst du damit sagen?

Starflow
07.09.2010, 04:53
Evtl. das da der Hund begraben ist den du suchst :rolleyes:

Sawyer
07.09.2010, 05:14
Wenn mich nicht alles täuscht, müsste es der Index 0 sein. Da in der Email ja eigentlich nur ein Email Anbieter vorkommen kann (sofern es eine gültige Mail ist). hab es jetzt allerdings auch nicht getestet.

DimaMa
07.09.2010, 16:05
Meine Logische Schlussvolgerung ist:
musterfau@xyz.de
Wenn ich den string mit @ splitte sollte nun das hier vorhanden sein:
musterfrau & xyz.de
und da ich es in ein array gepackt habe sind die Indeces 0 & 1.
Bisher konnte keiner helfen.
Ich suche ein Lösung und nicht die Stelle an der der Fehler geschieht, diese ist mir bekannt.
Mails sind gültig, in die neue Datei wird keinerlei Zeile geschrieben.

inout
07.09.2010, 16:16
Es wird wohl daran liegen, weil du versuchst eine leere Zeile bzw. eine Zeile, die kein @ enthält, versuchst zu splitten.
Dieses würde ich also mal vorher überprüfen oder einfach mal sicherstellen, dass parts.count() nach dem Splitten >= 2 ist.

DimaMa
07.09.2010, 16:36
Nein, die Email ist im richtigen Format.
Außerdem zeigt mein Compiler die variablen usw. an, diese sind so, wie sie sein sollten, befüllt.