AGB  ·  Datenschutz  ·  Impressum  







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

JSON: Abstrakter Fehler

Ein Thema von ByTheTime · begonnen am 20. Okt 2014 · letzter Beitrag vom 20. Okt 2014
Antwort Antwort
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 18:23
Hallo,
ich habe gerade zum ersten mal ein bisschen mit JSON experimentiert. Leider komme ich an einer Stelle nicht weiter:

Delphi-Quellcode:
class function TConfigurationSettingsHandler.LoadSettings
  : TConfigurationSettings;
var
  Strings: TStrings;
begin
  Strings := TStrings.Create();
  if FileExists(ParamStr(0) + '.json') then
  begin
    Strings.LoadFromFile(ParamStr(0) + '.json'); // Abstrakter Fehler!
    Result := TJson.JsonToObject<TConfigurationSettings>(Strings.Text);
  end
  else
    Result := TConfigurationSettings.Create();
  Strings.Free;
end;

class procedure TConfigurationSettingsHandler.SaveSettings
  (Settings: TConfigurationSettings; FilePath: String);
var
  Strings: TStrings;
begin
  if FilePath = 'then
    FilePath := ParamStr(0) + '.json';

  Strings := TStrings.Create();
  Strings.Add(TJson.ObjectToJsonString(Settings)); // Abstrakter Fehler!
  Strings.SaveToFile(FilePath);
  Strings.Free;
end;
In den beiden markierten Zeilen erhalte ich einen abstrakten Fehler. Allerdings kann ich dort kein Problem erkennen.

MfG
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 18:29
Kuckst du Doku Delphi-Referenz durchsuchenTStrings.Create
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (20. Okt 2014 um 18:48 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 18:36
Der Delphi Compiler wird eine Warnung ausgegeben haben, die auf den Fehler hinweist. 'Leider' ist es nur eine Warnung, die man leicht übersieht. In neueren Delphi Versionen ist es aber mittlerweile möglich, den Compiler zur Ausgabe einer Fehlermeldung (und dem Abbrechen des Kompilierens) zu bringen. Wie es geht wird hier beschrieben:

Delphi 2010 compiler warning about instantiation of abstract class should be a compiler error
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#4

AW: JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 19:00
Okay, danke. Jetzt hab ich es verstanden und es läuft

Aber noch eine kleine Frage nebenbei: Ich kann anscheinend keinen Pfad mit JSON speichern. Sobald ich das mache, bzw. eine von Hand editierte Datei die einen Pfad (C:\Temp) enthält, mit meinem Programm lade, erhalte ich sofort eine Zugriffsverletzung in der Zeile von der TJson Komponente
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 20:50
Natürlich geht das, kuckst du Doku http://json.org (dafür sind die da)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#6

AW: JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 23:27
Anscheinend geht es nicht, guckst du hier Bild von der Website.

"Any UNICODE character except " or \ or control character".

Aber jetzt weiß ich ja das es nciht geht, also heißt das wohl: StringReplace
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 23:39
Anscheinend geht es nicht, guckst du hier Bild von der Website.

"Any UNICODE character except " or \ or control character".

Aber jetzt weiß ich ja das es nciht geht, also heißt das wohl: StringReplace
Genau das Bild meinte ich, aber du scheinst es nicht richtig interpretiert zu haben.
Code:
{"path": "C:\\mypath\\subpath\\"}
Ergibt als Wert für path 'C:\mypath\subpath\'
Code:
{
  "quotation": "\"",
  "backslash": "\\",
  "slash": "\/",
  "backspace": "\b",
  "formfeed": "\f",
  "newline": "\n",
  "carrige return": "\r",
  "horizontal tab": "\t",
  "two lines": "line 1\r\nline 2"
}
Ich hoffe jetzt ist es klarer
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (20. Okt 2014 um 23:49 Uhr)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#8

AW: JSON: Abstrakter Fehler

  Alt 20. Okt 2014, 23:59
Ah danke für die Erklärung, jetzt hat es klick gemacht!

Ich habe auch meinen Fehler gefunden. Ich habe die JSON im Editor geöffnet und an die entsprechende Stelle C:\Temp\Test.exe geschrieben. Das geht natürlich schief Und dann habe ich das irgendwie nicht ganz gepeilt und wohl darauf geschlossen das JSON kein \ mag Wenn ich in meiner Anwendung aber ein ganz normalen Pfad meiner Klasse übergebe, klappt natürlich alles.

Danke!
Lukas
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:15 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