Autor Téma: XML UTF-8 azbuka  (Přečteno 976 krát)

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
XML UTF-8 azbuka
« kdy: 16-03-2017, 09:55:26 »
mam XML dokument, ktorý chcem zobraziť ako tabuľku, je to slovnik: Sk, EN, RU (azbuka)
akým spôsobom ho zobraziť a editovať?

v minulosti som používal XMLtransformProvider (XML maper), ale problém bol vždy s diakritikou a teda tu je problém aj s azbukou, a momentálne to už nie je v XE5 Profesional

Kód: Delphi [Vybrat]
  1. <preklad>
  2. <cislo>1</cislo>
  3. <sk>Ano</sk>
  4. <en>Yes</en>
  5. <ru>Да</ru>
  6. </preklad>
  7. <preklad>
  8. <cislo>2</cislo>
  9. <sk>Auto</sk>
  10. <en>Auto</en>
  11. <ru>Авто</ru>
  12. </preklad>
takto vyzera jadro XML-ka

takto mi zobrazi prve: Да
a druhe: Авто
« Poslední změna: 16-03-2017, 10:00:21 od František »

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #1 kdy: 16-03-2017, 10:47:04 »
jak vypadají metadata xml?

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #2 kdy: 16-03-2017, 12:05:34 »
myslíš xtr? lebo nič viac k tomu nemám

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #3 kdy: 16-03-2017, 12:28:17 »
myslím tohle

Kód: XML [Vybrat]
  1. <?xml version="1.0" encoding="UTF-8"?>

viz https://www.w3schools.com/xml/xml_syntax.asp

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1700
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:XML UTF-8 azbuka
« Odpověď #4 kdy: 16-03-2017, 14:10:31 »
takto vyzera jadro XML-ka
takto mi zobrazi prve: Да
a druhe: Авто
V XML problem nehledej, to je spravne a Delphi samozrejme umi jeho obsah spravne nacist i spravne zobrazit. Budes se muset pochlubit, co a jak delas,  protoze to, co uvadis, ze se ti zobrazuje, je ANSI nahled na znaky zakodovane v UTF-8 tj. nekde neco cte raw data a rovnou je zobrazuje ev. je nejak bezhlave convertuje tam za zpatky.

