Italia
Foro

Fonte als JSON-File

 
- Page 1 -


Ich habe mitbekommen, dass JSON-Verarbeitung mit aktuellem XProfan direkt possibile sein soll.

Wer möchte, der kann hier eine aktuelle Kopie aller Fonte  [...]  als JSON-File herunterladen:

Herunterladen

Ich kann es selbst noch nicht testen aber vielleicht hat ja jemand Divertimento damit.

Jeder Datensatz besteht aus (int) id, (int) fpid, (text) title, (text_base64) text.

Lässt sich sowas gut damit verarbeiten?

Wem Spalten fehlen: einfach melden!

Zurücklesen in die Community so auch possibile.

1.719 kB
Bezeichnung:quelltexte.json
Version:04.06.2018
Kurzbeschreibung: Fonte als JSON-File
Hochgeladen:04.06.2018
Downloadcounter19
Herunterladen
 
04.06.2018  
 



 
- Page 1 -



Jörg
Sellmeyer
Cool - sobald mein Rechner wieder corre, werd ich mich damit mal befassen. Mir schwebt ein Programm vor, das dann beliebige json-Objekte z. B. als Treeview anzeigt. Irgendwie bietet sich die Struktur dafür an, finde ich.
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
09.06.2018  
 




RGH
Die etwas verbesserten Translates per die HTML-tags in den Quellcodes (s.o.):
set("RegEx", 1)
text = translate$(text, "& #40;", "(")
text = translate$(text, "& #41;", ")")
text = translate$(text, "& #58;", ":")
text = translate$(text, "ä", "ä")
text = translate$(text, "ö", "ö")
text = translate$(text, "ü", "ü")
text = translate$(text, "ß", "ß")
text = translate$(text, """, "\q")
text = translate$(text, "~[b[ -Z^-z]*~]", "// ")
text = translate$(text, "~[/b[ -Z^-z]*~]", "")
text = translate$(text, "~[code[ -Z^-z]*~]", "")
text = translate$(text, "~[/code[ -Z^-z]*~]", "")
text = translate$(text, "~[color=[ -Z^-z]*~]", "")
text = translate$(text, "~[/color[ -Z^-z]*~]", "")

Saluto
Roland
 
XProfan X3
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
09.06.2018  
 




Michael
W.
iF, wir brauchen ein verbessertes html_entity_decode(), das dann auch alle Sonderfälle wieder entzaubert.
Sind die HexCodes eine Klassifizierung?
Oder eine weitere ID?


[...b:...0a03fb2d32]WAV-Aufnahme über MCI[.../...b...:...0a03fb2d32]
[...code...:...1...:...0a03fb2d32]...[.../...code...:...1...:...0a03fb2d32]
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.06.2018  
 




RGH
Gerade ist mir aufgefallen, dass ich eine wichtige JSON-Funktion in der Aiuto vergessen habe:
js = json("Parse", text)
Es wird ein Json-Objekt aus dem String text erzeugt. text muss ein gültiges Json-Objekt in Textform sein.

Damit potuto man die obige File mit den Quelltexten auch direkt verwenden:
var string text = blockread("F:\\Entw\\Profan Projekte\\X4\\quelltexte.json")
text = "{\qtexte\q:" + text + "}"
var int js = json("Parse", text)

Die Json-Liste wird in den String text gelesen, in ein Json-Objekt gepackt und mit Parse dann in das Json-Objekt js eingelesen.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
10.06.2018  
 




Michael
W.

wichtige JSON-Funktion in der Aiuto vergessen


Obwohl Json() ja schon ein großer Container ist...

Roland kannst Du dann auch das
html_entity_decode() und das Gegenstück html_entities()
als Funktionen dazu spendieren? Das geht in Pascal codiert doch etwas flotter.

Beschreibungen sind unter PHP zu finden.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
11.06.2018  
 



 
- Page 2 -


Michael W. (09.06.2018)
Sind die HexCodes eine Klassifizierung?
Oder eine weitere ID?


Mittlerweile unnötige Überbleibsel aus damaligem PHPBB-System, die restlos entfernt werden könn(t)en.
 
13.06.2018  
 




H.Brill
Vielleicht potuto RGH den Json-Container noch erweitern.
Was fehlen würde :

Json("RemoveString",...)
Json("ChangeString",...)
Json("RemoveObject",...)
Json("ChangeObject",...)
Json("RemoveList",...)
Json("ChangeList",...)

und vlt. noch ein variables
Json("Find",....)

Interessant wären ja auch noch Strukturen.

Json("AddStruktur", ...)
Json("RemoveStruktur", ...)
Json("ChangeStruktur",...)
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
14.03.2023  
 




H.Brill
Ciao,
ich habe noch eine kleine Merkwürdigkeit beim Hash-Array und
Json entdeckt :
Declare Long js, xs, Hash hasharray[]
Declare String Schluessel, Wert
Cls
js = Create("Json")
Json("AddString", js, "Beruf", "Bäcker")
Json("AddString", js, "Beruf", "Metzger")
Json("AddString", js, "Beruf", "Schlosser")
hasharray[] = Json("Hash", js)
ForEach hasharray[], Schluessel, Wert
Print Schluessel, "=", Wert
EndFor
Print
Print
xs = Create("Json")
Json("AddString", xs, "Bäcker", "Beruf")
Json("AddString", xs, "Metzger", "Beruf")
Json("AddString", xs, "Schlosser", "Beruf")
hasharray[] = Json("Hash", xs)
ForEach hasharray[], Schluessel, Wert
Print Wert, "=", Schluessel
EndFor
WaitKey
End

Normalerweise sollten ja keine gleichen Schlüssel bei
Json("AddString", js, [name], string)
verwendet werden. Funktionieren tut es aber trotzdem.
Die Merkwürdigkeit kommt aber dann beim Auslesen mit
ForEach...EndFor.
Die gleichen Schlüssel werden dennoch aufgelistet, aber die
Werte nicht alle. Nur der erste gefundene Wert wird immer wieder
übernommen. Damit es dennoch klappt, kann man Schlüssel und
Werte einfach tauschen, damit die Schlüssel wieder einmalig sind.
Das kann man aber auch nur bei bestimmten Konstellationen machen.

Ob das nun ein Bug ist, oder nicht sei mal dahin gestellt.
Ich denke, da besteht noch Handlungsbedarf seitens RGH.
Entweder listet ForEach auch alle Werte auf oder aber RGH
prüft bei Json("AddString", js, [name], string), ob der Schlüssel
schon vorhanden ist und gibt entsprechend eine Fehlermeldung
oder auch -1 (wie bei den anderen Funktionen) zurück.

Als Workarround bleibt hier nur, mit Json("Count", js) und in einer
Schleife das zu überprüfen. Es sollte hier nur erwähnt werden, da
ich selber gerade in diese 'Falle' getappt bin.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
26.03.2023  
 




Georg
Teles
Ciao,

scheint tatsächlich ein Auslesefehler zu sein, denn die Datensätze werden in die File korrekt abgespeichert:

js.json

{"Beruf":"Bäcker","Beruf":"Metzger","Beruf":"Schlosser"}


xs.json

{"Bäcker":"Beruf","Metzger":"Beruf","Schlosser":"Beruf"}


Quelltext
Declare Long js, xs, Hash hasharray[]
Declare String Schluessel, Wert
Cls
js = Create("Json")
Json("AddString", js, "Beruf", "Bäcker")
Json("AddString", js, "Beruf", "Metzger")
Json("AddString", js, "Beruf", "Schlosser")
hasharray[] = Json("Hash", js)
Declare i&
Clear i&
For i&, Json("COUNT", js)'SizeOf(hasharray[])
print i&-1, Json("NAME", js, i&-1), "=", Json("VALUE", js, i&-1)
EndFor
Json("WRITE", js, "js.json")
Print
Print
xs = Create("Json")
Json("AddString", xs, "Bäcker", "Beruf")
Json("AddString", xs, "Metzger", "Beruf")
Json("AddString", xs, "Schlosser", "Beruf")
hasharray[] = Json("Hash", xs)
ForEach hasharray[], Schluessel, Wert
Print Wert, "=", Schluessel
EndFor
print
print
Clear i&
For i&, Json("COUNT", xs)'SizeOf(hasharray[])
print i&-1, Json("NAME", xs, i&-1), "=", Json("VALUE", xs, i&-1)
EndFor
Json("WRITE", xs, "xs.json")
WaitKey
End



Grüße
Georg
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

26.03.2023  
 




H.Brill
Danke per die Bestätigung.
Mit "Auslesefehler " hast du es genau getroffen.
Mit dem Hash-Array bzw. der ForEach-Schleife hat es
allerdings nichts zu tun :
Hier mal händisch ausgelesen :
Declare long js, xs
Cls
js = Create("Json")
Json("AddString", js, "Beruf", "Bäcker")
Json("AddString", js, "Beruf", "Metzger")
Json("AddString", js, "Beruf", "Schlosser")
xs = Create("Json")
Json("AddString", xs, "Beruf1", "Bäcker")
Json("AddString", xs, "Beruf2", "Metzger")
Json("AddString", xs, "Beruf3", "Schlosser")

WhileLoop 0, Json("Count", js) - 1

    Print Json("GetString", js, "Beruf")

EndWhile

Print

WhileLoop 0, Json("Count", xs) - 1

    Print Json("GetString", xs, SubStr$("Beruf1,Beruf2,Beruf3", &LOOP + 1, ","))

EndWhile

Waitkey

Funktioniert beim Objekt js auch nicht so, wie erwartet.
Also können wir es schon mal bis dahin eingrenzen.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
26.03.2023  
 




Georg
Teles
Ich vermute allerdings, dass die erste "Spalte" hier zwangsläufig ein "Primärschlüssel" ist, ähnlich der SQL Tabelle

Das Auslesen vermute ich erfolgt eben nach diesem Primärschlüssel ... ich kann nur vermuten, dass das eventuell technisch bedingt ist, dass man die Primärschlüssel irgendwie mappt oder "splittet" oder irgendwie listet, also schnell ausliest und dessen Werte als Array zuweist, andernfalls müsste man hingehen und die erste Spalte mit einer Schleife durchlaufen und die Werte (hier Key = Schlüssel) erst einmal einlesen und bestimmen, danach wieder eine Schleife laufen lassen, um die dazugehörigen Werte zuzuordnen ... glaub ich erzähle Schrott.

Auf jeden Fall ist es klar, dass bei gleichgenannten Schlüsseln die eben "unikal" sein müssen wenn man annimmt, dass die erste Spalte eben wie "Primärschlüssel" behandelt werden, und nun gleich heißen, hier schonmal die Werte einem falschen Schlüssel zugeordnet werden und wir haben den bekannten Effekt

aber das kann dir nur Roland sagen, wie es tatsächlich hinter den Kulissen ist
 
Alle Sprachen
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

29.03.2023  
 




H.Brill
Auf jeden Fall ist es irgendwie komisch,
die Schlüssel kann man auslesen, obwohl sie
identisch sind, bloß die dazu gehörende Werte
nicht.
Wenn ich jetzt SQL-Tabelle lese, die einen Primärschlüssel
auf z.B. den Namen legt, frage ich mich aber auch, warum
das dort funktioniert. Da können ja auch mehrere z.b. "Maier"
vorkommen und der Index funktioniert trotzdem. Das ist ja der
Vorteil einer solchen DB, daß man da eben alle "Maier" mit
deren Werten nur mit einer einzigen SELCT-Anweisung
rausziehen kann.

Jetzt schau mal, wie unterschiedlich Hash-Arrays beim
Füllen reagieren. Normalerweise müßte ja jeweils das gleiche
angezeigt werden :
Declare long js, hash Person1[], Person2[], Person3[], String key, value
Cls
js = Create("Json")
Json("AddString", js, "Beruf", "Bäcker")
Json("AddString", js, "Beruf", "Metzger")
Json("AddString", js, "Beruf", "Schlosser")
Person2["Beruf"] = "Bäcker"
Person2["Beruf"] = "Metzger"
Person2["Beruf"] = "Schlosser"
Person3[1, "Beruf"] = "Bäcker"
Person3[2, "Beruf"] = "Metzger"
Person3[3, "Beruf"] = "Schlosser"
Person1[] = Json("Hash", js)
ForEach Person1[], key, value
Print key, value
EndFor
Print "\n"
ForEach Person2[], key, value
Print key, value
EndFor
Print "\n"
ForEach Person3[], key, value
Print key, value
EndFor
Waitkey

Hier müßte man wissen, welche Methode RGH beim Befüllen des
Hash-Array circa JSON (Json("Hash", js) verwendet. Json("GetString",..)
scheint es mal nicht zu sein.

Wie schon gesagt, entweder wird nur das erste gefundene
Attribut ausgelesen und dessen Wert bzw. angezeigt, oder
eben alle Schlüssel mit den dazu gehörenden Werten.

Alles andere führt früher oder später zu Fehlfunktionen im Programm.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
30.03.2023  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

15.649 Views

Untitledvor 0 min.
Gast.081508.07.2024
Member 862464108.06.2024
Matthias Griesbach26.10.2023
Thomas Zielinski28.06.2023
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie