Seite 1 von 2

Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 14:13
von ramses
Hallo

ich verwende die Möglichkeit Texte im Code unterzubringen mit der Anweisung:

Code: Alles auswählen

text into cJSt2 WRAP CRLF TRIMMED
....
endtext
Es kommt immer häufiger vor dass mir der Complier den Fehler "Unterminated String" oder "Newline character detected in string" oder andere zeigt und dabei auf eine Zeile zwischen TEXT und ENDTEXT verweist. Die Textbausteine enthalten nur US-ASCII-Zeichen alle unter chr(127) die max. Zeilenlänge ist unter 140 Zeichen und auch END TEXT usw. sind in den Texten nicht enthalten. Auch die Textlänge ist unterschiedlich. z.b. 100 Zeilen ohne Fehler an anderer Stelle muss ich 100 Zeilen auf 3 Teilabschnitte aufteilen um keinen Fehler zu erhalten.

Im Fehlerfall hilft es die Texte in 2 oder 3 Abschnitte aufzuteilen und dann zusammenzusetzten damit ist der Compiler Fehler beseitigt jedoch ist der Aufbau so mühsam.

Hat jemand eine Ahnung wieso der Compiler Textbausteine untersucht und solche irrtümlichen Fehlermeldungen generiert?

Gruss Carlo

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 14:30
von brandelh
könnte einerseits eine Ersetzung mit defines sein oder Schlüsselwörter ... da gibt es einen Schalter der das Parsen abstellen soll ... ich schau mal ob ich das finde

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 14:34
von brandelh
wenn es nur Warnungen sind, die wegen der Compiler Einstellung als Fehler gemeldet werden kann man das so unterdrücken, siehe auch #pragma in der Hilfe.

#pragma Info( NODYN ) // No Warning

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 14:38
von brandelh
" oder ' oder [ ] gelten als String Begrenzer, ich bin mir nicht sicher ob diese im Text einfach vorkommen dürfen ... Ich arbeite nicht viel mit TEXT ENDTEXT.

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 14:47
von Tom
Ärgerlich auch, wenn man mit bestimmten Color-Tags in CSS-Segmenten arbeitet, das knallt auch, obwohl ja eigentlich ALLES zwischen TEXT INTO ... und ENDTEXT als reiner Text interpretiert werden soll. Das hier knallt:

Code: Alles auswählen

TEXT INTO cCss WRAP
...
colors: {
  'data1': tabler.colors["orange"],
  'data2': tabler.colors["blue"]
}
...
ENDTEXT
"Syntax error" und "Unterminated string". :cry:

Als Ressource geht es.

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:00
von ramses
@Hubert

Danke für die Tips.

Die Zeichen " oder ' oder [ ] kommen natürlich vor. Die Texte sind HTML, CSS oder JavaScript Abschnitte. Damit sind die " ' [] auch immer anführend und abschliessend vorhanden.

Es sind leider keine Warnungen sondern Error's die immer zum Abbruch des Compilerlaufs führen.

Eigentlich dürfte doch der Compiler den Inhalt zwischen "text into" und "endtext" gar nicht bewerten. Oder irre ich mich da??

@Tom

ja genau, kennst du das Problem auch? Was machst du dagegen? Resource möchte ich dazu nicht verwendet. Ich möchte den Server und Clientcode eines Teils zur Vermeidung von Konflikten in der selben PRG Datei haben.

Gruss Carlo

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:00
von Martin Altmann
Aus den Gründen habe ich mich schon vor Urzeiten von dem Konstrukt verabschiedet!

Viele Grüße,
Martin

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:03
von Martin Altmann
Carlo,
mach es doch einfach so:

Code: Alles auswählen

cCSS := "colors: {" + CRLF
oCCS += "  'data1': tabler.colors[" + '"orange"],' + CRLF
oCCS += "  'data2': tabler.colors[" + '"blue"]' + CRLF
oCCS += "}"
Viele Grüße,
Martin

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:05
von Tom
Hallo, Carlo.

Wie ich oben schrieb - als Ressource. Ich hatte vorher meine eigenen Ersetzungssequenzen (HK wird durch " ersetzt), aber dann wurde es unlesbar und man konnte es nicht mehr direkt verwenden, außerdem waren Zufälle nicht auszuschließen. Jetzt stecken die Texte in ihren eigenen CSS/JS/HTML-Dateien und werden vom Ressourcencompiler eingebunden. Das funktioniert gut. Wenn ich das Projekt bearbeite, öffne ich die entsprechenden Dateien mit.

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:06
von Tom
Das ist Käse, Martin. Mann will ja diesen Code (CSS/JS/HTML) auch verändern und dann wieder mit C&P ersetzen können.

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:15
von brandelh
Ich sehe nur eine praktikable Methode und das sind eigene kleine TXT Dateien mit dem externen Inhalt die zur Laufzeit geladen werden ...

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:17
von Martin Altmann
Tom,
wieso sollte das Käse sein? Du kannst doch den Inhalt natürlich ändern und neu compilieren! Das müsstest Du bei der Variante von Carlo natürlich auch!
Wenn Du das nicht willst, dann mach es, wie von Hubert vorgeschlagen.

Viele Grüße,
Martin

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:19
von Tom
@Hubert: Externe TXT-Dateien sind megagefährlich.

@Martin: Wenn man mit CSS oder JS oder so arbeitet, probiert man den Code anderswo aus, etwa im HTML-Editor, mit Node.JS und/oder anderswo. Und da wäre es sehr hakelig, wenn man ihn immer wieder zerlegen und zusammenfügen müsste, wenn sich was ändert. Deshalb wäre TEXT INTO eigentlich gut, funktioniert aber leider nicht. Mit Ressourcen bin ich da auf der sicheren Seite - ich kann ganze Dokumente einbinden, aber der Benutzer kommt nicht an die Quellen.

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 15:24
von brandelh
Deine Resourcen sind mit etwas Einarbeitung sicher sicherer, aber an meinen WEB Server komme nur ich ran ;-)

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 16:13
von Tom
@Hubert: Wir liefern unsere Server an Endkunden. Sonst wäre mir das auch egal, wo was steckt. Aber hier muss das abgesichert sein, zumal auch ein wenig Intelligenz drinsteckt (JS). Wir haben eine Konfigurationsschnittstelle integriert, über die dann fallweise z.B. CSS-Stile bearbeitet werden können.

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 16:30
von brandelh
TOM,

klar du als Lieferant von (Standard)software, musst ganz andere Sachen berücksichtigen wie ich, der ich inhouse oder für mich auf meinem Spiel-Web-Server entwickle.

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 16:37
von ramses
Das Konstrukt von Martin habe ich auch schon versucht. Leider gibt es Fälle in denen es schlicht nicht funktioniert weil zuwenige String-Anführungszeichen zur Verfügung stehen bezw. diese alle auch im Inhalt verwendet werden. Zudem ist es wie Tom schreibt sehr umständlich.

Textdateien finde ich auch nicht optimal, wenn schon gleich reguläre CSS oder JS Dateien aber wohin dann mit den HTML Abschnitten.

Weiss Alaska eigentlich von dieser Fehlfunktion in "text into" ?

@Tom nimmst du dann eine Resourcen Datei für alles oder teils du den Inhalt auf verschiedene auf?


Gruss Carlo

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 16:45
von Martin Altmann
Carlo,
ramses hat geschrieben: Mo, 08. Okt 2018 16:37 Das Konstrukt von Martin habe ich auch schon versucht. Leider gibt es Fälle in denen es schlicht nicht funktioniert weil zuwenige String-Anführungszeichen zur Verfügung stehen bezw. diese alle auch im Inhalt verwendet werden.
sorry, aber das ist Unsinn! Es geht immer auf dem von mir skizzierten Weg. Allerdings mag es sehr umständlich sein (wie Du ja selber schon anmerkst).

Viele Grüße,
Martin

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 17:02
von ramses
Hallo Martin

vielleicht hattest du noch keine sochen Fälle: "Unsinn" ist es sicher nicht.

Angenommen du hast einen Ausdruck in welchem die Zeichen " ' [] vorkommen kannst du keines dieser Zeichen als Stringbegrenzer benutzen. Wie willst du dann den Ausdruck einem String zuweisen????? Die Stringbegrenzer sind ja bereits alle im Ausdruck enthalten.

z.B.

Code: Alles auswählen

