AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

"Abstract error" mit TJSONIterator

Ein Thema von freejay · begonnen am 27. Okt 2023 · letzter Beitrag vom 2. Nov 2023
Antwort Antwort
Seite 1 von 2  1 2      
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#1

"Abstract error" mit TJSONIterator

  Alt 27. Okt 2023, 14:49
Hallo zusammen,

ich benutze TJsonIterator zusammen mit TJsonTextReader um Daten aus JSON-Dateien zu extrahieren.

Wenn ich dabei einen String übergebe, klappt das auch problemlos:

Delphi-Quellcode:
  FStringReader := TStringReader.Create('Irgend ein JSON Text');
  FJsonTextReader := TJsonTextReader.Create(FStringReader);
  FIterator := TJSONIterator.Create(FJsonTextReader);
  FIterator.Next;
Da ich aber mit sehr großen Dateien arbeiten muss, würde ich gerne die Dateien direkt lesen und nicht erst im Speicher in einen String packen. Also will ich das so machen:

Delphi-Quellcode:
  myStreamReader := TMyStreamReader.Create('IrgendeineDateiIn.JSON');
  FJsonTextReader := TJsonTextReader.Create(myStreamReader);
  FIterator := TJSONIterator.Create(FJsonTextReader);
  FIterator.Next;
TMyStreamReader ist dabei ein von TTextReader abgeleites Objekt, genau wie vorher TStringReader.

Jetzt aber bekomme ich in der Zeile

FIterator.Next einen "Abstract error".

Hat jemand eine Idee, was ich hier übersehe/falsch mache?

Danke & Gruß

Freejay
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#2

AW: "Abstract error" mit TJSONIterator

  Alt 27. Okt 2023, 15:28
Ich nehme an, die Methode "Next" ist in "TTextReader" als "abstract" deklariert und du überschreibst sie nicht in "TMyStreamReader ".

Edit: Ich sehe gerade der Fehler ist in "FIterator.Next". Dann ist dort halt irgendwas "abstract".

