Italia
Foro

Fonte als JSON-File

 
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  
 




Jörg
Sellmeyer
Ich habs mal runtergeladen und bekomme mit folgendem Code aus der Aiuto nur ne Schutzverletzung angezeigt.
Die Schutzverletzung kommt schon direkt nach dem Create. Also hast entweder Du die json-Konventionen nicht korrekt eingehalten oder Roland
Cls
showmax
declare long js, xs, liste
js = Create("json","C:\\Profan\\Projekte\\XProfanQuelltexte\\quelltexte.json")
print "Json-Objekt aus File importieren und "
var string text = json("TEXT", js, 1)
print "lesbar Mostra:"
print text
print
print "Als Json-String Mostra:"
text = json("TEXT", js, 0)
print text
print
print "Taste drücken ..."
waitinput

Mir ist auch gar nicht klar, wie man an ein unbekanntes json-File rangehen kann.
In der Aiuto stehen nur Beispiele, die Bezeichnungen aus den json-Objekten verwenden.
das nützt aber nix, wenn man an eins ranwill, dass keine bekannten Schlüsselnamen u.s.w hat.
Vor allem bei den Objekten necessario man ja immer die Objektnamen.
Kannst du nicht mal ne kleinere Testdatei hochladen? Vielleicht sind die 5mb auch einfach zuviel, um sie (wie oben), in einen String zu lesen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
05.06.2018  
 



Ich habe diese Funktion verwendet:  [...]  -

die File quelltexte.json lässt sich in JS und PHP problemlos wieder einlesen.

Den Grund per den Absturz in XProfan kann presumibilmente Roland am besten bestimmen.

Die File halte ich soweit per in Ordnung.
 
05.06.2018  
 




RGH
Die File ist kein JSON-Objekt ("{.....}"), sondern eine JSON-Liste ("[.....]").
Die Funktion Create("JSON", datei) erwartet allerdings ein JSON-Objekt!

Also einfach ein {"Texte": vor der führenden eckigen Klammer einfügen und ein } hinter der schließenden eckigen Klammer setzen und schon klappt es! Dann haben wir ein Objekt, dass die Liste "Texte" enthält.

Saluto
Roland

PS: Wie man eine unbekannte JSON-File auswertet, zeige ich dann die nächsten Tage. Heute ist es mir zu spät. Um 06:30 geht der Wecker.
 
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
05.06.2018  
 




Michael
W.
Ein Beispiel per Json gab es in Paules Foro. Ausserdem kann man das in einen Hash verwandeln und einfach durchblättern. Ist auch dort beschrieben.

Json("Hash"
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
07.06.2018  
 




RGH
Hier ein kurzes Beispiel, das zeigt, wie man an ein unbekannntes JSON-Objekt herangehen kann. Die JSON-File ist die oben erwähnte JSON-Liste, die wie von mir beschrieben zu einem JSON-Objekt erweitert wurde.
Window 1024, 768
// JSON-Objekt einlesen
var int js = Create("json","F:\\Entw\\Profan Projekte\\X4\\quelltexte2.json")
// Wieviele Elmente enthält das Objkekt
var int anz = json("Count", js)
print str$(anz) + " Element(e)"// 1 Element
// Typ des Elements
var string typ[] = "", "Number", "String", "Boolean", "NULL", "Liste", "Objekt"
var int typnr = json("Type", js, 0)
print typnr, typ[typnr]
// Name der Liste
var string name = json("Name", js, 0)
print name
// Liste einlesen
var int liste = json("getList", js, name)
// Wieviele Elmente enthält die Liste
anz = json("Count", liste)
print str$(anz) + " Element(e)"// 1 Element
WaitInput
End

Im weiteren Verlauf der Untersuchung würde man feststellen, dass alle Listen-Einträge Objekte sind, die jeweils vier Strings enthalten: id, fpid, title, text.

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
08.06.2018  
 




RGH
Und so potuto man ein Objekt als Profan-Quellcode (Naja, es ist noch Nacharbeit nötig) abspeichern:
Window 1024, 768
// JSON-Objekt einlesen
var int js = Create("json","F:\\Entw\\Profan Projekte\\X4\\quelltexte2.json")
// Liste einlesen
var int liste = json("getList", js, "texte")
// Das erste Objekt der Liste einleseb
var int obj = json("getObject", liste, 0)
var string title = json("getString", obj, "title")
var string text  = json("getString", obj, "text")
// title enthält den Titel des Programmi, text den Base64 codierten Programmtext
// text decodieren
text = decode64(text)
// ein paar HTML-Tags konvertieren (hier nure einige als Beispiel. Es gibt mehr.)
text = translate$(text, "& #40;", "(")// Leerzeichen zwischen & und # entfernen!
text = translate$(text, "& #41;", ")")// Leerzeichen zwischen & und # entfernen!
text = translate$(text, """, "\q")
print text
// Als File speichern
Blockwrite title+".prf", text
waitinput

(Leerzeichen zwischen & und # musste ich einfügen, damit die Seite das nicht gleich übersetzt.)

Es befinden sich noch weitere HTML-Tags in eckigen Klammern im Programmtext. Außerdem gibt es wohl noch eine Überschrift und eine Kommentarzeile.

Mit etwas Aufwand ließe sich aber ein Programm entwickeln, dass die Titel aller 1849 Fonte in einer Listbox oder einer Gridbox zur Auswahl anbietet und die gewünschten als Programm exportiert.

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
08.06.2018  
 




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  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

15.652 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