$("a[href^='http://xxxx.xxx']").each(function(){  ..... 
Klar könnte man den Ausdruck einer Zeile noch in Teilstrings zerlegen und jeweils mit einem darin nicht benutzten AbgrenzungsZeichen abgrenzen. Ich habs auch versucht. Es wird unleserlich fehlerträchtig und ist Unsinnig.......




Gruss Carlo

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 17:08
von Martin Altmann
Carlo,
klar ist deine Aussage Unsinn - und Du skizzierst die Lösung sogar selber. Du musst es in einige Teilstrings zerlegen - alles schon selber gemacht.
Ja, es ist unleserlich und ja, es ist fehleranfällig - aber es ist machbar :!:

Viele Grüße,
Martin

Re: Text Into --> Fehler

Verfasst: Mo, 08. Okt 2018 17:16
von ramses
Hallo Martin

Meine Aufgezeigte Lösung ist Unsinn:
Angenommen du hast 100 Zeilen JS Code und du musst diese Zeilen alle mehrere Teilabschnitte zerlegen ....
(nur weil der Compiler fehlerhaft arbeitet)
Ich kann mich nur noch Toms Meinung weiter oben Anschliessen. Getestete Abschnitte müssen mit c+p einsetztbar sein.

Nur weil etwas machbar ist kann es auch Unsinnig sein!

Gruss Carlo

Re: Text Into --> Fehler

Verfasst: Di, 09. Okt 2018 8:56
von brandelh
Wenn die Zeichen im Text vorkommen, kann man doch die HTML codierte Form nutzen oder ?
bei den Feldbegrenzern in CSS / HTML nutze ich immer das gleiche ' oder " und den [] für xbase Strings, wie das mit JS kann ich nicht beurteilen, aber nochmal, ich würde das in die richtigen TXT Dateien (.JS. .CSS etc) auslagern und dann beim Complierlauf diese als Resourcen einbinden, wenn ich es nicht nur meinen eigenen Server betrifft.
Eine andere Möglichkeit wäre es diese Textdateien in eine DBF zu speichern und von dort zu laden. Zur Laufzeit ist das alles nur noch Text.

Re: Text Into --> Fehler

Verfasst: Di, 09. Okt 2018 14:36
von ramses
Hallo Hubert

beim erwähnten Text handelt es sich ja um HTML CSS und JS Code an dem anderweitig gefeilt und getestet wurde. Ein Zeile könnte etwa so beginnen:

Code: Alles auswählen

$("a[href^='http://xxxx.xxx']").each(function(){  ..... 
nur schon das müsste in verschiedene Teilstrings aufgeteilt werden. Dies macht nicht nur sehr viel Arbeit es wird auch unleserlich und fehlerträchtig. Das ist im meinen Augen in diesem Fall (Entschuldige Martin) Unsinnig.
Der Text sollte mit C&P eingesetzt werden können ohne weiteres bearbeiten. ....

Ich habe mich mal an den Alaska-Support gewandt. Mal abwarten.

Das Ziel wäre den Client- und zugehörigen Server-Code ohne weitere Abhängigkeiten in der gleichen PRG-Datei unterzubringen. Damit wäre alles was z.B. eine bestimmte Maske benötigt in einer Datei.....

Gruss Carlo

Re: Text Into --> Fehler

Verfasst: Di, 09. Okt 2018 14:48
von brandelh
Unsere Ratschläge zielen auf eine sofortige mögliche Umgehung des Problems, aber du hast natürlich eindeutig recht, der compliler dürfte die Zeilen zwischen TEXT und ENDTEXT überhaupt nicht untersuchen !

Wie lange das mit der baldigen Verbesserung des Problemes dauert ist eine andere Frage.

Re: Text Into --> Fehler

Verfasst: Di, 09. Okt 2018 15:12
von ramses
Ja, Danke Hubert.

Ich wollte eine Lösung finden das Problem zu beseitigen so dass der Compiler, wie du schreibst den Inhalt zwischen Text und Endtext gar nicht bewertet.

Leider sind alle "Umgehungs-Möglichkeiten" mehr oder weniger aufwenig und der Konzept-Punkt alle Abhängigkeiten z.B. einer Maske in einer einzigen Datei zu halten nicht mehr machbar. Der Code muss einheitlich sein, wenn ich von der "text into" Variante abweiche muss ich dies über das ganze Projekt nachholen was einige Arbeit bedeutet dies versuche ich noch immer zu vermeiden.

Falls dies wirklich nicht geht (ich hoffe noch auf Alaska) werden wir irgendwie versuchen zu jeder PRG eine zusätzliche Datei verwenden in welchen wir die verschiedenen Codeabschnitte irgendwie speichern .....

Gruss Carlo