Abspeichern von Textboxen als Textdokument (Visual Studio)

  • C#

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Abspeichern von Textboxen als Textdokument (Visual Studio)

    Guten Tag zusammen,

    ich bin totaler Anfänger und versuche gerade mein eigenes erstes Programm zu schreiben. Nun habe ich eine (ich glaube etwas kompliziertere) Frage:

    Ich habe in meinem Programm verschiedene Textboxen mit Bezeichnung. Sobald alle Eingaben erfolgt sind sollen die Eingaben als Textdokument abgespeichert werden.
    Das heißt, ich möchte diese später mit Word oder Texteditor aufrufen können.

    Wenn das geschafft ist, wäre der nächste Punkt, dass ich ein Dokument vorprogrammieren möchte sodass die eingegebenen Daten immer an der selben Stelle (!automatisch!) eingefügt und abgespeichert werden.

    Ich hoffe das war irgendwie schlüssig :) Wenn das technisch möglich ist freue ich mich über zahlreiche Antworten :) Ich nutze Visual Studio.
    Nun, das speichern in ein einfaches Textdokument, also eine .txt Datei ist sogar noch recht simpel, jedoch ohne jegliche Formatierung, oder Positionierung. Dazu einfach alle Texte der Textboxen aneinander hängen, und dann via File.WriteAllText in eine Datei packen.

    Was das Worddukment angeht, wird es schon wesentlich interessanter, oder komplizierter.

    Hier mal ein Tutorial wie man ein Worddokument erstellt:
    c-sharpcorner.com/UploadFile/m…d-document-using-C-Sharp/
    Nunja, einfach Zeug in eine .txt Datei speichern, und ein formatiertes Worddokument zu erstellen sind 2 Paar Schuhe. Ersteres FlipFlops, letzteres 30-loch Springerstiefel.

    Wenn du die Datei hinterher nicht mehr im Programm verwendest, kannst du die Textboxen einfach zusammenfügen in eine String-Variable, und dann schreiben:

    C#-Quellcode

    1. private void WriteTextsIntoFile()
    2. {
    3. string fileContent = textbox1.Text + textbox2.Text + textbox3.Text;
    4. File.WriteAllText(fileContent, "meineDatei.txt");
    5. }


    Dabei wird nun aber der Text einfach aneinander angefügt. Wenn du das noch etwas getrennt haben möchtest, sähe das ganze eher so aus:

    C#-Quellcode

    1. private void WriteTextsIntoFile()
    2. {
    3. string fileContent = $"{textbox1.Text};{textbox2.Text};{textbox3.Text}";
    4. File.WriteAllText(fileContent, "meineDatei.txt");
    5. }


    Was die Worddatei angeht... Nun, da würde ich dir vorschlagen, erstmal dein Formular, so wie du es gerne hättest, in Word anzulegen, und es dann mit den Klassen, die im Tutorial verwendet werden aufzurufen, und dir die Struktur anzusehen. Dann kannst du die Objekte entsprechend Manipulieren sodass nacher das Dokument die Informationen aus deinen Textboxen enthält.
    Dazu jedoch musst du dich des Debuggens in VisualStudio bemächtigen.
    @philippfing3003 Willkommen im Forum. :thumbup:
    Wenn Du den Inhalt mehrerer TextBoxen in eine Datei schreiben willst, geht das z.B. mit File.AppendAllText().
    Das Word-Dokument ist eine völlig andere Sache, und wenn Du Dich als "Totalen Anfänger" bezeichnest, rate ich Dir: Lass es sein.
    Weil:
    Woher kommt die Information, welcher Teil des Dokuments im Word-Dokument wohin positioniert werden soll?
    Wäre es da nicht sinnvoller, Du erstellst aus Deinen TextBoxen n Text-Dokumente und fügst diese separat ein?
    Was ginge:
    Kopiere den Inhalt jeder TextBox einzeln in die Zwischenablage (geht per Button oder ContextMenü) und fügst sie dann manuell in Dein Word-Dokument.
    docs.microsoft.com/de-de/dotne….settext?view=netcore-3.1
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Alles klar, das hört sich doch recht kompliziert an. Ich habe es nun geschafft die Textboxen formlos in den Editor zu übertragen.
    Ist es denn möglich diese im Editor anzuordnen und am Ende eine .pdf Datei daraus zu machen? Die PDF Datei kann man ja zur Not auch selbst drucken.

    Das heißt ich hätte gerne so ein Layout im Editor (beispielhaft):

    <Textbox1>
    <Textbox2>
    <Textbox3>



    <Textbox4>

    <Textbox 5>


    <Textbox 6>





    Wenn es dafür eine Lösung gibt wäre es super :)
    Willkommen im Forum.

    Natürlich gibt es dafür eine Lösung. Such mal im Forum nach Dokument drucken. Wenn Du den Code hast und Du ihn zum Laufen bringst, kannst Du noch sagen, dass als Drucker z.B. Microsoft Print To PDF verwendet werden soll. Dann entsteht auch eine PDF. Aber das ist dann schon 3 Schritte weiter. Das "formatierte Textdokumenterstellen" ist in der von Dir vorgegebenen Fassung noch ziemlich einfach: Du nimmst einen StringBuilder her, schreibst alles in ihn rein und gibst das Ganze mit IO.File.WriteAllText in ne Datei.
    Ganz kurz also:

    VB.NET-Quellcode

    1. Dim StringBuilder As New System.Text.StringBuilder
    2. StringBuilder.AppendLine(TextBox1.Text)
    3. StringBuilder.AppendLine '3 Leerzeilen, hier 1. Zeile
    4. StringBuilder.AppendLine '2. Zeile
    5. StringBuilder.AppendLine' 3. Zeile
    6. StringBuilder.AppendLine(TextBox2.Text)
    7. '…
    8. IO.File.WriteAllText(Zieldateipfad, StringBuilder.ToString)

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Sind die beiden Fragen zusammenhängend? Falls nicht:
    Antwort auf Frage 1: eine einfache Textdatei kennt keine Textausrichtung, sie ist plain text. Willst Du ein formatiertes Dokument, musst Du mit einem solchen arbeiten. Da gäbe es das RichTextFormat, die Officeformate und tausende andere. Aber da ist's aus mit einfachen Lösungen.
    Die 2. Frage versteh ich inhaltlich nicht. Gib mal bitte ein Beispiel, welches nicht durch den Code in Post#7 erreicht wird.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    philippfing3003 schrieb:

    und am Ende eine .pdf Datei daraus zu machen?
    Poste eine vollständige und belastbare Aufgabenstellung :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vollzitat entfernt ~VaporiZed

    Puh... Wenn sich jemand die Zeit nehmen würde, um mir die komplizierte Variante zu erklären, wäre ich sehr sehr dankbar. Ich denke, dass ich sonst sehr viele Umwege mache...

    Ich meine mit der zweiten Frage: Wenn ich z.B. im Editor irgendwo im Dokument "<Textbox1>" schreibe und dann im Visual Studio Code sage: "Füge den Inhalt aus Textbox1 im Editor-Dokument an die Stelle <Textbox1> ein. Hoffe das war jetzt verständlicher.

    Ich würde nämlich ganz gerne einige Texte an die rechte Seite des Dokuments schreiben. Mit dem Code in Post7 sind die ja alle Linksbündig.

    Lg

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @philippfing3003

    RodFromGermany schrieb:

    Poste eine vollständige und belastbare Aufgabenstellung :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Okay, mit den Texten habe ich alles geschafft! Danke nochmal für die Hilfe.

    Jetzt aber wieder eine neue Frage: Meine Texte werden aktuell in eine Textdatei gespeichert, welche dann wiederum in eine .pdf Datei gedruckt wird. Ich möchte dieser PDF Datei aber noch (automatisch aus dem Programm heraus!) ein Bild hinzufügen.
    Das heißt ich möchte im Programm über einen OpenFileDialog ein Bild auswählen können und es dann in das Dokument an eine bestimmte Stelle einfügen können, bzw. soll es dann automatisch eingefügt werden. Ist das möglich und wenn ja wie?

    Und meine zweite Frage: Wie kann ich den Text, der am Ende in dem Dokument steht, formatieren? Z.B. Blocksatz, Zeilenhöhen, Schriftgröße, Fett/Dünn gedruckt usw...

    Lg

    philippfing3003 schrieb:

    Jetzt aber wieder eine neue Frage:

    RodFromGermany schrieb:

    Poste eine vollständige und belastbare Aufgabenstellung
    Ich bin dann mal raus hier. X(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!