Poslední příspěvky

Poslední příspěvky

Stran: 1 ... 8 9 [10]
91
Obecné / Re:poslední offset stringu
« Poslední příspěvek od Delfin kdy 09-08-2018, 13:13:05 »
Neudelal jsem nic vic nez do editoru tady napsal radek kodu podle popisu interni struktury. Omlouvam se, priste radne otestuju! ;)
92
Obecné / Re:poslední offset stringu
« Poslední příspěvek od pf1957 kdy 09-08-2018, 13:12:53 »
praci s retezci.  Ta hlavicka je (byvala) nekde deklarovana jako record, jen si nepamatuju kde. Takze neni nutne se uchylovat k pointerove aritmetice.
Tak nadefinova je stale, ale v implementation sekci unity system. Skoro bych rek, ze kdysi byvala pristupna, ale HOSIP:
Kód: Delphi [Vybrat]
  1.   StrRec = packed record
  2.   {$IF defined(CPU64BITS)}
  3.     _Padding: Integer; // Make 16 byte align for payload..
  4.   {$ENDIF}
  5.     codePage: Word;
  6.     elemSize: Word;
  7.     refCnt: Integer;
  8.     length: Integer;
  9.   end;
  10.  
93
Obecné / Re:Delphi RoadMap aktualizována
« Poslední příspěvek od Ondřej Pokorný kdy 09-08-2018, 13:04:32 »
High DPI image list taky nezní špatně, zejména pokud nezapomenou na to, že uživatel může za běhu tahat okna mezi monitory s různým dpi, případně mít na každém z nich nějaké okno.

Toto robi mne obrovske problemy (vsetky aplikacie, nielen Delphi) a myslim, ze ani neexistuje nejaky vyvojar/produkt, ktory by to mal na 100% dobre implementovane. Vratane takych gigantov ako Microsft atd.

Asi neznáš mě a Lazarus: http://wiki.freepascal.org/TImageList#Multiple-resolution_TImageList_in_Lazarus_1.9_and_newer
94
Obecné / Re:poslední offset stringu
« Poslední příspěvek od Radek Červinka kdy 09-08-2018, 12:07:21 »
Pro Delphi 7 se jich chysta spousta ;D
Tak si predstav, ze to nekdy nekdo bude chtit portovat pod novejsi prekladac...

To je ovsem dan za rozhodnuti funkci nevolat (coz muze byt zasluhou neuspokojiveho vysledku profileru; dobra, ne v tomto vlakne).

Tak jsem si s tím dal tu práci a porovnal jsem Length s tim tvojím řešením. Kompilátor pro length vygeneruje cca 30 byte, tvoje řešení je 15 byte. Rozdíl je v tom, že length na začátku dělá test zda je string <> '', protože pak je roven nil (což dělá zhruba těch 15 byte) a vrací 0.

takže
Kód: [Vybrat]
    s := '';
    Len := PCardinal(PByte(s) - 4)^;
spadne na AV.

Gratulky.


95
Obecné / Re:poslední offset stringu
« Poslední příspěvek od Delfin kdy 09-08-2018, 11:37:55 »
Pro Delphi 7 se jich chysta spousta ;D
Tak si predstav, ze to nekdy nekdo bude chtit portovat pod novejsi prekladac...

To je ovsem dan za rozhodnuti funkci nevolat (coz muze byt zasluhou neuspokojiveho vysledku profileru; dobra, ne v tomto vlakne).
96
Obecné / Re:poslední offset stringu
« Poslední příspěvek od pf1957 kdy 09-08-2018, 11:20:52 »
Pro Delphi 7 se jich chysta spousta ;D
Tak si predstav, ze to nekdy nekdo bude chtit portovat pod novejsi prekladac...
97
Obecné / Re:poslední offset stringu
« Poslední příspěvek od Delfin kdy 09-08-2018, 11:19:02 »
A to je přesně ono - tenhle kód projde kompilátorem vždy, bez varování a hintů. Přičemž stačí jakákoliv změna v implementaci stringů a fungovat přestane (co třeba například stringy s 64bitovou délkou?). Já bych velice varoval před tím, něco takového používat.

Pro Delphi 7 se jich chysta spousta ;D
98
Obecné / Re:Plánovaná výměna SSL certifikátu v EET - mirus77
« Poslední příspěvek od pf1957 kdy 09-08-2018, 11:18:42 »
uvidí takovou funkci tak hned má jasno. Navíc se mi v tom výrazně lépe orientuje, než kdybych musel pro Faje hledat jak jsem to vlastně tehdy přeložil (navíc s rizikem, že jsem to přeložil úplně jinak).
Ano, to je ale ustalena zvyklost v danem prostredi. Kdyz napr. jeste Skodovka stavela elektrarny, tak pokud je dodavala do zapadnich zemi, pouzivala standard KWU (Siemens), kde bylo predepsano, jak oznacit kazdy signal na elektrarne, aby se z jeho kodu dalo poznat, wo co gou vcetne jeho stavu. A pak samozrejme nejen projektanti a dratenici na svorkach relatek, ale i programatori v SW pouzivali tento standard a nikdo tam nezavadel nejake vlastni nazvoslovi a nepokousel se delat z inzenyrske discipliny umeni...
99
Obecné / Re:poslední offset stringu
« Poslední příspěvek od vangog kdy 09-08-2018, 11:16:48 »
To co popisujes stale plati, ale pro typ ShortString...

Čtu "its memory is a statically allocated 256 bytes" - to "statically" znamená, že ShortString je alokován do Streamu?
100
Obecné / Re:poslední offset stringu
« Poslední příspěvek od vangog kdy 09-08-2018, 11:05:22 »
Snad (nemam Delphi 7):

Kód: Delphi [Vybrat]
  1. var
  2.   Len: Cardinal;
  3.   Str: AnsiString;
  4. begin
  5.   Len := PCardinal(PByte(Str) - 4)^; // offset ukazatele promenne minus 4 bajty by mela byt delka
  6. end;

Zajímavé. Chápu ale že už to nepotřebuju podle toho co napsal Radek Červinka.
Stran: 1 ... 8 9 [10]