• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    CERMINEK
    CERMINEK --- ---
    PIGSTER: Jak to obejít aby v tom původním poli bylo to původní a do těch dvou se to seřadilo těmi funkcemi?
    PIGSTER
    PIGSTER --- ---
    CERMINEK: no to protoze to pole tam predavas odkazem - protoze vsechno v .NETu krome struktur a zakladnich datovejch typu se predava odkazem
    CERMINEK
    CERMINEK --- ---
    Ahoj. Mám otázečku k mému Dů do školy... Nějako mi to není jasné a to je to přitom úroveň C, kterou ještě zvládám.

    Oč jde... Tahle konzolovka má srovnat pole dvěma metodami - bubble sort a quick sort, algorytmi jsou OK. Ale není mi jasné proč po tom, co udělám bubble sort s jeho funkcí, kdy má být seřazení uloženo jen do pole 'polebubble'. Seřazení proběhne a v 'polebubble' jsou hodnoty seřazeny,ale v poli 'pole', kde mají zůstat jen původní náhodná čísla bez seřazení, se záhadně seřadí a nejsem schopen říct proč.

    Taky mě zaráží další fakt, že když pustím program naplno v plné rychlosti, tak jsou v poli stejná čísla... Čím to je?

    Všem moc díky za rady!

    class Program
    {
    static void Main(string[] args)
    {
    Console.WriteLine("Michal Čermák - Domácí úkol č.1 - PPR");

    int[] pole = novepole();//generuje pole náhosných čísel zvolené velikosti
    vypispole(pole);//vypíše pole

    int[] polebubble = new int[pole.Length];
    polebubble = bubble(pole);//srovná 'pole' metodou bubble sort do pole 'polebubble'
    vypispole(polebubble);//vypíše pole

    int[] polequick = new int[pole.Length];
    polequick = quick(pole,5,5);//srovná 'pole' metodou quick sort do pole 'polequick'
    vypispole(polequick);


    Console.ReadKey();
    }

    //Funkce pro generování pole o proměnné velikosti a jeho naplnění náhodnými čísly
    static int[] novepole()
    {

    // !!! při plném spuštění přes F5 vypíše stejná čísla
    //načtení požadované velikosti pole
    Console.Write("Zadejte velikost pole: ");
    int velikost = Convert.ToInt16(Console.ReadLine());
    int[] polecisel = new int[velikost];

    for (int i = 0; i < velikost; i++)
    {
    Random j = new Random();
    polecisel[i] = j.Next(-100, 100);
    }


    return polecisel;
    }

    //Funkce pro výpis jakéhokoliv pole do řádku
    static void vypispole(int[] poleprovypis)
    {
    foreach (int i in poleprovypis)
    {
    Console.Write("{0, 5}", i);
    }
    Console.WriteLine();
    }

    //Funkce BUBBLE sort metody ttřídění pole
    //optimalizace: dopředný i zpětný průchod
    //Vzestupný postup - opačně s přehozením znamének
    static int[] bubble(int[] polebubble)
    {

    for (int i = 0; i < polebubble.Length / 2; i++)
    {
    bool zamena = false;

    for (int j = i; j < polebubble.Length - i - 1; j++)
    {
    if (polebubble[j] > polebubble[j + 1])
    {
    int tempnum = polebubble[j];
    polebubble[j] = polebubble[j + 1];
    polebubble[j + 1] = tempnum;
    zamena = true;
    }
    }
    for (int j = polebubble.Length - 2 - i; j > i; j--)
    {
    if (polebubble[j] < polebubble[j - 1])
    {
    int tempnum = polebubble[j];
    polebubble[j] = polebubble[j - 1];
    polebubble[j - 1] = tempnum;
    zamena = true;
    }
    }
    if (!zamena) break;
    }
    return polebubble;
    }


    //Funkce QUICk sort metody třídění pole
    //při velikosti pole <=10 není zrovna výhodný
    //potíže jsou s volbou hranic
    static int[] quick(int[] polequick, int hraniceleva, int hraniceprava)
    {
    if (hraniceleva < hraniceprava){
    int boundary = hraniceleva;
    for (int i = hraniceleva + 1; i < hraniceprava; i++)
    {
    if (polequick[i] > polequick[hraniceleva])
    {
    prohozeni(polequick, i, ++boundary);
    }
    }
    prohozeni(polequick, hraniceleva, boundary);
    quick(polequick, hraniceleva, boundary);
    quick(polequick, boundary + 1, hraniceprava);
    }
    return polequick;
    }

    private static void prohozeni(int[] poleprohozeni, int hraniceleva, int hraniceprava) {
    int tempnum = poleprohozeni[hraniceprava];
    poleprohozeni[hraniceprava] = poleprohozeni[hraniceleva];
    poleprohozeni[hraniceleva] = tempnum;
    }
    }
    EDUDANT
    EDUDANT --- ---
    SLUPKA: No v livecycle to je vytvořený. Já když normálně v acrobatu použiju forms-manage...-import tak to funguje. Ale když to obsluhuju javascriptem přes VBA tak ne.

    Sub test()

    Dim AcroApp As New AcroApp
    Dim theForma As New AcroAVDoc
    Dim theform As AcroPDDoc
    Dim jso As Object


    theForma.Open "D:\zkouska.pdf", ""
    Set theform = theForma.GetPDDoc
    Set jso = theform.GetJSObject
    jso.xfa.host.importData "d:\a.xml", False


    chyba v debugeru je tahle

    NotAllowedError: Security settings prevent access to this property or method.
    Doc.importXFAData:-1:External undefined:Exec


    Ještě před tím než mi to hodí tohle tak při otevření dokumentu mi to hlásí že by bylo potřeba stáhnout novou verzi a pak mi to hodí chybu presign což taky nevim co je ale kažodpádně i přes tohle mi to jde manuálně importovat.



    Je to tam právě tak že tam neni přednastavenej počet ale přidávaj se tam pole až dle toho xml, Pak je tam rozdíl jelsti je fyzická osoba právnická osoba atd.
    SLUPKA
    SLUPKA --- ---
    EDUDANT: Tak ale řešení od Adobe na formuláře není Acrobat, ale LiveCycle...

    A to v tom formuláři máš nějaké dynamické prvky? Jakože třeba řádky, které se opakují, kolikrát je potřeba a podle toho si vezmou místo? A nebo je tam třeba 10 řádků, které se vyplní, jak je potřeba?
    EDUDANT
    EDUDANT --- ---
    SLUPKA: no představ si to tak že můžemš mít například několik účtú pod zákazníkem, který má několik faktur , z čehož jsou některé po splatnosti a tudíž mají úroky a některé ne. Takže v podstatě některé uzly se opakují některé jsou někdy prázdné, některé nejsou vůbec generované. To xml sem tvořil v PL/SQL a dalo to práci ale vyplňovat políčko po políčku respektive to nějak mapovat bych asi nedal.

    To je pravda to bude asi drahé. Proto sem předpokládal když vlasntníme ofiko licence na acrobat profesional že to půjde.

    Zkoušel jsem používat tu metodu jso.xfa.host.importData "d:\a.xml" ae dostávám chybu z předhcozího příspěvku.

    Pokud ta přidám ještě True nebo False (u čehož jsem se vůbec nedozvěěl co ten paramtr vypíná nebo zapíná) tak mi to háže general error. na různejch forech jsou různý odpovědi a jsou i dost protichůdný tak už fakt nevim :D
    SLUPKA
    SLUPKA --- ---
    EDUDANT: Vůbec nevím, co si představit pod dynamickým formulářem, já jsem zatím vždy pracoval se statickýma. Ale to bude asi hodně náročné, protože obecně těch knihoven na práci s formulářema v pdf moc není a těch dobrých už vůbec ne. A oficiální cesta bude zase asi drahá hádám :))
    EDUDANT
    EDUDANT --- ---
    SLUPKA: No právě že to není standardní formulář je hodně dynamickej a když v acrobatu použiju funkci import data tak to funguje v pohodě. Prostě tam načtu to xml a je to. Ale když volam xfa.host.import data přes VBA například tak to hlásí notallowedError:security settings prevent access to his property of method
    zkoušel jsem veškerý změny v security a nic. Tak jsem právě myslel že bych si udělal v C# nějakou knihovnu která by s tím třeba uměla pracovat lépe.


    SLUPKA
    SLUPKA --- ---
    EDUDANT: Je tam práce s formuláři, můžeš se dostat na seznam všech polí a na těch polích dávat SetValue. Ale C# verze (nevím jak Javovská) má spoustu nefungujících věcí, co si musíš dopsat sám (čárové kódy, obrázky, defaultní hodnoty ...)

    Ale na jednoduché vyplnění formuláře z XML by to mělo být použitelné snadno...
    EDUDANT
    EDUDANT --- ---

    SLUPKA:
    V itextsharpu jsem nenašel nějakou metodu pro import dat.
    SLUPKA
    SLUPKA --- ---
    EDUDANT: A co přesně ti chybí v itextsharpu? Nebo tedy úplně přesně nechápu, v čem je problém :))
    EDUDANT
    EDUDANT --- ---
    čau nevím kam se přesně obrátit tak píšu sem. Nemáte někdo zkušenost s automatizací importu xml dat v acrobatu. Mohu použít VBA C# nebo JAVU ale to ej asi irelevantní. Zkoušel jsem využít metodu host.importdata v javascriptovém objektu v knihovně acrobatu ale nejde to. Formulář, který mám není certifikovaný. Máme acrobat profesional. Ale netrvám na to maby se použil. Jeslti existuje nějaká knihovna., jako je týtečná itextsharp, která by něco takového uměla byl bych radši :)
    Tak co víte o něčem? Díky
    ESY
    ESY --- ---
    NECROMAN: sl uricte. takze na 95% urcite i ten v wp.
    NECROMAN
    NECROMAN --- ---
    ESY: hmm, a umi tyhle vychytavky i Silverlight pro Windows Phone? :)
    ESY
    ESY --- ---
    NECROMAN: imho z tohodle to vyctes.. projel jsem to naryhlo ale vypada to fajn

    WPF Storyboard Trigger on property changed - Stack Overflow
    http://stackoverflow.com/questions/626704/wpf-storyboard-trigger-on-property-changed
    NECROMAN
    NECROMAN --- ---
    dotaz, mam silverlight xaml, kde mam jeden stackpanel, ktery bych rad skryl, kdyz je jedna properta ve viewmodelu false, a zobrazil, kdyz je true. Rad bych to mel animovane, a ne skokove. Jak na to pouzit trigger nebo behavior? dival jsem se na to a je to pro me spanelska vesnice.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Coz je epickej fail. Kdyz meli jeste staricky typovy DataSety, tak s tim nebyl zadnej problem. At s tabulkama, view ci ulozenejma procedurama. To pregenerovani XML fakt neni tak slozity - nekdo se tam na to proste vysral :(.
    MORMEGIL
    MORMEGIL --- ---
    TENCOKACISTROMY: Jednu dobu jsem u Entity Frameworku to definiční XML editoval jenom ručně, protože Visual Studio ho při libovolné úpravě totálně rozjebalo. Teď už to snad funguje, ale pořád mám bezpečnější pocit při ručních úpravách…
    MILL
    MILL --- ---
    TENCOKACISTROMY: Zrovna pred tydnem jsem resil trivialni update schematu jedne tabulky. Model byl generovany ve VS2010 a kdyz jsem ted ve 2012 jako obvykle tu tabulku z modelu smazal a pridal z db znova tak se celej model uplne rozjel a pri buildu to hazelo errory ze nekde jsou ted nullable sloupce ikdyz to neni pravda, spatne fk multiplicity...nakonec jsem to kvuli casovy tisni vzdal, udelal undo checkout a vyresil to rucni upravou EDMX souboru.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Co si vzpominam, tak update modelu z databaze byl vzdycky u LINQ-u trochu problem. Coz absolutne nechapu, pac je to dost klicova ficura a navic mi to neprijde nijak zvlast slozity. Mozna to za par let napravej, ted bych vzdy vytvarel ten model znovu a nebo si to XML na zaklade ty databaze vygeneroval sam pomoci nejakyho toolu.
    MORMEGIL
    MORMEGIL --- ---
    VIRTUALVOID: Hm, tak stored procedury do databázového modelu nenačítáme, takže asi neporadím. Leda zkusit support (jestli máte pořád zaplacený), byli celkem komunikativní a jeden bug „nám“ opravili.
    Kliknutím sem můžete změnit nastavení reklam