PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beta Test für HS2 Funktionsbaustein .hsl Datei Checker



Gaston
25.08.05, 23:03
Hallo liebe Homservler,

Ich habe ein Tool geschrieben das HSL Dateien analysyren kann (screenshot unten) und in der Lage ist Fehler sowohl in der Stuktur (Syntax) wie auch in der Mechanik (Zusammenhänge) zu erkennen.

Zur Zeit macht das Tool folgendes:

Parsen aller Zeilen aus der Datei und überprüfung der generellen Struktur (z.B. nicht geschlossene Hochkommas ("))
Parsen der aller Satzzeilen (5000,5001,5002,5003,5004,5012)

Es wird überprüftob alle Felder vorhanden sind
ob alle Felder vom richtigen Datentyp sind
ob die Logik der Zeile stimmt (z.b. Inkohärenz zwischen Anzahl der Ausgänge und Anzahl der Namen dafür in Zeile 5000)

Ueberprüfung der Gesammtstruktur

ob alle Benötigten Zeilen in der richtigen Anzahl (Zeile 5001 z.B. ein und nur ein mal) vorhanden sind
überprüfung ob alle Eingänge,Speichervariabeln und Ausgänge einmal und nur einmal definiert wurden (Zeilen 5002-5004)
Ob die Definition der Zeile 5001 mit den Ein/Ausgängen in der Zeile 5000 übereinstimmt
Parsen der Formeln in Zeile 5012 und daraus die Verwendung der einzelnen Pins (Ein-,Ausgänge, Variabeln und Zeitspeicher) ermitteln (weiteres parsen der Formel wird nicht gemacht)
Daraus ermitteln ob alle Eingänge, Variablen und Zeitspeicher verwendet wurden, und ob alle Ausgänge, Variabeln und Zeitspeicher auch geändert werden
Es werden noch einige Zusammenhänge in Zeile 5012 überprüft, hier werden aber noch weiter folgen (z.b. Eine Zeile mit 'Abbrechen-nach-Ausführung in mitten des codes und ohne Bedingung würde den nachfolgenden Code nie zur Ausführung bringen, etc...)

Fehler werden mit der entsprechnden Zeile frbig dargestellt. Bezieht der Fehler sich auf ein bestimtes Feld, ist dieses hervorgehoben.
Im Prinzip sollte das Tool in der Lage sein alle Fehler ausser der Python syntax zu überprüfen.

Das Tool ist heute soweit fertig geworden dass ich es zum Beta test mal zum Download (http://webplaza.pt.lu/gastgloe/HSModuleChecker.zip) bereitstelle.

Die Dateien einfach in einen Ordner kopieren und Ausführen (Installer wir später folgen). Die Handhabung des Programms ist denkbar einfach. Datei einfach mit Datei->Öffnen öffnen, und schon wird geparsed.

Mit Ctrl-R oder Datei->Recheck kann man die gleiche Datei immer wieder schnell überprüfen.

Während der Betaphase gibt das Programm noch eine Reihe Informationen zur Zeile5012 aus, und zwar welche Variabeln in welchen Feldern erkannt wurden. Ich würde mich freuen wenn Ihr zumindest gelegendlich überprüfen könnt ob er alles richtig erkennt. Allerdings kann man Informationen über das Menü Config->Informationen auch auschalten.

Es ist mir bewusst das das Program die Totale Fehler als 0 anzeigen kann opbwohl es Fehler gibt (dies sollten dann Strukturfehler sein).

Viel Spass beim testen,
und bitte den Feedback nicht vergessen :) ,
Gaston

http://webplaza.pt.lu/gastgloe/hslchecker001.jpg

stefju
25.08.05, 23:46
Hallo,

schönes Tool.
Folgende Meldung habe ich erhalten:
Fehler in Zeile 81:

5012|0|"(EI or OC[1] or EC[1] or EC[2] or EC[3]) and (EN[3]>0)"|""|"(EN[3] *60)"|0|1|0|0

In dieser Zeile muss das Feld 'Formel' eine Formel enthalten


Aus meiner Sicht ist es kein Fehler nichts in Formel zu schreiben.

Gruß Stefan

Gaston
26.08.05, 00:22
Hallo Stefan,

Danke für das Feedback. Ja das war einer der Punkte wo ich mir nicht sicher war. Der Grund dafür ist dass dem Zeitspeicher auch der Wert der Formel zugewiesen wird. Ich bin mir nicht sicher ob das eighentlich zwingend (formal gesehen) sein muss, oder nicht. Da der Experte und der HS das aber dem Anshcein nach so akzeptiert habe ich diese Regel geändert, und diese Fehlermeldung kommt nur noch wenn einer der anderen Pins als Ausgabe fungiert (Ausgang, Variable, Invertierter Ausgang).

Wenn Du das Tool nochmal downloadest hast du die aktualisierte Version.

Gruss,
Gaston

Gaston
26.08.05, 11:49
Gleicher Link (http://webplaza.pt.lu/gastgloe/HSModuleChecker.zip), neue Version 1.0.1.3:

Fehler behoben bei der erkennung von negativen Zahlen :rolleyes:
Fehler behoben bei dem Felder mit nur einem Zeichen nicht in Fehlermeldungen hervorgehoben werden
Warnung hinzugefügt bei Zeilen mit Abbruch-nach-Ausführung aber ohne Bedingung, wenn es sichnicht um die letzte Zeile handelt
Gruss,
Gaston

stefju
26.08.05, 23:02
Hallo,

haben noch mals eine Frage zu:
>>>Der Grund dafür ist dass dem Zeitspeicher auch der Wert >>>der Formel zugewiesen wird.

Ich dachte bis heute:

- Formel geht in Pin und Speicher und Inv Pin
- ZeitFormel geht in Zeit Speicher


Was ist nun richtig?

Gruß Stefan

P.S. Danke für für die Überarbeitung

Gaston
27.08.05, 03:19
Hallo,

Ich dachte bis heute:

- Formel geht in Pin und Speicher und Inv Pin
- ZeitFormel geht in Zeit Speicher

Was ist nun richtig?


Hallo Stefan,

Richtig ist dass die Zeiformel den Zeitpunkt festlegt an dem ein Zeitspeicher auslöst. Die Formal allerdings kann sowohl einem Ausgang, Speicher, dem Inv Pin und dem Zeispeicher zugewiesen werden.

Lautet die Zeile z.B.:

5012|0|""|"10"|"60"|0|1|2|0

So wird die Speichervariable 2 (SN[2]) auf 10 gesetzt, und die Auslösung für den Zeitspeicher 1 auf 60 Sekunden. Wird nun nach 60 Sekunden der Zeitspeicher ausgelöst un der Baustein berechnet, enthält OC[1] den Wert 1 um anzuzeigen dass dieser Speciher den Baustein ausgelöst hat, und ON[1] enthält den Wert 10, den Wert aus der Formel.

Gruss,
Gaston

bytefactory
30.08.05, 10:00
hi gaston,

das ist wieder mal ein cooles tool. danke dafür. ich habe mal auf die schnelle meine ganzen bausteine gecheckt (keine war fehlerfrei :-) )

meine phantasie geht sofort mit mir durch, wenn ich nur an die mäglichkeiten denke, die man hier noch hat. das könnte man zu einem kompletten editor für logikbausteine ausbauen! (liste mit eingängen, ausgängen speichern, timern, alles grafisch ...) just dreaming.

was mir aufgefallen ist:

- alle meine 5000er zeilen ahben hinten immer noch je einen wert für den ausgang dran (brauchst man das wirklich nicht mehr?)
- wenn ich in einer zeile EC[4] benutzze, es aber gar keine 4 eingänge gibt, wird nicht gemeckert.

ciao
tilo

bytefactory
30.08.05, 10:13
hi gaston,

diese datei verursacht eine exception wenn man sie checkt ...

ciao
tilo

Gaston
30.08.05, 10:32
Hi Tilo,

das ist wieder mal ein cooles tool. danke dafür. ich habe mal auf die schnelle meine ganzen bausteine gecheckt (keine war fehlerfrei :-) )

Freut mich dass es Dir gefällt :)

meine phantasie geht sofort mit mir durch, wenn ich nur an die mäglichkeiten denke, die man hier noch hat. das könnte man zu einem kompletten editor für logikbausteine ausbauen! (liste mit eingängen, ausgängen speichern, timern, alles grafisch ...) just dreaming.

Das wäre ein kompletter Umbau, also anderes Program, da man ja dort den Parser nicht mehr bräuchte. Die Idee war mir auch gekommen habe ich allerdings dann Verworfen da die Programierkomplexität für diesen einfachen Dateiaufbau sich nicht lohnt.

Eigentlich sollte der checker auch viel einfacher werden ;)