Geändert von Olli73 (27. Okt 2023 um 15:32 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: "Abstract error" mit TJSONIterator

  Alt 27. Okt 2023, 16:05
Wozu brauchst du deinen TMyStreamReader ? Ist dir System.Classes.TStreamReader nicht gut genug?
  Mit Zitat antworten Zitat
itblumi

Registriert seit: 28. Mär 2009
73 Beiträge
 
Delphi XE6 Professional
 
#4

AW: "Abstract error" mit TJSONIterator

  Alt 27. Okt 2023, 16:12
Schau mal deine Funktions Deklaration durch, du hast bestimmt ein override Statement vergessen bei der abgeleiteten Klasse und du musst natürlich alle abstrakten Methoden auch überschreiben.
Jan
Ein neuer Tag bringt so einiges mit sich. Was auch immer es ist, es bleibt ein kleines Abenteuer.
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#5

AW: "Abstract error" mit TJSONIterator

  Alt 27. Okt 2023, 16:45
Da ich aber mit sehr großen Dateien arbeiten muss, würde ich gerne die Dateien direkt lesen und nicht erst im Speicher in einen String packen.
Was sind bei dir große Dateien? Müssen es die Delphi Bordmittel sein? Der JSON-Viewer aus diesem Artikel benutzt einen universellen Ansatz zum Laden.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: "Abstract error" mit TJSONIterator

  Alt 27. Okt 2023, 23:50
Edit: Ich sehe gerade der Fehler ist in "FIterator.Next". Dann ist dort halt irgendwas "abstract".
Eher nicht, aber in dem Next wird indirekt eine nicht überschriebene Methode von TTextReader aufgerufen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: "Abstract error" mit TJSONIterator

  Alt 30. Okt 2023, 12:45
Wieso rufst Du überhaupt Next() auf? Das Read() macht das doch eigentlich implizit.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: "Abstract error" mit TJSONIterator

  Alt 30. Okt 2023, 14:53
Abstract hin oder her,
ob nun Json oder TextReader oder anders dingends.

In der Signatur kann man doch vom OP lesen, das er MySQL kennt.
warum also nicht auf schon existierende Tools zurückgreifen, die man unter der Console anwenden kann ?

Man schreibt sich ein kleienes Script, und schaut, wie man die Daten in den MySQL Server bekommt.
Wenn man dann nach 10, 20 Datensätze das gewünschte Ergebnis hat, dann kann man ja in "Testing-Productive-Modus" schalten, und die Daten erstmal aufsplitten, bevor man diese lesen wird.

wenn auch das klappt, kann man doch die Datenbank prüfen, und Stichproben auslesen, ob die Daten richtigerweise übernommen wurden.

Ich verwende für sowas gerne MSYS2 oder eine dieser MinGW Shells 32/64-bit.
Da sind zwar nicht alle Tools vorhanden, wie man diese wohl unter *nix her kennt, aber es wird eine breite Palette angeboten.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: "Abstract error" mit TJSONIterator

  Alt 30. Okt 2023, 15:04
Hervorragende Lösung. Wenn man ein proof-of-concept haben will. Ich gehe immer davon aus, dass die Anwendungen auch auf (vielen) Kundenmaschinen laufen sollen. Die dann alle mit diversen GNU Tools, MySQL etc. konfiguriert werden müssen. Allerdings hatte der TE es nicht mitgeteilt, wie die Anwendung zum Einsatz kommen soll.

Er hat allerdings einen Titel vergeben. Der lässt darauf schließen, dass er einen "abstract error" beim gewählten Ansatz erhält. Die Frage zu ignorieren führt ihn nicht zum Ziel.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (30. Okt 2023 um 15:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: "Abstract error" mit TJSONIterator

  Alt 30. Okt 2023, 15:22
schon richtig.

Aber lieber Tipps geben, wie man es anders, evtl. besser machen, ist doch viel hilfreicher ?
klar, bei den GNU Tools kann man sich verzetteln.
Aber auf einen Kundenrechner sind Kundenprogramme, die der Entwickler mittels Installprogramm aufspielt, damit das fachkundige Personal damit arbeiten kann.
Aber auf einen Entwickler-Rechner gehören neben Delphi, auch weitere Tools - und da ist es eigentlich egal was oder woher die kommen.

Ich habe halt so eine Affinität zu GNU, weil diese Tools a) kostenlos unb b) hilfreich sein können.

Ich kenne das doch auch aus meiner Programmier-Anfangszeit: Alles in ein Programm packen, und solange drann basteln, bis das dann alles stimmt.
Aber das ist nicht produktiv.

Und der Hint mit den GNU-Tools auf Kundenrechner - naja, hust...
... da würde ich auch abraten.

Aber man kann ja Automatisierte Programme schreiben, die dann als Service laufen, wo der USER vielleicht nicht gleich was mitbekommt.

Und eine Datenbank auf den Kundenrechner - ich weiß nicht. Das war damals, vor 40 Jahren mal so.
Heute ist das eher "nicht" mehr zeitgemäß und fehlernafällig.

Das solltet IHR Den Fragenden mitteilen, bzw. erfragen.

Es ist ja alles schön und gut, das IHR GUT programmieren könnt.
Aber manchmal sind es eben die kleinen Tricks, die das Leben eines kleinen Datenknechtes zu einen bunten Tag formen.

und nochmals was zu kostenlos oder umsonst:
- kostenlos ist nichts, auch der Tot kostet das Leben
- umsonst ist auch nichts, weil, man lernt ja immer dazu.

Aber das man dann umsonst und kostenlos zusammen würfelt und dann die Mitnahmegesellschaft formt, ist mir aber auch zuwieder - da kann schonmal ein kleiner Donut reichen
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz