Bug oder nicht Bug oder wenigstens ungereimt?

  • Ich habe von AspirinJunkie den Tip bekommen mein "Problemchen" erst mal hier zu erörtern bevor man das an die Macher von Autoit sendet.

    Vorab Nein es ist kein riesen Problem und ja natürlich kann man es umgehen!

    Der Reihe nach:

    @ScriptDir --> liefert den Pfad zum Script / der *.exe

    ABER

    sofern das Programm im Wurzelverzeichnis F:\test.exe liegt wird F:\ zurückgegeben. Liegt das Programm aber in einem Ordner z.B. F:\Ordner\test.exe wird F:\Ordner zurückgegeben.

    Wenn man nun die Pfadangaben ergänzen will mus man im einen Fall ein & "\test.ini" im anderen Fall ein & "test.ini" hinzufügen.

    Natürlich geht das auch anders. Und ja es mag noch 47 Mio Möglichkeiten geben. Ich finde man könnte das mal so vereinheitlichen dass die Antworrt von @ScriptDir einheitlich ist.

    Z.Z löse ich das so, und ja es macht keine Arbeit das immer ganz vorne mit dazu zu kopieren....aber elegant ist es nicht. Und wenn das zufällig mit irgendwelchen Windooof gepflogenheiten übereinstimmt - macht trotzdem keinen Sinn!

    ; --- Pfaden Anfang ----

    if stringlen(@ScriptDir) <= 3 Then

    $Start_dir = Stringleft (@ScriptDir, 2)

    Else

    $Start_dir = @ScriptDir

    EndIf

    MsgBox (0, "Start Dir", $Start_dir);------ Pfaden Ende

    ; Pfaden muss sein, da dder Befehl @ScriptDir z.B. bei F -> F:\ also mit dem Schrägen liefert bei F:\test -> eben den Schrägen nicht liefert. Damit würden Pfadzusammensetzungen unterschiedlich ausfallen.

    ; Eine Autoit Ungereimtheit, die man mal beseitigen könnte.


    LG

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • sofern das Programm im Wurzelverzeichnis F:\test.exe liegt wird F:\ zurückgegeben. Liegt das Programm aber in einem Ordner z.B. F:\Ordner\test.exe wird F:\Ordner zurückgegeben.

    Ja, das ist eine Windowsmacke. "F:" ist laut Windows kein Ordner sondern ein Laufwerk und bekommt deshalb den Backslash verpasst. Ist idiotisch.

    Ich verwende in der Regel die Lösung, von allen Pfadangaben immmer evtl. folgende Backslash zu killen. Nur eine Zeile: StringRegExpReplace("PFAD_mit_ohne_BS", '\\$', '')

  • BugFix

    ja so hat jeder seine Lösung. Ich verwende immer meine Variable $Start_dir die einmalig richtig befüllt wird. Aber doof allemal...

    So long

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Also ein Bug ist es nicht, da das Verhalten exakt so ist wie in der Doku beschrieben:

    Zitat

    Directory containing the running script. Only includes a trailing backslash when the script is located in the root of a drive.

    Wäre also ein Change-Request.
    Ich persönlich fände es einheitlich auch schöner aber ich vermute ganz stark, dass das Thema schon mehrfach zur Sprache kam und trotzdem alles so blieb wie bisher.

  • okay its not a bug its a feature :rofl::rofl::rofl:

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • AspirinJunkie

    wenn wir das bemängeln wollen, wessen Englisch ist gut genug das passend zu formulieren? Normal hätte ich das geschrieben, aber wahrscheinlich kann das der eine oder andere deutlich besser als ich?

    LG

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Dem letzten post von AspirinJunkie kann ich nur absolut zustimmen. Das Thema ist ggf. bereits "on track", daher schaue bitte nach, formuliere gern dein CR (change request) und melde dich bei "@Jos", @Melba23" oder bei "@JLogan3o13". Dies sind die drei aktivsten Admins dort 😀 .

    Wäre cool wenn du etwas erreichen könntest diesbzgl., doch sei nicht enttäuscht wenn da nicht viel kommen sollte.

    Viele Grüße
    Sven

  • Ohne einen konkreten Grund (warum muss ich das unbedingt haben & warum ist ein Workaround zu aufwändig) wirst du bei den devs gegen eine Wand laufen. Ich weiß nicht wie viele Leute gerade am Code arbeiten, aber ich vermute es sind in etwa null Personen. Vor einem halben Jahr hatte der Chef wohl einen Motivationsschub und hat einiges gemacht, inzwischen ist der aber abgeklungen, und die Änderungen die die Co-Devs machen werden erstmal vom Chef gesammelt/verwaltet/angenommen/abgelehnt und landen dann alle Schaltjahr in einer Beta.

    Ich würde mir da keine Hoffnungen machen, egal wie gut der Request formuliert ist. Dafür ist die Sache nicht dringend genug dass dafür jemand aufsteht (die letzten 2 Sachen die für ein "Erwachen der devs" gesorgt haben waren "AutoIt wird 10x langsamer wenn man ein Fenster geöffnet hatte/hat", und "AutoIt rechnet falsch da im Parser für mathematische Ausdrücke ein Bug ist").

    M

  • Es gibt dazu bereits ein Ticket (von vor knapp 10 Jahren ! ) : https://www.autoitscript.com/trac/autoit/ticket/2373#ticket

    Ich denke wie Mars , dass es wenig Sinn macht, ein weiteres zu öffnen.

    Siehe auch die Diskussion im Thread : https://www.autoitscript.com/forum/topic/15…trailing-slash/

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ätsch - das Ticket was ich verlinkt habe ist älter als deines .. :P

    Stimmt, habe ich gar nicht gesehen. 5 Jahre Unterschied sind für AutoIt-Verhältnisse allerdings nur ein Wimpernschlag ^^ .

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ok da war ich wohl blauäugig. Lassen wir es wie es ist.... Es gibt ja mindestens 2 Lösungen fürs Problem :)

    Danke für den Tipp mit dem Übersetzer.

    Von mir aus clossed....

    Danke an alle

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Meine Lösung sieht meistens so aus (für mich endet ein Verzeichnis immer mit einem Backslash):

    AutoIt
    Global $sPath = @ScriptDir
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sPath = ' & $sPath & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

    Das sehe ich auch so, da es nunmal auch Dateien ohne Endung (host z.B.) gibt ist für mich alles andere eigentlich falsch, hab mich aber damit abgefunden teilweise damit arbeiten zu müssen.

  • Meine Lösung sieht meistens so aus (für mich endet ein Verzeichnis immer mit einem Backslash):

    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'

    Wäre dann nicht die Verwendung von _WinAPI_PathAddBackslash ein praktikabler Weg ?

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ich sehe schon meine Lösung ist die längste :(

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Danke für den Trost

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)