was mir aufgefallen ist:

- alle meine 5000er zeilen ahben hinten immer noch je einen wert für den ausgang dran (brauchst man das wirklich nicht mehr?)

In der Doku zur Prerelease musste man hier noch die Befehlsausgänge definieren, meinst Du die ? Ja, diese Einträge sind in der Release-doku entfallen.

- wenn ich in einer zeile EC[4] benutzze, es aber gar keine 4 eingänge gibt, wird nicht gemeckert.

Oh, das sollte aber der Fall sein. Ich werde das überprüfen.

Gruss,
Gaston

Gaston
30.08.05, 10:36
hi gaston,

diese datei verursacht eine exception wenn man sie checkt ...

ciao
tilo

Leider ist die Entwickelungsversion zur Zeit nicht debugfähig da arg dran rumgeschraubt wird. Ich werde den Test aber machen sobald sie wieder lauffähig ist, was aber noch heute sein sollte.

Was für die neue Version vorgesehen ist:

Editor direkt aus dem Checker Aufrufen
Wenn der Editor Zeilen- und Spaltenangabe unterstützt direkter sprung zum ersten Fehler
Überwachen der Datei auf Änderung und automaticher check
Überwachen des ganzen "logic" Verzeichnisses auf Änderungen in den .hsl Dateien
Gruss,
Gaston

