C# : Zeilen auslesen und in Textdatei schreiben

Code - (Computer, Programm, Windows 7) Form - (Computer, Programm, Windows 7)

3 Antworten

Als erstes ist die Definition der Methode "File.WriteAllText()" wie folgt:

public static void WriteAllText(
	string path,
	string contents
)

Du übergibst der Methode einen String und ein String-Array. Daher kommt dein Fehler.

Ein einfache Möglichkeit aus dem String-Array eine String zu machen, wäre folgende Funktion:

var datensatz = string.Join(" ", FertigeDatensätze);

Damit werden die einzelnen Strings mit einem Leerzeichen getrennt in die String-Variable geschrieben.

Strings sind unveränderbar (immutable). Das heißt, wenn du Strings mit "+" zusammenfügst, wird immer ein neuer String erzeugt. Bei der Codezeile

FertigeDatensätze[i] = "dn: cm=" + CNs[i] + ",ou=" + OUs[i] + ",ou=Extern,o=CLAAS\nobjectClass: Top\nobjectClass: claasUserExtension\nobjectClass: Person\nobjectClass: inetOrgPerson\nobjectClass: organizationalPerson\nobjectClass: ndsLoginProperties\nclaasUserType: extern\nmail: " + CNs[i] + "\ngivenName: " + Vornamen[i] + "\nfullName: " + Vornamen[i] + " " + Nachnamen[i] + "\nsn: " + Nachnamen[i] + "\nclaasApplRoleNames: cn=CDEX_EXTERN,ou=CDEX,ou=EBApps,o=CLAAS\nPassword: \n\n";

wird das 13 Mal (multipliziert mit der Länge des Arrays) durchgeführt. Das verringert die Performance des Programms. Du solltest die Klasse "StringBuilder" bzw. die Methode "string.Format()" verwenden.

Sry, aber der Code auf dem Bild ist zu klein, und das, was du da rein kopiert hast zu entziffern ist bisschen schwer....

Warum machst du das überhaupt mit Windows Forms?

Womit sollte ich das sonst machen? Bin Anfänger im Programmieren, kann nur Konsole und Forms ein bisschen.

0

Wie kann ich den Start und die sonstige Leistung des Visual Studios beschleunigen?

Hallo,

Ich bin Programmieranfänger mit C# und habe auf meinem Rechner das aktuelle Visual Studio 2015 installiert.

Mein PC ist eigentlich nicht besonders langsam (http://www.sysprofile.de/id182390), trotzdem lädt das Studio immer mindestens eine halbe Minute. Auch die Compiling-Zeit (um die 15 sec) ist ärgerlich! Es nervt mich z. B. auch, dass VS jedes Projekt so lange lädt – oder neue so langwierig erstellt, und überhaupt nur ein Projekt pro Instanz möglich zu sein scheint.
Wie kann ich Visual Studio beschleunigen?

(Ich benutze Windows 8.1. Und bitte nicht den Rat: "Task Manager ⇒ Hohe Priorität". Den kenne ich schon, aber den immer extra aufzurufen ist auch keine rechte Lösung.)

Vielen Dank für eure Tipps! :-)

Mit freundlichen Grüßen,
KnorxThieus (m)

...zur Frage

java textdatei bestimmte zeile schreiben

hey leute... ich möchte in einer txtdatei eine bestimmte zeile ändern. aber wenn ich mein program starte dann gibt es eine NullPointerException... warum ??? und wie kann ich das lösen???

public MainClass() throws IOException{
    File file = new File("D:\\test.txt");

    writer(file, 5, "hallo zeile 5");    
}

public void writer(File file, int zeile, String text) throws IOException {
    int gelsesenezeilen = 0;
    String vorhandene_zeilen;
    BufferedWriter out = new BufferedWriter (new FileWriter (file));
    BufferedReader in = new BufferedReader(new FileReader(file));
    
    while(gelsesenezeilen != zeile-1){
        vorhandene_zeilen = in.readLine();
        out.write(vorhandene_zeilen);
        out.newLine();
        gelsesenezeilen++;
    }
    
    out.write(text);
    out.newLine();
    
    out.close();
    in.close();
}
...zur Frage

