Fehler bei Script mit DBF-UDF

  • Hi Leute!


    Habe mir zwei kleine Scripte mit der DBF-UDF von Funkey geschrieben.

    Sinn ist es, in einer DBF in einer Spalte drei Zeichen zu entfernen, bzw hinzuzufügen.


    Tja ... gestern lief das Script noch ... heute nicht mehr ... und vielleicht sehe ich gerade den Wald vor lauter Bäumen nicht ...

    Vielleicht könnt Ihr mir ja ein wenig auf die Sprünge helfen ...


    Hier mal das erste Script ...

    Es öffnet die DBF nicht mehr, die selbstredend existiert und auch nicht beschädigt ist.



    Vielen Dank im Voraus

    Olaf

  • Tja ... gestern lief das Script noch ... heute nicht mehr

    DAS Skript, das Du hier gepostet hast, lief sicher auch gestern nicht.

    -> ERROR: missing EndIf


    -> ERROR : MsgBox(4096, "", "Fehler in Datensatz " & $i & ", String endet nicht mit ".FO" ..." & @CRLF) ==> "... nicht mit '.FO' ..." & @CRLF)


    EDIT : oberh

    -> Global $sPLANZ besser außerhalb der Schleife deklarieren


    Ich habe auch mal die benötigten Includes angehängt

    Gruß Musashi



    Dateien

    • DBF.zip

      (13,94 kB, 61 Mal heruntergeladen, zuletzt: )
    • FileSelectFolder.au3

      (6,44 kB, 68 Mal heruntergeladen, zuletzt: )

    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."

    2 Mal editiert, zuletzt von Musashi ()

  • Hi!


    Erst einmal vielen Dank!


    Doch, doch ... das lief ...


    Danach hatte ich lediglich die Messageboxen eingefügt - und damit den Gänsefüßchenfehler.

    Und das EndIf ist verschwunden, weil ich hier im Forum überschüssige Zeilen entfernt hatte - leider einmal eine zu viel.

    Jo ... die Deklaration steht nun außerhalb der Schleife.


    Danke auch noch mal für die beiden Anhänge. Beide hatte ich gestern erst herunter geladen. :)


    Hmmm ... "Fehler beim Öffnen der dbf ..." heißt es weiterhin ...


    Ich füge den Code jetzt noch mal 1:1 ein ...


  • Danke auch noch mal für die beiden Anhänge. Beide hatte ich gestern erst herunter geladen. :)

    Hmmm ... "Fehler beim Öffnen der dbf ..." heißt es weiterhin ...

    Könntest Du ggf. eine .DBF Datei posten, damit geneigte Helfer das Skript testen können, oder enthält sie vertrauliche Daten ? (Datei vorher zippen, sonst wird sie hier nicht als Anhang akzeptiert)

    Gruß Musashi

    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."

  • Oberh hast du den Hinweis von Musashi geändert?

    -> ERROR : MsgBox(4096, "", "Fehler in Datensatz " & $i & ", String endet nicht mit ".FO" ..." & @CRLF) ==> "... nicht mit '.FO' ..." & @CRLF)

    In deinem letzten Post ist das immer noch falsch.


    Wobei ich (meine persönliche Meinung) Strings immer in ' anstatt " setze und somit im String " ganz normal verwenden kann ohne darauf achten zu müssen.

  • Hi!

    Normalerweise bin ich derzeit im Homeoffice ... heute mal nicht. Daher ist hier gerade etwas mehr los ...

    Habe jetzt auch die Hochkommata im Code geändert, und nicht nur in der Kommentarzeile ... <schäm> ;)


  • Du solltest Dein Skript zumindest einmal mit F7 'builden', bevor Du es postest !

    Global $sPLANZ as string ist unzulässig.

    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."

  • Hi!


    Komme mir vor, als wäre ich ein Dummy ...


    Sorry ... habe jahrelang in Access programmiert ...


    Habe es jetzt abgeändert in: Global $sPLANZ


    Ich rufe das Script immer über die Autoit3.exe mit der au3-Datei als Parameter auf.


    Als "GUI" nutze ich nur den Notepad++.


    Und natürlich starte ich den Code vorher immer erst einmal, bevor ich ihn hier poste ...


    Die falsche Deklaration hat aber wohl nicht gestört.


    Habe jetzt mal den Code auf das Wesentliche reduziert und durchlaufen lassen ...

    Immer noch kommt die Meldung: "Fehler beim Öffnen der dbf ..."

    Musashi: Habe bitte ein wenig Geduld mit mir ... :)


    EDIT-BugFix: Code formatiert

  • Ich rufe das Script immer über die Autoit3.exe mit der au3-Datei als Parameter auf.

    Als "GUI" nutze ich nur den Notepad++.

    Ich empfehle Dir dringend, AutoIt mit der Vollversion des SciTE-Editors zu verwenden.


    Ich habe mal einige ConsoleWrites eingebaut und den Pfad direkt gesetzt (damit man nicht immer durch den FileSelectFolder-Dialog durch muss ;)).

    (nebenbei : #include-once kannst Du Dir schenken)


    Hier der Console-Output von SciTE beim ersten Durchlauf :

    Öffnen der DB funktioniert (auch das Ändern).

    Ein erneuter Durchlauf zeigt :

    Es wurden alle .FO entfernt.


    Gruß Musashi

    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."

  • Wie sieht es denn in der DBF.au3 aus? Der Fehler kommt ja von dort.

    Hi Moombas !

    Hast Du mein Skript (aus Beitrag #10) mal ausgeführt und bekommst Du eine Fehlermeldung ?

    Gruß Musashi

    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."

  • Hab erst jetzt gesehen das die DBF.au3 ja "fremd" Ware ist^^


    Aber bei mir läuft deins durch, hab nur keine dbf-Datei zum testen.


    Edit: Mit der DBF von oben läuft es einwandfrei durch.

  • Hi!


    Die hatte ich oben schon eingestellt.


    Musashi

    Dein Script habe ich auch mal abgespeichert und in den selben Ordner meine dbf gelegt.

    Dann habe ich noch mal den Inhalt Deiner dbf.zip verglichen mit dem Stand, der mir von gestern vorlag - bis auf die Minute identisch.

    Die dll und die au3 habe ich dann trotzdem noch einmal in den include-Ordner von AutoIt verschoben.

    Habe es durchlaufen lassen ... immer noch öffnet er die dbf nicht. >Grrrr....>


    Den SciTE kann ich hier nicht installieren ... dazu habe ich keine Rechte.

    Programmiere ja nicht mehr in Access, da es von unserer EDV nicht gewollt ist, dass hier programmiert wird.

    Daher habe ich mich ja nun für AutoIt entschieden, um wenigstens kleinere Tools schreiben zu können.

  • oberh: Ggf. solltet ihr dann eine Anforderung zur Arbeitserleichterung an die EDV stellen mit entsprechenden Begründungen (Zeitersparnis von X Stunden/Woche etc.). Wenn sich das summiert wird sie eventuell entwickeln müssen oder euch es doch erlauben.

  • Den SciTE kann ich hier nicht installieren ... dazu habe ich keine Rechte.

    Programmiere ja nicht mehr in Access, da es von unserer EDV nicht gewollt ist, dass hier programmiert wird. Daher habe ich mich ja nun für AutoIt entschieden, um wenigstens kleinere Tools schreiben zu können.

    Zu den Entscheidungen eurer EDV kann ich natürlich nichts sagen. Was machst Du denn mit den 'kleineren Tools', die Du mit AutoIt erstellen möchtest. Wenn die im Rahmen eures Firmennetzes laufen sollen, dann dürfte das die EDV sicher auch nicht begeistern, zumal AutoIt .exe gerne die Virenscanner triggern;).

    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."

  • Hi!


    Keine Chance ...

    Sie lassen nur noch Fremdsoftware zu.

    Für solch ein kleines Tool ist es aber doch Blödsinn eine Fremdfirma zu beauftragen.


    Leider sehen sie nur als Beispiel ein Projekt, wo der Programmierer die Stelle gewechselt hatte und niemand nun mehr die Datenbank betreuen konnte.


    Ich selbst habe hingegen schon Daten gerettet, wo die Kaufsoftware nicht mehr lief und die Firma und damit ein Support nicht mehr existierte.


    Ich habe zwar noch eine Access-Lizenz, jedoch kann ich die Programme nicht mehr verteilen.


    Bei diesem Projekt hier wollen wir eine andere Abteilung bei der Digitalisierung von Bebauungsplänen helfen.

    Die dort vorrätige Software arbeitet mit alphanumerischen Schlüsseln (siehe Feld PLANZ), die je Geometrietyp eindeutig sind.

    Wir hier arbeiten aber mit Geograf, wo die Konstruktionswerkzeuge einfach besser sind.

    Allerding kollidieren hier die Schlüssel bei Linien- und Flächenobjekten,

    Daher habe ich jedem flächenförmigen Objekt ein ".FO" an den Schlüssel gehangen.

    Wenn wir die Daten also abgeben wollen (per SHP-Schnittstelle), dann muss diese Zeichenkette entfernt werden - erhalten wir Daten und wollen diese bei uns einlesen, muss die Zeichenkette ergänzt werden.

    Schlüsselkonflikt gelöst ...


    Keiner konnte ahnen, dass aus diesem "ich programmiere mal eben was in AutoIt" solch ein Problem entsteht ... :)


    Musashi

    Darauf lasse ich es ankommen ... :)


    AutoIt habe ich schon im Netzwerk liegen. In Geograf habe ich eine Symbolleiste mit den beiden Befehlen erzeugt, sodass sie jeder nutzen kann.

  • (Da haben sich unsere Beiträge wohl gerade überschnitten)

    Klingt alles sehr stark nach Behörde ^^.

    Darauf lasse ich es ankommen ... :)

    AutoIt habe ich schon im Netzwerk liegen. In Geograf habe ich eine Symbolleiste mit den beiden Befehlen erzeugt, sodass sie jeder nutzen kann.

    Zur Not installiere Dir AutoIt und Scite4AutoIt3 (Vollversion von SciTE) halt auf Deinem privaten PC. Dort kannst Du die Skripte vernünftig entwickeln und , sobald sie laufen, in euer Netzwerk übernehmen :P.

    Alternativ kannst Du die Skripte auch als .a3x Dateien kompilieren und sie über die AutoIt3.exe (als Interpreter) starten.


    Gruß Musashi

    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."

  • Jepp ... Behördenwahn pur ... :)


    Immerhin sollen wir, was die Sicherheit angeht, mit zu den führenden Behörden in D gehören ...


    Ja, werde es mal auf meinem privaten Rechner testen, wenn ich morgen wieder im Homeoffice bin.


    Allerdings muss ich auch da aufpassen, was ich installiere ...


    Kürzlich habe ich Zoom für private Zwecke installiert. Prompt kam eine Meldung: Jeder, der die Software auf seinem privaten Rechner nutzt (mit dem ja auch Homeoffice gemacht wird), fliegt aus dem Netz ...

    Also musste ich es wieder deinstallieren ...


    Moombas

    Danke Dir ... Schaue ich mir gleich mal an ... Da war ich zwar schon, hatte aber SciTe nicht gesehen ...

  • Müsste in der Zip eigentlich enthalten sein. Kann sie selber aber gerade nicht runter laden, Chrome zickt aktuell ein wenig.


    Edit: Mit Firefox ging es: Scite ist enthalten.

  • Ich hatte dieselben Probleme mit dem Skript:


    Zitat


    "Fehler beim Öffnen der dbf ..."

    Ein einfügen von:

    Code
    #AutoIt3Wrapper_UseX64=n

    im Kopf des Skriptes und Problem ist verschwunden. Mein Consolenoutput von Musashi 's Skript (mit obigem Zusatz):