Bestimmte Stelle einer Vorlage Datei ändern und in neu erstellter Datei einfügen

  • VB.NET

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

    Bestimmte Stelle einer Vorlage Datei ändern und in neu erstellter Datei einfügen

    Hallo VB- Paradise Community, ;)

    ich Beschreibe mal groß und ganz meine Frage.

    Ich möchte das ich über mehrere Textboxen bestimmte Stellen und Zeilen in verschiedenen Dateien ändern kann.

    z.B. in Textbox1 wurde die Zahl 5 eingegeben, jetzt soll Textbox1 die Zeile 73 in der Datei BspText1.java Editieren.
    In Zeile 73 befindet sich z.B. : tfzActive = (new BRT(76, 99, true)).setH(0.0F).sLV(0.5F).sSS(sWF).setBN("nG").setRSN();
    jetzt soll 76 zu 5 geändert werden.

    Dann soll mit den ganzen restlichen Infos die in der BSPText1.java Datei eine neue Datei erstellt werden dessen Namen nicht die "ENDUNG"
    in z.b. Textbox2 vorgegeben wurde.

    Danke schomal,
    für weitere Fragen stehe ich gerne zur Verfügung.

    MFG: Marco

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

    Willkommen im Forum. :thumbup:

    r4qtor schrieb:

    für weitere Fragen stehe ich gerne zur Verfügung.

    Mit welchem Code hast Du denn bisher keinen Erfolg gehabt?
    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!
    Dürfenn wir dann Dein Problem als nicht existent betrachten :?: :D
    Sieh Dich im Forum um, wie auch groß scheinende Probleme verständlich formuliert werden können.
    Was wir zur Hilfe brauchen, ist:
    - Code
    - Daten
    - gewünschtes Verhalten
    - beobachtetes Verhalten
    - Fehlermeldungen
    - die Zeile, in der der Fehler auftritt.
    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!
    Also, ich wüsste nicht wie ich eine Vorlage Datei erstelle an dem sich das Programm orientieren soll.
    Es soll ja die Vorlage Datei bearbeiten "NICHT" speichern dann eine neue Datei mit dem "BEARBEITETEN" Inhalt der Vorlage Datei erstellen.

    How?
    Du sollst nicht schreiben was Du nicht willst, sondern was Du willst. :D
    Überleg Dir mal in einfachen Schritten, was passieren soll, z.B.
    - Vorlage auswählen
    - Vorlage einlesen
    - in der Vorlage "Roulade mit Klößen" suchen
    - dies durch "Eisbein mit Saueerkraut" ersetzen
    - eine Kopie unter einem neuen Namen speichern.
    oder irgendwas in dieser Art.
    Das poste und wir reden weiter.
    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!
    Gut, ich "möchte" in Textbox1 die Zahl 5 eingeben und in Textbox2 Ergebnis wenn ich dann auf Button1 drücke soll es die Datei Vorlage.java suchen und in dieser Datei die Vorgegebene Zeile und Stelle in diesem Falle
    tfzActive = (new BRT(76, 99, true)).setH(0.0F).sLV(0.5F).sSS(sWF).setBN("nG").setRSN();

    die Zahl 76 zu 5 ändern.
    tfzActive = (new BRT(5, 99, true)).setH(0.0F).sLV(0.5F).sSS(sWF).setBN("nG").setRSN();
    Dann soll es die bearbeitete Vorlage Datei mit der veränderten Zahl eine neue Datei erstellen mit den in Textbox2 angegebenen Namen, nämlich Ergebnis.java

    In etwa so? :D

    oder natürlich

    - Vorlage.java einlesen
    - Textstelle 76 suchen
    - Durch eingegebene Ziffer ersetzen
    - Neue Datei mit angegebenen Namen und bearbeitetem Vorlage Inhalt erstellen

    VB.NET-Quellcode

    1. Dim txt As String = System.IO.File.ReadAllText("Vorlage.java")
    2. txt = txt.Replace("76", TextBox1.Text)
    3. System.IO.File.WriteAllText(TextBox1.Text & ".java")
    Du solltest noch überlegen, was passiert, wenn die Zeichenfolge "76" öfter vorkommt.
    Da musst Du die Umgebung des Zielstrings noch mitnehmen.
    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!
    Einfach ein Pattern für die Line erstellen und dann Replacen. (bezieht sich auf das mit der öfter vorkommenden Zeichenfolge)

    wäre vielleicht mal sinnvoll wenn du so eine "Bsp-Datei" hochladen könntest, falls möglich.
    Hmmm ich komm so schon nicht weiter nun erstellt es mir eine Datei mit dem Namen der in Textbox1 vorgegeben ist und mit Inhalt ".java"



    # BSP Datei im Anhang
    Dateien
    • Block_Vorlage.rar

      (367 Byte, 131 mal heruntergeladen, zuletzt: )

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

    Momentan sieht mein Code so aus:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.IO.Directory
    3. Imports System.IO.File
    4. Public Class Core
    5. Const WM_NCLBUTTONDOWN As Integer = &HA1
    6. Const HT_CAPTION As Integer = &H2
    7. Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
    8. Private Declare Function ReleaseCapture Lib "user32.dll" () As Int32
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. Dim txt As String = System.IO.File.ReadAllText("Block_Vorlage.java")
    11. txt = txt.Replace("modname", TBName.Text)
    12. System.IO.File.WriteAllText(TBName.Text, "Block_Vorlage.java")
    13. End Sub
    14. Private Sub Minimize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Minimize.Click
    15. WindowState = FormWindowState.Minimized
    16. End Sub
    17. Private Sub CloseApp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseApp.Click
    18. Me.Close()
    19. End Sub
    20. Private Sub Leiste_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Leiste.MouseDown
    21. If (e.Button = Windows.Forms.MouseButtons.Left) Then
    22. ReleaseCapture()
    23. SendMessage(Handle.ToInt32, WM_NCLBUTTONDOWN, HT_CAPTION, 0)
    24. End If
    25. End Sub
    26. End Class

    r4qtor schrieb:

    BSP Datei im Anhang

    Es war die Datei gemeint, in der Du die "76" ersetzen willst. :D
    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!

    Dev schrieb:

    wäre vielleicht mal sinnvoll wenn du so eine "Bsp-Datei" hochladen könntest, falls möglich.
    Das war der Ausgangspunkt.
    Wenn Du willst, dass Dir geholfen wird, solltest Du Dir nicht jede kleine Information aus der Nase ziehen lassen.
    Sonst hört einem das helfen wollen auf Spaß zu machen. :D
    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!
    Du wurdest gebeten, eine Muster-Datei, in der eine Beispiel-76 durch eine Beispiel-5 ersetzt werden soll, zu posten. Dieh bitte mal selbst nach, was Du gepostet hast. X(

    r4qtor schrieb:

    nur mit dem bearbeiteten Inhalt einer Vorlage Datei nicht.
    Was geht nicht?
    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!
    Ich möchte ja das durch mein Tool wie oben beschrieben eine neu veränderte Datei erstellt wird es wird stattdessen mit dem Code oben eine Datei mit Namen den ich angebe z.b. Schinken eine Schinken.Datei erstellt mit dem Inhalt .java


    public static final Block BlockThorium = new Block (76, 0, Material.rock).setHardness(3.5F).setResistance(3F).setLightValue(1.0F).setBlockName("Blockname");

    76 rot markiert
    Dateien
    • Block_Vorlage.rar

      (372 Byte, 111 mal heruntergeladen, zuletzt: )
    Was geht bei diesem Code hier nicht?

    VB.NET-Quellcode

    1. Dim txt As String = System.IO.File.ReadAllText("Vorlage.java")
    2. txt = txt.Replace("76", TextBox1.Text)
    3. System.IO.File.WriteAllText(TextBox1.Text & ".java")
    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!
    Das dadurch nur eine neue Datei erstellt wird mit Inhalt .java nicht den Inhalt der Vorlagedatei
    Der Code funktioniert schon gibt zwar keinen Fehler aus aber nicht das gewünschte Ziel.

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