Entwickler-Ecke

Basistechnologien - Delimiter aus einem String Array löschen


lapadula - Fr 26.08.16 11:41
Titel: Delimiter aus einem String Array löschen
Ich habe folgende Methode:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
public void LoadFromFile(string sFilePaht)
{
    StreamReader sr = new StreamReader(sFilePaht);
            
    string text = sr.ReadToEnd();
    string[] line = text.Split(';');
            
    try
    {
        Querys = new SqlQuery[line.Length];
        for (int i = 0; i < line.Length; i++)
            Querys[i] = new SqlQuery(line[i]);
    }
}

Mit StreamReader lese ich den Text aus einer txt-Datei und packe den in einen String. Dieser String wird nach jedem Semikolon
gesplittet und in ein String Array gepackt. Die einzelnen Elemente aus dem Array sind Sql-Querys.

Wie kann ich alle Leerzeichen und Zeilenumbrüche von jedem einzelnen Element entfernen, ohne das am Ende in der RichtTextBox alles
in einer Zeile steht. Mal angenommen der User schreibt die Querys folgendermaßen in die txt-Datei:

Quelltext
1:
2:
3:
insert into personen (vorname,nachname,strasse,hausnr,plz,ort,telefonnummer) 
values ('Barack','Obama','Weißstraße','1','232323','Washington','123123123');
insert into personen (vorname,nachname,strasse,hausnr,plz,ort,telefonnummer)values('Barack','Obama','Weißstraße','1','232323','Washington','123123123');

Ich möchte die folgendermaßen in der RichTextBox ausgeben

Quelltext
1:
2:
insert into personen (vorname,nachname,strasse,hausnr,plz,ort,telefonnummer)values('Barack','Obama','Weißstraße','1','232323','Washington','123123123');
insert into personen (vorname,nachname,strasse,hausnr,plz,ort,telefonnummer)values('Barack','Obama','Weißstraße','1','232323','Washington','123123123');

Versucht habe ich schon folgendes in meiner for-Schleife


C#-Quelltext
1:
Querys[i] = new SqlQuery(line[i].Replace(Environment.NewLine, ""));                    


Aber da schreibt er alles in eine Zeile

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


Palladin007 - Fr 26.08.16 12:07

Mach auf jedes Statement ein .Trim()
Bevor sie in die TextBox kommen, musst Du sie dann wieder verketten, getrennt durch Environment.NewLine


Th69 - Fr 26.08.16 12:53

Hallo,

beachte aber, daß so auch bei einem Semikolon innerhalb von Anführungsstrichen gesplittet werden würde:

Quelltext
1:
insert into tabelle (text) values ('Mein toller Text; sogar mit Semikolon');                    

Und das Semikolon dann verschwindet:

Quelltext
1:
2:
insert into tabelle (text) values ('Mein toller Text
 sogar mit Semikolon')


lapadula - Mo 29.08.16 14:19

Super, danke.

Ja das mit dem Semikolon ist mir bewusst. An der Stelle würde er ne Fehlermeldung ausspucken.