A jako vzdy je tvuj popis problemu vice nez nedostatecny :-( Takze za me: pokracovani jedine s SSCCE



Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #5 kdy: 17-03-2017, 08:38:19 »
pripojil som aj cely príklad v prílohe,
ten riadok s metadata tam samozrejme je

zaujímavá je táto časť kódu
Kód: Delphi [Vybrat]
  1.   edit1.text:=utf8tostring(cds.FieldByName('ru').AsString);
  2.   edit2.text:=cds.FieldByName('ru').AsString;

po aplikovaní utf8tostring to je správne, ale ako povedať dbgridu aby to zobrazoval , alebo ako to povedat xmltransformprovajderu, pripadne ClientDatasetu aby to konvertoval správne

nedá sa niekde globálne nastaviť, že teraz aplikácie pracuje s UTF-8? Alebo je to chybný pohľad? Poučte ma, prosím.

ale ako som písal v úvode, beriem aj iné riešenie ako XML transformácie (TXMLTransformProvider)
« Poslední změna: 17-03-2017, 08:52:12 od František »

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #6 kdy: 18-03-2017, 20:11:42 »
neexistuje riesenie?

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #7 kdy: 18-03-2017, 21:59:20 »
Díval jsem se na to a podle mě to nějak divně zobrazuje DBGrid.
Dokonce jsem použil obezličku s nastavením s DefaultPageCode na utf-8 ale nepomohlo to :( na tom gridu.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 654
  • Karma: 37
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:XML UTF-8 azbuka
« Odpověď #8 kdy: 18-03-2017, 22:48:01 »
Good
Rated 2 times
Teď jsem na to schválně kouknul a co nevidím (Delphi 10 Seattle):
unit Data.DB.pas:
Kód: Delphi [Vybrat]
  1. function TStringField.GetAsString: string;
  2. begin
  3. {$IFNDEF NEXTGEN}
  4.   Result := string(GetAsAnsiString); // <<< ???
  5. {$ELSE}
  6.   if not GetValue(Result) then
  7.     Result := '';
  8. {$ENDIF !NEXTGEN}
  9. end;

... docela mazec... Nemá být náhodou Delphi od verze 2009 Unicode-ready 8)
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 654
  • Karma: 37
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:XML UTF-8 azbuka
« Odpověď #9 kdy: 18-03-2017, 23:05:19 »
Excellent
Rated 1 time
No asi si to budeš muset ošéfovat sám v OnGetText daného sloupce:

Kód: Delphi [Vybrat]
  1. procedure TForm3.cdsAfterOpen(DataSet: TDataSet);
  2. begin
  3.   cds.FieldByName('ru').OnGetText := ruOnGetText;
  4. end;
  5.  
  6. procedure TForm3.ruOnGetText(Sender: TField; var Text: string;
  7.   DisplayText: Boolean);
  8. begin
  9.   Text := UTF8ToString(Sender.AsAnsiString);
  10. end;
  11.  
  12. procedure TForm3.cdsAfterScroll(DataSet: TDataSet);
  13. begin
  14.   edit1.text:=cds.FieldByName('ru').DisplayText;
  15.   edit2.text:=cds.FieldByName('ru').DisplayText;
  16. end;
  17.  
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1700
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:XML UTF-8 azbuka
« Odpověď #10 kdy: 19-03-2017, 07:38:53 »
... docela mazec... Nemá být náhodou Delphi od verze 2009 Unicode-ready 8)
To uz jsme tu pred lety resili, ze jim TStringField zustalo buhvi proc ANSI, namatkou si vzpominam na svuj prispevek http://forum.delphi.cz/index.php/topic,13956.msg83077.html#msg83077.

Ja tu nemam Delphi s DataSnap, takze se na to nepodivam, ale vedle vyse zmineneho, co by se stalo, kdyby se u CDS radne nadefinovaly FieldDefs tak, aby odpovidaly XML dokumentu a obesly ftString. Nepomohlo by to nebo to ten TXMLTransformProvider vzdycky prepise?




Offline oxo

  • Guru
  • *****
  • Příspěvků: 654
  • Karma: 37
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:XML UTF-8 azbuka
« Odpověď #11 kdy: 19-03-2017, 10:08:30 »
Když jsem si včera zkusil nadefinovat ftWideString místo ftString a k tomu TWideStringField, dostal jsem:

---------------------------
Debugger Exception Notification
---------------------------
Project cds_.exe raised exception class EDatabaseError with message 'cds: Type mismatch for field 'ru', expecting: WideString actual: String'.
---------------------------

Ale víc nevím, nejsem zrovna expert na DB komponenty v Delphi. Naposled jsem je používal tak před 15 lety...
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #12 kdy: 20-03-2017, 07:56:06 »
tu fintu s definicí jako ftWideString jsem zkusil, ale domrská to vždycky.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1700
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:XML UTF-8 azbuka
« Odpověď #13 kdy: 20-03-2017, 08:25:39 »

Project cds_.exe raised exception class EDatabaseError with message 'cds: Type mismatch for field 'ru', expecting: WideString actual: String'.
[...]
Ale víc nevím, nejsem zrovna expert na DB komponenty v Delphi. Naposled jsem je používal tak před 15 lety...
Ja nikdy na nic nepouzival ten TXMLTransformer, jehoz smyslem je preprasit XML do proprietarniho formatu DataSnap, se kterym pracuje CDS...

Evidentne tam maji chybu: ten TXMLTransformer je rizen definici XSD a ta ma pro string jen xs:string, ktery je v kodovani XML dokumentu, ze standardu UTF-8. Na strane Delphi by z toho mel vylezt string tj. kodovani  UTF-16le, ktere je pro Windos nativni, coz se zrejme nestane a zustane to v UTF8, binding mezi transforemer a CDS to pak priradi to AsString, kde z toho setter udela ANSI :-(

Takze ta chyba spociva v pro mne nepochopitelnem zachovani AsString: ANSIString z pre-unicodifikovanych Delphi :-O

Reseni je asi ta navrhovana hand job a udelat si tu konverzi sam, nebo se vykaslat na TXMLTransformer, pomoci XMLBindingu si udelat definici DOM, do toho data nacist a pak s nimi bud primo pracovat, nebo je v cyklu nasypat do CDS...
« Poslední změna: 20-03-2017, 08:28:43 od pf1957 »

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #14 kdy: 20-03-2017, 08:56:08 »
Tohle nemá jednoduché řešení

Kód: Delphi [Vybrat]
  1. function TStringField.GetAsString: string;
  2. begin
  3. {$IFNDEF NEXTGEN}
  4.   Result := string(GetAsAnsiString);
  5. {$ELSE}
  6.   if not GetValue(Result) then
  7.     Result := '';
  8. {$ENDIF !NEXTGEN}
  9. end;

Chybí zřejmě funkce typu GetAsUtf8String, protože není jednoduché z povahy zdroje určit, co se vespod Field skrývá za data, proto je tam to čtení jako Ansi. S tímhle jsem se potýkal v čínštině, do DB ukládali data různě a všechno se to četlo přes ansi stringy :(

Takže v podstatě tohle je správně, do edit1 jde správný kód, z hlediska úrovně čtení víme, že zdroj je utf8. ale do edit2 jde jen proud charů
Kód: Delphi [Vybrat]
  1.   edit1.text:=utf8tostring(cds.FieldByName('ru').AsString);
  2.   edit2.text:=cds.FieldByName('ru').AsString;

ale pokud nastavím před otevřením datasetu

Kód: Delphi [Vybrat]
  1. DefaultSystemCodePage := CP_UTF8;

tak i edit2 drží správnou hodnotu!

Ale hodnota v gridu je stále nečitelná, jedině to vyřešit konverzí ve sloupci gridu anebo generálně v GetText nad Fields datasetu s příp. rozlišením flagu DisplayText


Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #15 kdy: 20-03-2017, 09:12:41 »
zapomněl jsem na konverzi na datasetu

Kód: Delphi [Vybrat]
  1. procedure TForm3.cdsruGetText(Sender: TField; var Text: string;
  2.   DisplayText: Boolean);
  3. begin
  4.   if DisplayText then
  5.      Text := utf8tostring(Sender.AsAnsiString)
  6. end;

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1700
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:XML UTF-8 azbuka
« Odpověď #16 kdy: 20-03-2017, 09:20:52 »
Chybí zřejmě funkce typu GetAsUtf8String, protože není jednoduché z povahy zdroje určit, co se vespod Field skrývá za data, proto je tam to čtení jako Ansi.
No ale funkci datasetu neni konvertovat kodovani! Ta se ma odehrat na urovni vnejsich hranicich systemu tj. v DB clientovi tj. mimo Delphi pri normalnim pristupu k RDBMS a nebo v TXMLTransformeru, ktery muze dostat ten XML vpodstate v jakemkoli kodovani, ve kterem lze dane znaky zobrazit a treba pokazde v jinem a vysledek by mel byt vzdy spravne dekodovany text. Dal uz by v unicodifikovanem programu nemelo nikde existovat nic jineho nez unicode, na platforme Wintel tedy UTF-16le. Vubec mi nejde narozum, kvuli cemu takovou p*icovinu udelali.

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #17 kdy: 20-03-2017, 10:20:42 »
tesujem to teraz s VCL a DBgrid
keď som pridal

Kód: Delphi [Vybrat]
  1. DefaultSystemCodePage := CP_UTF8;

tak to zobrazuje DBGrid správne, ListView nie

ale dbgrid mi stačí

neviem či je to definitívne riešenie, ale skúsim to, ďakujem

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #18 kdy: 20-03-2017, 14:27:56 »
ešte nie je koniec

pri cds.ApplyUpdate sa to rozsype za zapíše to zle (do tých nečitateľných znakov)
a samozrejme po refreši je to zle

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #19 kdy: 20-03-2017, 14:30:25 »
používáte to i pro zápis dat zpět do datasetu?

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #20 kdy: 20-03-2017, 15:26:22 »
chceli by sme ... ale nejedeto..

Offline oxo

  • Guru
  • *****
  • Příspěvků: 654
  • Karma: 37
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:XML UTF-8 azbuka
« Odpověď #21 kdy: 20-03-2017, 22:08:07 »
chceli by sme ... ale nejedeto..

kdo maže, ten jede... vy jste nějaká firma? nechcete si zaplatit někoho, kdo tomu rozumí? :)
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline Marek Weyda

  • Plnoletý
  • ***
  • Příspěvků: 162
  • Karma: 5
    • Verze Delphi: Delphi 2007, 10.1 Berlin
Re:XML UTF-8 azbuka
« Odpověď #22 kdy: 21-03-2017, 08:48:27 »
kdo maže, ten jede... vy jste nějaká firma? nechcete si zaplatit někoho, kdo tomu rozumí? :)

Tak to se také přidávám k otázce od Oxo :)

Jinak s těmito různými konverzemi a totálním rozoráním diakritiky a dalšího jsem se setkal v Delphi už X krát a většinou to byla prasárna programátora, ale je fakt, že zejména ve starších Delphi je tam i nějaká ta prasárna občas v jejich komponentách, což možná bude i tento případ od Františka. Klasický příklad je ale starší SOAP, jak už se tady řešilo v souvislosti s EET.

Ale jinak se dost často setkávám s tím, že programátor jaksi netuší, že při různých konverzích stringů může dojít ke ztrátě informace - diakritiky.

Někdy si říkám, co je lepší. Jestli starý přístup, kdy programátor měl absolutní kontrolu, ale zároveň i absolutní zodpovědnost za všechno, nebo dnešní - programátor v podstatě už nemusí přemýšlet, co se děje "ve střevech". Když ale řešíme nějaký opravdu vážný problém, tak programátoři odchovaní prvním principem absolutně vedou :-) Takže asi tak.


Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #23 kdy: 21-03-2017, 08:53:10 »
Já nechápu tohle použití transformace xml do datasetu.
Myslím, že by bylo jednodušší natáhnout data z nějakého primitivnějšího formátu se zaručeným kódováním než řešit transformace, utf-8 je dobrý formát, ale musí se použít důsledně všude. Zvlášť, když se požaduje zobrazení jako z databáze a to s následnou úpravou zpět :(

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1700
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:XML UTF-8 azbuka
« Odpověď #24 kdy: 21-03-2017, 09:11:41 »
Já nechápu tohle použití transformace xml do datasetu.
No zrejme si rekl, ze CDS ma metodu LoadFromFile, pak zjistil, ze je to jen pro proprietarni format DataSnapu, ktery znasilnuje XML format a hodnoty sackuju jak atributy (!) elementu, predstavujiciho jeden zaznam a ze na doporuceni dokumentace ma pouzit TXmlTransform, ktery na zaklade XSD schematu mu ten proprietarni format z obecneho XML vytvori. Myslenka jednoducha, vsechno by se teoreticky melo dat naklikat... Ovsem evidentne se jim neco nepovedlo.

Citace
Myslím, že by bylo jednodušší natáhnout data z nějakého primitivnějšího formátu se zaručeným kódováním než řešit transformace, utf-8 je dobrý formát, ale musí se použít důsledně všude. Zvlášť, když se požaduje zobrazení jako z databáze a to s následnou úpravou zpět :(
Jak vsude? V Delphi programu by vsechny stringy uvnitr aplikace mely byt v UTF-16le. Tak byl Delphi unicodifikovan. A konverze do/z jinych kodovani ma existovat jen na hranicich systemu. Vsechno ostatni je neudrzovatelny paskvil.

Samozrejme se muze vykaslat na TXmlTransform a pokud tech dat nejsou obrovska kvanta, ze by se to naraz neveslo do pameti, tak predhodit vzorek tech dat XML bindingu, ten vytvori DOM model a metody pro jeho na cteni, vsechno samozrejme v URF-16le a iteraci presypat data z DOM do CDS potazmo do DB.
A pak uz s tim pracovat jen jako s DB a do DB si to treba zase strcit v UTF-8, ale to uz jde deklarativne, tam neni co programovat.


Offline JaroB

  • Guru
  • *****
  • Příspěvků: 790
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:XML UTF-8 azbuka
« Odpověď #25 kdy: 21-03-2017, 09:21:18 »
Tomu rozumím. Já mám slovníček překlepáček pro češtinu, má jen 800000 slov a nijaké problémy s pamětí ani výkonem uživatelé nepociťují, a to je hloupý formát a la excel :(

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #26 kdy: 21-03-2017, 11:22:52 »
takto to je:
mám dokument vo formáte xml (štruktúru ste videli), (este asi v roku 2006 som rišeil SOAP, stiahnutie xml a nasledný import do DB a vtedy som našiel transformácie, ktoré my jednoducho pomocou XMLmaperu, dovolili importovat rôzne štruktúry dát), tak ma napadlo použiť ten postup ktorý poznám, ale ako som už spomínal, vrhnem sa do toho nabindovania - čo už mám, čo nemám sú skúsenosti s týmto spôsobom spracovania XML

takže ešte raz:
mám dokument vo formáte xml, potrebujem ho zobraziť, editovať a uložiť späť do pôvodného súboru.. to je celé
« Poslední změna: 21-03-2017, 11:26:14 od František »

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1700
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:XML UTF-8 azbuka
« Odpověď #27 kdy: 21-03-2017, 11:33:44 »
takže ešte raz:
mám dokument vo formáte xml, potrebujem ho zobraziť, editovať a uložiť späť do pôvodného súboru.. to je celé
A musis po Save zachovavat ten puvodni format? Nemuzes to treba jenom naimportovat a pak pouzivat ten proprietarni format DataSnapu?

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #28 kdy: 21-03-2017, 11:47:14 »
nie, ten XML súbor spracováva iný program, ja k nemu robím len editor

BTW: vytiahol som Cantú-ovu Delphi 7, a čítam o DOM a SAX - vtedy som tomu nerozumel, teraz je to lepšie :)

Offline oxo

  • Guru
  • *****
  • Příspěvků: 654
  • Karma: 37
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:XML UTF-8 azbuka
« Odpověď #29 kdy: 21-03-2017, 12:00:32 »
takže ešte raz:
mám dokument vo formáte xml, potrebujem ho zobraziť, editovať a uložiť späť do pôvodného súboru.. to je celé

Já taky ještě jednou: někoho si na to zaplaťte, když to neumíte sami :)
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #30 kdy: 21-03-2017, 12:24:02 »
to oxo:

toto je fórum programátorov, nie obchoďákov

väčšina sa tým živí/alebo živila (ja iba necelý rok), a chodí sem na nejakú tú radu, nie?

to si máme za všetko platiť? tak potom to všetky fóra môžu zavrieť

a to čo sa sem napíšeš je verejné, nie je to len pre mňa
« Poslední změna: 21-03-2017, 12:33:03 od František »

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1700
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:XML UTF-8 azbuka
« Odpověď #31 kdy: 21-03-2017, 12:29:49 »
Já taky ještě jednou: někoho si na to zaplaťte, když to neumíte sami :)
Ja myslim, ze on by to "pesky" tj. treba pres ten XML Binding umel.

Ale i kdyz to vypada, ze do duchodu uz nebudu muset na Delphi (skoro) sahnout, tak by me docela zajimalo, proc to nefunguje a jestli lze nekde neco deklarativne nastavit tak, aby ta vazba XML -> TXmlTransformer -> CDS tam a zpatky fungovala.

A kdyby nekdo vedel, proc zustalo TStringField unicodifikaci ANSI, protoze evidentne nejsem sam, kdo na to uz leta cumi jako puk http://stackoverflow.com/questions/9459186/delphi-xe2-dataset-field-type-tstringfield-does-not-support-unicode (Arnaud Bouchez), tak by mi vysvetlenim udelal radost.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 654
  • Karma: 37
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:XML UTF-8 azbuka
« Odpověď #32 kdy: 21-03-2017, 14:18:58 »
to oxo:

toto je fórum programátorov, nie obchoďákov

väčšina sa tým živí/alebo živila (ja iba necelý rok), a chodí sem na nejakú tú radu, nie?

to si máme za všetko platiť? tak potom to všetky fóra môžu zavrieť

a to čo sa sem napíšeš je verejné, nie je to len pre mňa

Však už jsi (nejen) ode mě radu dostal. Právě, že je toto fórum. T.j. dotazovatel by měl alespoň ukázat trochu vlastní snahy. Pokud bereš fórum jako zdroj kódu zadarmo, budeš zklamán. Alespoň mnou :) (Nic ve zlém.)

Upřímně řečeno, já bych se na celý ten cirkus XML -> transformace -> DB -> kontrolky a zpět vykašlal (jak tady ostatní navrhovali). Hlavně, když si to musíš nahackovat, aby to fungovalo.
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline František

  • Plnoletý
  • ***
  • Příspěvků: 242
  • Karma: 1
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:XML UTF-8 azbuka
« Odpověď #33 kdy: 21-03-2017, 14:38:24 »
ad1. oxo, pochopil si správne, a za rady aj za ostatných ďakujem(e)
ale niekedy je potrebný aj ten ucelený kód - keď nevieš kam s konope

ad2. však hej, "nahackovat", ale urobíš prd bez vysvetlenia a pochopenia

Offline Daniel_Andrascik

  • Hrdina
  • ****
  • Příspěvků: 396
  • Karma: 15
    • Verze Delphi: D2007, XE3
Re:XML UTF-8 azbuka
« Odpověď #34 kdy: 22-03-2017, 12:44:43 »
Excellent
Rated 2 times
Někdy si říkám, co je lepší. Jestli starý přístup, kdy programátor měl absolutní kontrolu, ale zároveň i absolutní zodpovědnost za všechno, nebo dnešní - programátor v podstatě už nemusí přemýšlet, co se děje "ve střevech". Když ale řešíme nějaký opravdu vážný problém, tak programátoři odchovaní prvním principem absolutně vedou :-) Takže asi tak.

Jo Marku, tak tymto si trafil. Ono to bude asi stale tazsie a tazsie si vsetko spravit ako sa hovori "pěšky" (kedze sa nam v stale sa rozrastajucom  IT svete jednotlive "vzdialenosti" stale neuprosne zvacsuju) ale ja pokial mozem, vladzem a stiham tak si co najviac veci robim peso (samozrejme s nejakym zdravym rozmyslom) a ma to tu nevyhodu ze clovek sa zvycajne viac narobi. Ale v momente kedy pridu problemy (a oni povedzme si pravdu vacsinou bohuzial pridu) tak ich identifikovanie a vyriesenie je v prvom pripade omnoho rychlejsie a efektivnejsie, nez ked clovek musi zacat studovat creva nejakej obludy ktoru pre zjednodusenie svojej prace pouzil ale nerozumie jej. Som tu na tomto fore dost znamy svojou velkou nechutou pouzivat datasety a absolutnym odmietanim DB aware komponent. Ale mam aj horsie "choroby"  ::)

A za vsetko hovori aj nasledujuci gif  ;D ;)

www.alphasystems.sk/images/sof.gif

(gifko ma 7MB, tak ak mate pomalsie pripojenie, chvilku potrva kym sa vam nahra  :o)

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Kolik je šest plus čtyři (slovem):