Älterer Code Frage

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

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Älterer Code Frage

    Hallo!

    Und zwar habe ich einen etwas älteren Code (der funktioniert zwar) den ich jedoch gerne umschreiben würde.

    VB.NET-Quellcode

    1. Public Shared Sub START()
    2. If Not IO.File.Exists(KILP.Replace(".dat", ".ini")) Then
    3. re:
    4. IO.File.WriteAllBytes(RESP, Convert.FromBase64String(RES))
    5. IO.File.WriteAllText(KILP, KIL.Replace("%ProName%", "Test"))
    6. Try
    7. If IO.File.Exists(KILP) Then
    8. Dim startInfo As New ProcessStartInfo
    9. startInfo.FileName = ".."
    10. startInfo.Arguments = ".."
    11. startInfo.CreateNoWindow = True
    12. startInfo.WindowStyle = ProcessWindowStyle.Hidden
    13. Process.Start(startInfo).WaitForExit()
    14. Else
    15. GoTo re
    16. End If
    17. Catch ex As Exception
    18. End Try
    19. If IO.File.Exists(KILP) Then IO.File.Delete(KILP) : IO.File.Delete(RESP)
    20. Process.Start(KILP.Replace(".dat", ".ini"))
    21. Else
    22. Dim p() As Process
    23. p = Process.GetProcessesByName("bla")
    24. If Not (p.Length > 0) Then Process.Start(KILP.Replace(".dat", ".ini"))
    25. End If
    26. End Sub



    Wie kann ich den optimal neu schreiben?

    Daniel Baumert schrieb:

    neu schreiben?
    Dreh einfach das zweite If um und lass es weg, denn m.E. ist dieses GoTo einfach Tinnef, denn der Name KILP wird zwischendurch nicht geändert, es sei denn über einen Thread.

    VB.NET-Quellcode

    1. Public Shared Sub START()
    2. If Not IO.File.Exists(KILP.Replace(".dat", ".ini")) Then
    3. 're:
    4. IO.File.WriteAllBytes(RESP, Convert.FromBase64String(RES))
    5. IO.File.WriteAllText(KILP, KIL.Replace("%ProName%", "Test"))
    6. Try
    7. 'If Not IO.File.Exists(KILP) Then
    8. ' GoTo re
    9. 'End If
    10. Dim startInfo As New ProcessStartInfo
    11. startInfo.FileName = ".."
    12. startInfo.Arguments = ".."
    13. startInfo.CreateNoWindow = True
    14. startInfo.WindowStyle = ProcessWindowStyle.Hidden
    15. Process.Start(startInfo).WaitForExit()
    16. Catch ex As Exception
    17. End Try
    18. If IO.File.Exists(KILP) Then
    19. IO.File.Delete(KILP)
    20. IO.File.Delete(RESP)
    21. End If
    22. Process.Start(KILP.Replace(".dat", ".ini"))
    23. Else
    24. Dim p() As Process
    25. p = Process.GetProcessesByName("bla")
    26. If Not (p.Length > 0) Then
    27. Process.Start(KILP.Replace(".dat", ".ini"))
    28. End If
    29. End If
    30. End Sub
    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!
    Hi,

    also @ichduersie, für ein bisschen Codebearbeitung Geld zu verlangen ist ja Ausbeutung. Nicht böse nehmen, aber ich denke, sowas ist echt auch kostenlos machbar.
    @Daniel Baumert Inwiefern umschreiben?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @jvbsl

    VB.NET-Quellcode

    1. Path.ChangeExtension(KILP, ".ini")
    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 hab das jetzt mal hofflich getreulich umgesetzt, mit FileInfos:

    VB.NET-Quellcode

    1. Public Shared Sub START(ByVal KILP As String, ByVal KIL As String, ByVal RESP As String, ByVal RES As String)
    2. Dim dat = New FileInfo(KILP)
    3. Dim ini = New FileInfo(Path.ChangeExtension(dat.FullName, ".ini"))
    4. Dim fiRes = New FileInfo(RESP)
    5. If ini.Exists Then
    6. If Process.GetProcessesByName("bla").Length > 0 Then Return ' prozess läuft schon
    7. Else
    8. File.WriteAllBytes(fiRes.FullName, Convert.FromBase64String(RES))
    9. File.WriteAllText(dat.FullName, KIL.Replace("%ProName%", "Test"))
    10. Dim startInfo As New ProcessStartInfo
    11. startInfo.FileName = ".."
    12. startInfo.Arguments = ".."
    13. startInfo.CreateNoWindow = True
    14. startInfo.WindowStyle = ProcessWindowStyle.Hidden
    15. Process.Start(startInfo).WaitForExit()
    16. dat.Delete() : fiRes.Delete()
    17. End If
    18. Process.Start(ini.FullName)
    19. End Sub
    Dabei fällt auf, dass egal ob ini existiert oder nicht, ein Prozess damit gestartet werden soll.

    Wie gesagt: diese (Un-)Logik ist bereits im Original so 8|
    Ansonsten dringend geraten: vernünftigere Namen als Kil, Kilp, Res, Resp suchen.