Gaston
30.08.05, 11:09
hi gaston,

diese datei verursacht eine exception wenn man sie checkt ...

ciao
tilo

Hi Tilo,

Der Fehler der zum Crash führt liegt bei uns beiden :d-lol:

Es kommt zum crash weil ich einen Test bei den Speichervariablen verschlampt habe. Hättest Du allerdings nicht vergessen die die 3. Speichervariable zu definieren, oder in Zeile 5001 nur 2 geschrieben anstelle von 3 dann wäre es nie zum crash gekommen :p

Spass beiseite, danke für den Tip. Leider kann ich die Verbesserung nicht gleich uploaden, ich werde aber Versuchen noch heute eine neue Version hinzubekommen.

Gruss,
Gaston

Gaston
30.08.05, 11:17
- wenn ich in einer zeile EC[4] benutzze, es aber gar keine 4 eingänge gibt, wird nicht gemeckert.


Hallo Tilo,

Könntest Du die Datei senden die zu diesem Verhalten führt, denn ich kann dies nicht nachstellen. Ich bekomme, wie es sein sollte immer die Meldung:

Fehler in Zeile 46:
5012|0|"EN[3] and (EI==1 or OC[1] or EC[1] or EC[4])"|""|"EN[3]"|0|1|0|0
Bei dem Eingang EC[4] ist der index ausserhalb des in Zeile 5001 definierten Bereiches

bytefactory
31.08.05, 08:48
Hallo Tilo,

Könntest Du die Datei senden die zu diesem Verhalten führt, denn ich kann dies nicht nachstellen. Ich bekomme, wie es sein sollte immer die Meldung:

Fehler in Zeile 46:
5012|0|"EN[3] and (EI==1 or OC[1] or EC[1] or EC[4])"|""|"EN[3]"|0|1|0|0
Bei dem Eingang EC[4] ist der index ausserhalb des in Zeile 5001 definierten Bereiches
ooops ... hmmm die hab ich leider nicht mehr ... wenn mir wieder mal sowas auffällt speichere ich gleich mal eine kopie für dich ...

was hast du mit diesem tool noch alles vor? wie gesagt das ist sehr ausbaufähig!!!

ciao
tilo

Gaston
07.09.05, 16:11
So,

