27. marts 2001 - 20:03Der er
9 kommentarer og 1 løsning
streaming af objekt
Hej.
Jeg kunne godt tænke mig at se en stump kode der kan lave et objekt om til en \':array of byte\' eller lignende.
Det er ikke nødvendigt at inkludere objektets objektreferencer, men det er nødvendigt at inkludere longstrings.
Formålet er at konvertere objektet til en bytestream, kryptere det (DSE eller GOST måske), caste det til en Widestring, sende objektet til en anden computer via DCOM (som accepterer widestrings...), caste det tilbage, dekryptere det, trylle det om til et objekt igen og voila.
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
Du kan prøve det her. Tricket er at man bruger den teknik delphi bruger når den gemmer componenter på en form i en dfm fil. Du skal bare lade dine objecter nedarve fra TComponent, og for de attributter du vil gemme, laver du en published property, da det kun er published properties som delphi streamer.
Den løsning var jeg nu godt klar over, og jeg finder det lidt utilfredsstilende at nedarver fra TComponent. Bl.a. er det mit indtryk at metoden ikke streamer effektivt, dvs der kommer mange redundante bytes. Er det ikke rigtigt?
Tjahh, I C ville jeg bruge memcopy til at kopiere attributterne over i en streng som jeg så ville caste til [hvadsomhelst]. Dette er selfølgelig heller ikke ligefrem pænt, men det er effektivt, virker og er simpelt. Helt så simpelt er det ikke i Delphi bl.a. pga. longstringformatet. Jeg ved ikke rigtigt hvad jeg skal gøre hmmmm, jeg kunne jo også bruge ShortStrings / PChar. Eller hvad?
Eller lave nogle forsøg, det går rent faktisk temmelig hurtig med comp. streamming, så måske dinne fornemmelser ikke holder stik, du kan foresten nøjes med TPersistent da det er i den klasse delphi impl. Streamming.
Tak for hjælpen alle, jeg tror jeg benytter streameren uden den dyre ObjectTextToBinary, det skulle være muligt. Det viser sig at mine objekter alligevel bliver mindre end TCP/IP pakkestørrelsen, så det gør ikke så meget hvis der er nogle redundante bytes...
ugge >> så lad være med at bruge det ... brug er array of byte eller en pChar. hvis du skal streame noget \"i dag\" så skal du ikke bruge en long string.
ugge >> Det funker fint med rent binær stream, jeg har lavet en lille OBJ-base på den måde uden problemer, og skal der nye felter på ændrer jeg bare DB-klassen så tilretter resten sig selv, vha. RTTI, det er faktisk lidt sødt efter min smag, og dejligt flexsibelt.
/Martin
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.