Text/String in Xml Datei verschlüsseln/entschlüsseln?

Hallo, wie kann ich den Text/String in einer Xml Datei verschlüsseln bzw. entschlüsseln?

Angenommen ich habe einen Tag:

<Passwort></Passwort>

in diesem Tag "Passwort" ist ein Text/String "passwort":

<Passwort>passwort</Passwort>

Wie verschlüssele/entschlüssele ich jetzt den Text/String "passwort"?

Ich will nicht das ganze Element verschlüsseln/entschlüsseln, ich will nur den Text/String "passwort" ver bzw entschlüsseln. Wie mache ich das?

Danke.

...zur Frage

wie kann man in Visual Basic eine Zeile in einer Text Datei Kopieren und als Variable Speichern?

Guten abend,

Ich möchte ein Programm schreiben, welches ein bestimmtes Wort in einer Textdatei sucht und dann die ganze Zeile Kopiert, um sie dann in einer neuen Datei zu schreiben. Ich habe bereits alles zusammengesammelt, nur fehlt mir der Code zum Kopieren von der Zeile. Der aktuelle Code lautet:

    Dim sr1 As New System.IO.FileStream("Verzeichnis1", IO.FileMode.Open, IO.FileAccess.Read)
    Dim reader1 As New System.IO.StreamReader(sr1)

    Do Until reader1.EndOfStream

        Dim line As String = reader1.ReadLine

        If line.Contains("Gruenkohl") = True Then TextBox("Gefunden!")

        ' Fehlt noch...


        Using StrWriter As New IO.StreamWriter("Verzeichnis2")
            StrWriter.WriteLine("Gefunden") 'Das ist die erste Zeile.
        End Using
        MsgBox("Gefunden!")



    Loop

End Sub

MfG Linus

...zur Frage

Viele Dateien umbenennen mit Titeln aus Textdatei?

Ich habe X Dateien, heißen alle "01.txt", "02.txt", "03.txt", usw. Nun habe ich eine Textdatei, in der diverse Titel für diese *.txt stehen. In jeder Zeile einer, also jeder Titel ist getrennt von einem Zeilenumbruch. Ich möchte nun (am besten automatisch) dass meine X Dateien umbenannt werden, und zwar mit den Titeln aus der einen Textdatei. Datei "01.txt = Titel aus Zeile 1.txt", Datei "02.txt = Titel aus Zeile 2.txt" und so weiter. Ist das machbar? Gibts da ein Programm oder bestimmte Befehle für eine Batchdatei?

...zur Frage

In Java einen Text in eine Datei einfügen

Hallo,

ich habe eine Frage zum Einfügen eines Textes in eine Textdatei (.txt) mittels Java (siehe Bild).

Ich möchte eine Zahl, diese ist schon ein String, einmal in die Textdatei Test.txt und als BackUp in die Textdatei BackUp.txt schreiben. (Die Methoden werden in einer weiteren Methode "speichern(String pNummer)" direkt hintereinander aufgerufen.)

Dabei soll vor jeder eingefügten Zahl ein Zeilenumbruch sein. Dies geschieht mit Hilfe des Befehls ".write(System.getProperty("lineSeperator"))". Nur leider funktioniert das nicht so ganz. Java kann den Befehl ".write(System.getProperty("lineSeperator"))" nicht in EINER Methode (speichern(String pNummer)) ZWEIMAL aufrufen.

Was kann ich tun, damit in beiden Textdateien die Zahlen untereinander aufgeschrieben werden? Gibt es noch einen anderen Befehl, mit dem man einen Zeilenumbruch realisieren kann?

Vielen Dank im Vorraus, Jonas918

...zur Frage

Was möchtest Du wissen?