![]() |
JSON: Abstrakter Fehler
Hallo,
ich habe gerade zum ersten mal ein bisschen mit JSON experimentiert. Leider komme ich an einer Stelle nicht weiter:
Delphi-Quellcode:
In den beiden markierten Zeilen erhalte ich einen abstrakten Fehler. Allerdings kann ich dort kein Problem erkennen.
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; MfG |
AW: JSON: Abstrakter Fehler
Kuckst du Doku
![]() |
AW: JSON: Abstrakter Fehler
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:
![]() |
AW: JSON: Abstrakter Fehler
Okay, danke. Jetzt hab ich es verstanden und es läuft :thumb:
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 :( |
AW: JSON: Abstrakter Fehler
Natürlich geht das, kuckst du Doku
![]() |
AW: JSON: Abstrakter Fehler
Anscheinend geht es nicht, guckst du
![]() "Any UNICODE character except " or \ or control character". Aber jetzt weiß ich ja das es nciht geht, also heißt das wohl: StringReplace :thumb: |
AW: JSON: Abstrakter Fehler
Zitat:
Code:
Ergibt als Wert für
{"path": "C:\\mypath\\subpath\\"}
Delphi-Quellcode:
path
Delphi-Quellcode:
'C:\mypath\subpath\'
Code:
Ich hoffe jetzt ist es klarer ;)
{
"quotation": "\"", "backslash": "\\", "slash": "\/", "backspace": "\b", "formfeed": "\f", "newline": "\n", "carrige return": "\r", "horizontal tab": "\t", "two lines": "line 1\r\nline 2" } |
AW: JSON: Abstrakter Fehler
Ah danke für die Erklärung, jetzt hat es klick gemacht! :thumb::thumb::thumb:
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 :stupid: Und dann habe ich das irgendwie nicht ganz gepeilt und wohl darauf geschlossen das JSON kein \ mag :wall: Wenn ich in meiner Anwendung aber ein ganz normalen Pfad meiner Klasse übergebe, klappt natürlich alles. Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz