oscat.lib > Bestehende Module / Existing Modules

Bug in INI_PARSER bzw. unscharfe Dokumentation

(1/2) > >>

selli69:
Hallo,

Weiß nicht ob das in diese Unterforum gehört, wenns nicht passt, dann bitte verschieben.

Ich setze den INI_PARSER_FILE ein und bin dabei auf ein Problem gestoßen. Wenn der Suchstring für eine Sektion die Zeichen '[' oder ']' enthält, dann findet der Baustein die Sektion (welche diese Zeichen enthält) nicht.

Das ist natürlich ein Grenzfall. Es wäre jedoch schön, wenn man dieses Verhalten entweder ändern/berichtigen könnte oder in der Dokumentation das Vorkommen dieser Zeichen explizit ausschließt.

Ich habe mich jetzt damit beholfen, dass ich beim generieren der .ini Files die eckigen gegen geschweifte Klammen austausche und dies ebenso beim Suchen mit dem Baustein mache. Hintergrund ist, dass ich für die Sektionsnamen Reflections der POUs mit .ini Daten verwende, welche, so sie sich in einem Array befinden, dann eckige Klammen im entsprechenden String haben.


An dieser Stelle einmal Danke an alle, die diese wirklich nützlichen und mir eine Menge Zeit sparenden Bibliotheken entwickeln und pflegen!

gl&hf!

peewit:
stelle doch mal dein ini.datei online damit ich sehen kann was du genau anstellen willst

selli69:
Hallo peewit!

Wie gesagt, ich substituiere als Workaround die eckigen zu den geschweiften Klammern. Doch wenn es dich interessiert, dann stelle ich hier mal einen Teil einer .ini Datei ein, in welcher eine Sektions-Suche nach Sektionen welche eckige Klammern beinhalten nicht funktioniert:


--- Code: ---[fbFunctionsManager]
ausiFunctionsGUI=AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wJSYnKCkqKywtLi8wPT4/QA==E
[fbFunctionsManager.afbFunctions[1]]
usiFunctionType=AQ==
xOpenClosed=AQ==
usiGroup=AA==
[fbFunctionsManager.afbFunctions[2]]
usiFunctionType=Ag==
xOpenClosed=AQ==
usiGroup=AA==

...


--- Ende Code ---


Wenn ich in dieser Datei nach der Section "fbFunctionsManager.afbFunctions[1]" suche, so findet der Parser nichts.

LG

peewit:
[fbFunctionsManager.afbFunctions[1]]

da bist du ja aber selber schuld

https://de.wikipedia.org/wiki/Initialisierungsdatei

ein sektionsname muss innerhalb [ ] definiert werden
das machst du nicht und ist auch nicht vorgesehen
das würde ja nicht mal bei windows selber funktionieren da wo dieses format eigentlich herkommt

selli69:

--- Zitat von: peewit am 28. April 2019, 08:02:39 ---[fbFunctionsManager.afbFunctions[1]]

da bist du ja aber selber schuld

https://de.wikipedia.org/wiki/Initialisierungsdatei

--- Ende Zitat ---

So? Dann zeige mir bitte wo in dieser Definition die Nutzung eckiger Klammern im Sektionsnamen explizit ausgeschlossen wird.


--- Zitat ---ein sektionsname muss innerhalb [ ] definiert werden

--- Ende Zitat ---

Der Sektionsname in meiner .ini IST innerhalb [ ] definiert. Das Problem ist, dass dein Parser mit eckigen Klammern im Suchstring nicht zurecht kommt. Kann auch gar nicht gehen, so wie es programmiert ist.


--- Zitat ---das machst du nicht und ist auch nicht vorgesehen

--- Ende Zitat ---

GENAU DAS mache ich. Und wo steht geschrieben, dass es nicht vorgesehen ist? In deiner Dokumentation nicht und auch nicht auf WP. Dann schreibs halt rein, dass das nicht vorgesehen ist und gut ist.


--- Zitat ---das würde ja nicht mal bei windows selber funktionieren da wo dieses format eigentlich herkommt

--- Ende Zitat ---

Windows != IEC61131-3

Wenn Du dich auf Windows berufen willst, dann ist in der Dokumentation das entsprechende Paper von Microsoft zu benennen, in welchem das Format gespect ist.

Naja. Für mich war das das letzte Mal, dass ich hier eine Anmerkung zu offensichtlichen Unschärfen mache, wenn nur abgeblockt anstatt nachgedacht wird.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln