AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Objekt kopieren... gibt es was Neues ?

Ein Thema von haentschman · begonnen am 21. Feb 2012 · letzter Beitrag vom 21. Feb 2012
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#11

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 09:45
Sooo...
Hab die Demo mal am laufen. Wenn ich das richtig verstehe zerpfückt Marshall das Object in JSON "Text" incl. Daten. Das Unmarshall setzt aus diesem "Text" ein Object zusammen und gibt es zurück.

Leider bekomme ich beim Unmarshall mit TPerson1 eine Zugriffsverletztung. Die Listen gehen.

Die Richtung stimmt schon mal oder ?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:04
Ja, das stimmt so. Bei XE gibt es aber noch einen Fehler, der dazu führt, dass Dezimalzahlen nicht korrekt übertragen werden. Leider wird nämlich der lokale Dezimalseparator benutzt und der stimmt nun einmal in Deutschland mit dem Feldtrennzeichen von JSON überein. Ich glaube daher rührt der Fehler.

Deshalb musst du bei XE vor dem Marshalling/Unmarshalling den Dezimalseparator auf einen Punkt setzen und danach wieder zurück. Bei XE2 ist das behoben.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#13

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:09
Wenn man aber lokal kopiert, dann sollte das doch egal sein? (wenn beim Unmarshallen der selbe "lokale" Separator verwendet wird, wie beim Marshallen)

Schau dir mal den JSON-String an, also ob dort auch alles drin ist, was rein müßte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#14

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:18
Du traust mir echt zu, daß ich das verstehe ?
Zitat:
{"type":"Person1.TPerson1","id":1,"fields":{"FFirs tName":"aSampleFirst","FLastName":"aSampleLast","F WeightLb":160,"FHeightIn":70,5,"FDateOfBirth":2226 1,"FAddresses":[["addHome","aSampleHomeStreet","aSampleHomeCity","a SampleHomeState","aSampleHomeZip"],["addWork","aSampleWorkStreet","aSampleWorkCity","a SampleWorkState","aSampleWorkZip"]],"FPhones":[["aSampleMobileNumber","phMobile"],["aSampleWorkNumber","phWork"],["aSampleHomeNumber","phHome"]]}}
Zitat:
den Dezimalseparator auf einen Punkt setzen
... vom System ?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#15

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:29
Code:
{
  "type": "Person1.TPerson1",
  "id": 1,
  "fields": {
    "FFirstName": "aSampleFirst",
    "FLastName": "aSampleLast",
    "FWeightLb": 160,
    "FHeightIn": 70,
    5,
    "FDateOfBirth": 22261,
    "FAddresses": [
      [
        "addHome",
        "aSampleHomeStreet",
        "aSampleHomeCity",
        "aSampleHomeState",
        "aSampleHomeZip"
      ],
      [
        "addWork",
        "aSampleWorkStreet",
        "aSampleWorkCity",
        "aSampleWorkState",
        "aSampleWorkZip"
      ]
    ],
    "FPhones": [
      [
        "aSampleMobileNumber",
        "phMobile"
      ],
      [
        "aSampleWorkNumber",
        "phWork"
      ],
      [
        "aSampleHomeNumber",
        "phHome"
      ]
    ]
  }
}
[...] = ein Array, bzw. eine Liste
{...} = ein Objekt
x:y = ein Parameter (Name:Wert)

Nur mit dieser namenlosen 5, kann ich nicht viel anfangen.

Ich weiß jetzt nicht wie das Objekt aussieht (hab hier in keine Anhänge reingesehn), aber Listen scheinen schon drin zu sein. (k.A. ob auch alles richtig ist)

Dezimalzahlen sind hier nicht enthalten, also sollte es damit keine Probleme geben, oder soll das Eine eine 70,5 sein?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (21. Feb 2012 um 10:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#16

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:42
Zitat:
oder soll das Eine eine 70,5 sein?
...ja, die "Höhe" der Person

in der MainUnit(Form.Create) waren Kommentare bezüglich der Testung alternativer Dezimalseperatoren. Dort habe ich den Dezimalseperator auf "." umgestellt und im OnDestroy wieder zurück. Damit geht auch TPerson1.

Jetzt muß ich mal schauen was ich alles wo benötige. (TTypeFactory etc.) Am besten ich mache mir mal ein Testprogramm und gehe Euch dann auf die Nerven...

Nachtrag:
Zitat:
Dort habe ich den Dezimalseperator auf "." umgestellt
...mit Ctrl-Klick komme ich zur Deklaration in SysUtils. Heißt das, daß für die Zeit der Dezimalseperator Systemweit umgestellt ist ?
PS: ist der auf einem deutschen System nicht normal sowieso der "."

Geändert von haentschman (21. Feb 2012 um 10:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#17

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:43
unter XE bekomme ich

"Exception der Klasse EInsufficientRtti mit der Meldung 'Unzureichende RTTI zur Unterstützung dieser Operation verfügbar'"

bei :
Delphi-Quellcode:
  With Button2.Clone do
    begin
      left := left + 100;
      top := top + 100;
    end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#18

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:48
...bei der gleichen Demo ? Hast du die aktuelle Version aus dem Repository ?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#19

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:50
Nicht systemweit (Windows), sondern nur programmweit (in deinem Programm).

PS: Beim Button (allem ab TComponent, wenn ordentlich programmiert), kannst du auch TStream verwenden.
Delphi-Referenz durchsuchenTStream.ReadComponent und Co.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#20

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:51
...ja dann ist es gut.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:21 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