code Compiler

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von vbfrage446.

    Es liegt daran das du z.B. soetwas schreibst "screenshot.Save(" & c34 & TB_Speicherpfad.Text & c34 & " & ""test3"" & "".jpg"")"

    Daraus wird dann screenshot.Save("TB_Speicherpfad.Text" & "test3" & ".jpg")
    Wenn allerdings "TB_Speicherpfad.Text" in Anführungszeichen steht wird das ganze nicht als Textbox erkannt sondern als String.

    Du musst also die falsch gesetzten Anführungszeichen entfernen.
    Außerdem: Füge einfach den Quelltext so ein, als ob du ihn direkt kompilieren würdest, d.h. programmiere die Datei z.B. in einem neuen Projekt und füge die Datei als Text dem Programm, das kompilieren soll in den Ressourcen hinzu.
    Ersetze dabei TB_Speicherpfad.Text, usw. mit dem Wert. Dies geht z.B. so, dass du den Wert in der Textressource durch {0}, {1}, usw. ersetzt und über String.Format einfügst. Achte darauf, dass hierbei keine {0} im Text vorkommen dürfen, die nicht ersetzt werden sollen.
    Eine andere Möglichkeit, als String.Format ist, dass du direkt mit regulären Ausdrücken (System.Text.Regex) arbeitest und sämtliche Auftritte von TB_Speicherpfad.Text, usw. heraussuchst und entsprechende Ersetzungen vornimmst. Dies geht insbesondere durch den Replace-Aufruf, der einen Delegaten nimmt.
    Das verbessert das Lesen des Codes und insgesamt sämtlichen Code, wenn du ihn erweitern musst.

    Andernfalls habe ich dir ja bereits erklärt, dass du in deinem Code Syntaxfehler hast - wie dir der Compiler ja auch mitteilt. Fakiz hat dir ja bereits beschrieben, warum das, was du vorhast, nicht geht. Chr(34) bzw. c34 solltest du nur vor tatsächlich als String gewünschten Inhalten platzieren, d.h. wenn im Quellcode wirklich soetwas steht, wie ".jpg".
    Beachte, dass "" & bla & "" nur <bla> ergibt, d.h. du musst """" & bla & """" schreiben, sodass "<bla>" herauskommt (<bla> steht für die Darstellung des Wertes in bla, d.h. z.B. wenn bla "abc" ist, so ist <bla> eben abc, wenn bla 1 ist, so ist <bla> ebenfalls 1, ist eine rein "formale" Geschichte).

    Viele Grüße
    ~blaze~
    Ich habe es hin bekommen, das ich den code als Text in die Ressourcen hinzugefügt habe und mit Regex.Replace einzelne stellen im Text geändert werden kann. Nun ist meine frage, wenn ich jetzt anstatt z.b. C:\Users\System1\Destop ändere in Environment. GetFolderPath(Environment. SpecialFolder.Desktop) , dann sagt mir der Compiler das Environment nicht deklariert ist. Wie kann ich Environment deklarieren?
    Da fehlt evtl. der System.Import, oder aber du schreibst System.Environment.SpecialFolder.Desktop
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @vbfrage446 Bringe Deinen Code in einer Studio-Umgebung ohne den den Schalter Anwendungsframework aktivieren zum Laufen, dann kannst Du ihn auch mit CodeDom compilieren.

    Oder Du schreibst den Code in C#, das wäre äquivalent.
    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!
    @vbfrage446 Du musst jedes Zipfelchen selbst importieren, importiere System.
    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!
    Habe ich gemacht. Habe jegliche Imports schon drin. Ich schätze es lag daran, das ich
    Environment.SpecialFolder.Desktop geschrieben habe, anstatt:
    System.Environment.SpecialFolder.Desktop.
    Danke nochmals für eure antworten
    Wenn irgendwas nicht klappt, melde ich mich wieder
    Du musst auch den Namensraum importieren. Der Assistent sollte dir eine entsprechende Information einblenden (das Lämpchen). Ohne den Assistenten importieren kannst du ihn auf zwei Arten: Globaler Import in den Verweisen (da gibt's eine Liste aller Namensräume, suche System und setze dort den Haken), Import auf Klassenebene (Imports ... schreiben, z.B. Imports System).

    Mir ist allerdings trotzdem noch nicht ganz klar, was du mit deinem Programm bezweckst. Warum kannst du die Informationen nicht einfach über eine separate Datei mitliefern?

    Viele Grüße
    ~blaze~
    @vbfrage446 Und?
    Woran hat es gelegen?
    Wir wollen doch die Kollegen, die dasselbe Problem haben, nicht auf dem Trockenen sitzen lassen.
    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!