Nach einiger Entwickelung ist nun eine neue Version (V1.1.0.7) des Checkers verfügbar. Die neue Version ist unter dem gleichen Link (http://webplaza.pt.lu/gastgloe/HSModuleChecker.zip) wie vorher downzuladen.

Uebersicht der Neuerungen:


Es ist nun möglich einen Editor zu definieren
Monitoring von Dateiänderungen
Detail:

Editor

Im Einstellungsdialog ist es nun möglich einen Editor zu definieren. Im ersten Feld wird die EXE-Datei des editors mittels des Browse Buttons eingestellt. Darunter dann die Parameter des Editors.

Hierbei gelten für die Parameter folgende Regeln:

%f = Dateiname
%l = Zeile
%c = Spalte
[...%x...] = Bedingter Parameter
%% = % Zeichen
%[ = '[' Zeichen
%] = ']' Zeichen
Ein Bedingter Parameter ist ein Teil des Paramneterstrings zwischen '[' unbd ']'. Innerhalb dieses Teilstrings muss zwingend mindestens eine Variable stehen (%f,%l oder %c). Der Teilstring wird nur an das Editokomando angehängt wenn die entsprechnde Variable einen Wert hat. Steht da z.B. [-l %l], wird -l <Zeilennummer> nur eingefügt wenn der Editor eine Zeilennummer zur verfügung stellt (sprung auf Fehler).

Im Fenster unten ist ein Beispiel für UltraEdit32 der die Syntax "UEdit32 Dateiname/<Zeile>/<Spalte>" unterstützt.

Bemerkung: Zeilen und Spalten sprünge direkt in den Editor werden z.zT noch nicht unterstützt, die Parameter können aber schon definiert werden.:rolleyes:

Der default editor ist der NotePad.

Editiert wird ber Datei->Edit, oder Strg-E

Dateimonitor

Ebenfalls in den Einstellungen kann man den Dateimonitor aktivieren. Dieser überwacht entweder die Datei die eben im Checker geöffnet wurde (oder in der Zukunft geöffnet wird), oder er kann ein ganzes Verzeichnis überwachen.

Das Verzeichnis kann dabei geändert werden, der default müsste dem Experten logic Directory entsprechen.

Aendert sich nun die Datei, oder irgendeine hsl Datei im Ordner (oder eine neue erscheint) wird diese sofort automatisch gecheckt.

http://webplaza.pt.lu/gastgloe/hslchecker006.jpg

Gruss,
Gaston

PepsiMox
17.01.06, 15:44
Hallo Gaston,

da ich jetzt auch anfange (n muss) Logikbausteine meinen individuellen Bedürfnissen anzupassen und ich mich an deine Tester erinnert habe, wollte ich einfach mal nachfragen, ob du die Arbeit daran fortgesetzt hast?

Danke für die Info

PepsiMox

BTW: Gibt es mittlerweile noch andere Tools die Logikbausteine schneller überprüfen können (hinsichtlich der Funktion!)

Gaston
19.01.06, 20:18
Nich viel hab ich dran gemacht seitdem. Der Link müsste auf die neuste Version verweisen. Die option mit dem Editorsprung sollte jetzt funktionieren, und noch 2 Bugs wurden entfernt.

Gruss,
Gaston

Gaston
22.03.06, 11:08
Ich habe jetzt eine neue Version des Checkers hochgeladen (wie immer, gleicher Link wie im ersten Beitrag).

Bug behoben: Fliesskommafelder (z.B. Initwerte) wurden nicht richtig erkannt und als Fehler gemeldet

Neu: Der Checker überprüft nun die Klammern in Formeln

Gruss,
Gaston

bytefactory
22.03.06, 11:12
Ich habe jetzt eine neue Version des Checkers hochgeladen (wie immer, gleicher Link wie im ersten Beitrag).

Bug behoben: Fliesskommafelder (z.B. Initwerte) wurden nicht richtig erkannt und als Fehler gemeldet

Neu: Der Checker überprüft nun die Klammern in Formeln

Gruss,
Gaston"cg32.dll is missing" sagt der neue checker und startet nicht. kannst du da helfen? wo hast du die dll her?

ciao
tilo

Gaston
22.03.06, 11:19
Hi Tilo,

Neue Compilierung läuft schon. CG ist CodeGuard zum debuggen, hatte vergessen dem im Borland C++ auszuschalten.

Gruss,
Gaston

Gaston
22.03.06, 11:33
So, die neue Version (1.2.0.10) wurde nun hochgeladen und sollte laufen :sorry: :shithappe

Matthias Schmidt
22.03.06, 14:05
Hallo Gaston,

bekomme es nicht zum Laufen. Das programm sitzt zwar óhne fehlermeldung nach Aufruf in der Taskleiste, mehr ist aber nicht zu sehen.

Bei Minimieren und Wiederherstellen sieht es so aus, als ob das programmFenster links vom linken Rand meines Bildschirmes (also im Nirvana) aufgebaut wird!?

Gaston
22.03.06, 14:56
arghh, ja, hab eine Multiview umgebung, deshalb ist das Fenster bei Dir ausserhalb des Bildschirms. Ich habe nie verstanden wieso Windows keine Funktion hat um ein Fenster in den Sichtbaren bereicht zu holen. Hab irgendwann mal so ein Tool dafür geschrieben.

Hab jetzt eine neue Version hochgeladen, und hoffe die läuft jetzt richtig.

Gruss,
Gaston

Matthias Schmidt
22.03.06, 15:04
Danke Gaston,

Bild ist schon mal da :) . Noch ein Problem: Wenn ich auf Einstellungen gehe, friert das Programm ein.... Ähnliche Ursache?

Gaston
22.03.06, 16:14
Jo, gleiches Problem. Ich habe jetzte eine Aenderung vorgenommen um dies in der Zukunft zu vermeiden. Das Hauptfenster wird sich jetzt immer in der Mitte des Bildschirms öffnen, und die anderen Fenster jeweils in der Mitte des Hauptfensters.

Hoffe dass jetzt alles klappt :o

Sorry & Gruss,
Gaston

Benutzer
23.03.06, 17:18
HI!
Bei mir läuft es auch soweit.
Die Gleitkommawerte meines Bausteins nimmt er auch ohne Probleme.

Super Tool! Danke!

Noch ne Idee für die Addon-Liste:
-Hab heute in einer Formal "AND" statt "and" geschrieben. Da gabs ne Exception. Wenn du schon Klammern zählen kannst, dann müsste es nicht all zuviel aufwand sein die ANDs und ORs auf LowerCase zu checken.

Gruß Ralf

Gaston
23.03.06, 17:45
Hallo Ralf,

Nichts für ungut aber das würde den Parser in eine Richtung treiben die mir nicht gerfällt. Parser schreiben ist sozusagen eine Spezialität von mir, eiss nich tmehr wieviele Parser ich schon Privat und beruflich geschrieben habe, aber so um die 50 werden es wohl sein. Dabei handelt es sich um einfahce Rechenmaschienen bis hin zum Parsen von Benutzereingegebenen Daten in eine nicht normalisierte Datenbank um diese zu Normalisieren. Dieser letzte mit Fuzzy-komponente dürfte wohl das Meisterstück gewesen sein.

Wenn ich nun dies besagten Test sdurchführen soll dann würde ich gleich einen kompletten Parser für die benutzte Python-Syntax schreiben. Dann wäre natürlich der debugger auch nicht mehr weit ;) . Ich habe auch schon öfters daran gedacht, aber ...

Gruss,
Gaston

Benutzer
24.03.06, 09:14
Ja, das kann ich schon verstehen.

Manchmal sollte man einfach nur mit dem zufrieden sein, was man hat ;) .

Meine beiden Bausteine laufen (bis jetzt) somit kann ich nun zufrieden sein.

Grüße
Ralf

bytefactory
24.03.06, 10:40
beim ir reported die neue version hier einen klammer fehler:

Fehler in Zeile 15:
5012|0|"1"|"(__import__('time').strptime(str(int(__import__('t ime').localtime()[0])),"%Y")[6]+2)%7"|""|0|0|1|0
Klammerfehler im 3. Feld (Level: 2)


da ist aber definitiv keiner drin.

ciao
tilo

Gaston
24.03.06, 16:09
beim ir reported die neue version hier einen klammer fehler:

Fehler in Zeile 15:
5012|0|"1"|"(__import__('time').strptime(str(int(__import__('t ime').localtime()[0])),"%Y")[6]+2)%7"|""|0|0|1|0
Klammerfehler im 3. Feld (Level: 2)


da ist aber definitiv keiner drin.

ciao
tilo

Das Problem sind die " innerhalb der Formel. Wenn eine Diokumentation besagt dass die Formel zwischen " " stehen soll dann geh ich davon aus dass dem so ist, somit ist die Formel hier "(__import__('time').strptime(str(int(__import__('t ime').localtime()[0])),", und da gibt es einen Klammerfehler. Die korrekte Syntax wäre '%Y' anstatt "%Y". Mich wundert nur dass der Fehler nicht an anderer Stelle gemeldet wird, ich werde das mal testen.

Wenn der HSexperte diese Zeile richtig interpretiert dann liegt er falsch. Das mag sich jetzt blöd anhören weil man sich sagt na der HSExperte-Parser ist ja "der Parser" und somit auch richtig (da die Referenz), aber dem ist nicht so, aber da weiter zu argumentieren würde mich wohl ein bischen weit in Parsertheorie führen. Nur soviel: Wenn der Parser die richtig erkennt, dann sollte die Formelfelder NICHT in " gesetzt werden, dies wird jedoch explizit angeraten.

Vieleicht sollte ich Dacom mal meine Dienste als Parserschreiber anbieten :D, es scheint mir nähmlich dass dieser Parser nicht sehr gut implementiert ist. Z.b. Kommentare hinter einer Satzzeile kann zu Problemen führen (sollte inzwischen behoben sein), oder das Bitweise OR geklappt auch nicht da er den "|" als Feldtrenner erkennt obwohl er zwischen " stand.

Gruss,
Gaston

bytefactory
25.03.06, 08:49
Das Problem sind die " innerhalb der Formel. Wenn eine Diokumentation besagt dass die Formel zwischen " " stehen soll dann geh ich davon aus dass dem so ist, somit ist die Formel hier "(__import__('time').strptime(str(int(__import__('t ime').localtime()[0])),", und da gibt es einen Klammerfehler. Die korrekte Syntax wäre '%Y' anstatt "%Y". Mich wundert nur dass der Fehler nicht an anderer Stelle gemeldet wird, ich werde das mal testen.

Wenn der HSexperte diese Zeile richtig interpretiert dann liegt er falsch. Das mag sich jetzt blöd anhören weil man sich sagt na der HSExperte-Parser ist ja "der Parser" und somit auch richtig (da die Referenz), aber dem ist nicht so, aber da weiter zu argumentieren würde mich wohl ein bischen weit in Parsertheorie führen. Nur soviel: Wenn der Parser die richtig erkennt, dann sollte die Formelfelder NICHT in " gesetzt werden, dies wird jedoch explizit angeraten.

Vieleicht sollte ich Dacom mal meine Dienste als Parserschreiber anbieten :D, es scheint mir nähmlich dass dieser Parser nicht sehr gut implementiert ist. Z.b. Kommentare hinter einer Satzzeile kann zu Problemen führen (sollte inzwischen behoben sein), oder das Bitweise OR geklappt auch nicht da er den "|" als Feldtrenner erkennt obwohl er zwischen " stand.

Gruss,
Gastonstimmt da hast du vollkommen recht! das ist mir noch gar nicht aufgefallen.
danke für den tip,
tilo

Gaston
26.03.06, 13:37
Angestochert von der Frage von Ralf. habe ich mir mal ein bischen Gedanken gemacht und bin zum Schluss gekommen dass ein kompletter Syntaxchecker gar nicht so schwer zu implementieren sei. Und wenn wir schon da sind, dann wird auch wohl ein Debugger, wenn auch nicht ganz so einfach, machbar sein.

Zzt. arbeit eich aber noch an der Möglichkeit Variablen automatisch einzufügen mit allen nötigen Änderungen im Modul code. Danach widme ich mich dann dem kompletten Syntzax checker. Vorraussetzung hierfür wird allerding ssein das man den Python interpreter installiert.

Gruss,
Gaston

Gaston
26.03.06, 21:45
Ich habe jetzt eine neue Version des Modul Checker shochgeladen.

Diese Version ist eine Alpha Version für das Einfügen von EIngängen, Ausgängen, Speichervariabeln un dTimern.

Um diese Funktion benützen zu können muss ein Fehlerfreies Modul geöffnet sein. Dann geht man auf Bearbeiten->Pin/Var. einfügen

Im angezeigten Fenster legt man den Typ fest, die Nummer des ersten Objekts, un ddie Anzahl objekte.

Ist z.B. ein Modul mit 10 Eingängen geöffnet und man will weitere 3 hinzufügen dann kann die Nummer des ersten neuen Eingangs von 1-11 liegen. Wählt man 11 werden die Eingäng eeinfach angefügt.

Aber manchmal will man Eingänge zwischendrin einfügen wegen der zugehörigkeit zu schon existierenden EIngängen.

Geht man also hinn und gibt als "Startnummer" 5 und "Anzahl" 3 an, bei diesem Modul dann macht der Modulchecker folgendes:

1. Zeile 5000 wird angepass und die neuen EInträge eingefüllt mit Namen "Neuer E5", "Neuer E6" und "Neuer E7"
2. Zeile 5001 wird angepasst
3. An der richtigen stelle werden die neuen EIngäng ein das Modul eingefügt (Zeile 5002)
4. Alle existierenden Eingänge von 5-10 werden umnummeriert nach 8-13
5. Alle referenzen auf die "alten" Eingänge 5-10 in Formeln der 5012er Zeilen werden auf die verschobenen Variablen 8-13 "umgebogen"

Da es sich bei dieser Version um eine Alpha Version handelt wird das neue Modul nicht unter dem alten Namen gespeichert sondern wird under dem gleichen Namen mt dem Anhang ".new" gepeichert undmuss manuell kontrolliert umkopiert werden.

In der fertigen Version wird die alte Datei in .old umgenannt und dann die neue .hsl Datei geschrieben und gleich wieder geprüft.

Gruss,
Gaston

Matthias Schmidt
26.03.06, 21:53
Gaston, super :respekt:

Ich wette mal, es dauert nicht lange, bis es symbolische Namen gibt, oder? :)

Gaston
26.03.06, 23:32
Gaston, super :respekt:

Ich wette mal, es dauert nicht lange, bis es symbolische Namen gibt, oder? :)

Hehe, Du wirst lachen, Ich hab schon öfter daran gedacht, aber ich denke das sollte dann doch der Experte selbst beherschen. Aber was ich machen will, falls ich mich an den Debugger gebe, ist dass man da Symbiolische Namen sehen wird, und zwar einfach das erste Wort des Kommentars der Definitionszeile.

Gruss,
Gaston

Gaston
28.03.06, 12:09
Wie es aussieht wird die nächste Version des Checkers die installation von Python of dem Rechner vorraussetzen. Zur Zeit ist also wohl die letzte Version downloadbar die ohne Python läuft.

Die nächste Version wird alle Formeln mit dem embedded Python interpreter testen und ggf Fehler melden. Allerdings ist es im Moment nur möglich zu sagen dass eine Formel einen Felhler hat. Welchen oder gar wo geht nicht.

Ab hier werde ich mich dann wohl ganz vorsichtig in Richtung Debugger bewegen.

Gruss,
Gaston

Benutzer
28.03.06, 13:24
Was ein kleiner Schubser alles bewegen kann....:D
Ich kann mich nur Matthias anschliessen-->:respekt:

Grüße
Ralf

Matthias Schmidt
04.04.06, 09:45
Hallo Gaston,

auf einen Syntaxfehler falle ich immer wieder herein:

Statt "==" schreibe ich "=", und da die Zeile offensichtlich richtig aussieht, fällt das nicht auf.

Wäre gut, wenn der Checker das checken könnte!

Gaston
04.04.06, 10:12
Hallo Matthias,

das mit dem == testen ist eine gute idee, ich werde das einbauen. Allerdings habe ich auch deine Idee vom Editor aus einem anderen Thread übernommen weswegen es wohl etwas dauern wird ;)

Gruss,
Gaston