Anonymní profil Petr – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Petr – Programujte.comAnonymní profil Petr – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:67c:1220:809::93e5:9...–

JavaScript, AJAX, jQuery › Angular2 - Validace dynamick…
25. 8. 2017   #217659

Stack pomohl, řešení:

https://stackoverflow.com/questions/45875413/validation-of-dynamic-angular2-forms

JavaScript, AJAX, jQuery › Angular2 - Validace dynamick…
25. 8. 2017   #217658

#5 peter
Asi se spíš budu muset sám zeptat na stacku, takovéhle thready jsem našel, ale to je všechno pro angularjs, ne pro angular2 a mezi nima je propastný rozdíl

JavaScript, AJAX, jQuery › Angular2 - Validace dynamick…
24. 8. 2017   #217646

#3 peter
Tohle není php, tohle je angular. Do name atributu nemůžu narvat proměnnou, bude to považovaný za plainstring. Dynamicky se to generuje pomocí direktivy *ngFor. Submit formu se nikam nepošle, akorát spustí v javascriptu funkci, která data odesílá asynchroně.

JavaScript, AJAX, jQuery › Angular2 - Validace dynamick…
24. 8. 2017   #217631

Ahoj,

snažím se dát dohromady v angularu formulář, který má pár statických polí k vyplnění a pár dynamických (uživatel si může nastavit, kolik jich bude a přes *ngFor se následně vygenerují ve formuláři). Všechna pole podléhají validaci a v případě, že nevyhovují, tak bych rád docílil toho, aby byl submit button disablovaný.

Angular bohužel nedávno dostal update, který zapřínil, že pokud člověk využívá FormGroup a má input s ngModelem, tak daný input musí být pojmenovaný. V template ale, pokud je mi známo, není úplně možné si dynamicky generovat jména. Na stackoverflow jsem našel radu k AngularJS, která doporučila si generované inputy obalit novou FormGroup a pojmenovat tu. Nedá se říct, že by to pomohlo, koneckonců je to akorát přesunutí problému někam jinam. Má otázka tedy zní - Jak mohu zajistit validaci FormGroup, která má dynamicky generované inputy? Ideální by bylo template-driven řešení.

Díky za pomoc, přikládám ještě template kód formuláře.

<form #f="ngForm" (ngSubmit)="createProfile()">
    <div class="row align-items-center mb-2">
        <div class="col-sm-2">
            <b>Name:</b>
        </div>
        <div class="col-sm-10">
            <input type="text" [(ngModel)]="profile.name" class="form-control"
            name="profileName" required pattern="[a-zA-Z_][a-zA-Z_\-0-9]*">
        </div>
    </div>

    <div class="channelBox">
        <div *ngFor="let c of profile.channels">
            <form name="innerForm">
                <div class="row align-items-center mb-2">
                    <div class="col-sm-2">
                        <b>Name:</b>
                    </div>
                    <div class="col-sm-10">
                        <input type="text" [(ngModel)]="c.name" class="form-control" required
                        pattern="[a-zA-Z_][a-zA-Z_\-0-9]*" name="channelName">
                    </div>
                </div>
            </form>
        </div>
    </div>
    
    <div>
        <button class="btn btn-success" type="submit" [disabled]="!f.valid">
            Create profile
        </button>
        <button class="btn btn-default" (click)="d('reason')">Cancel</button>
    </div>
</form>
C / C++ › Jak otevřít soubor v C++ a n…
22. 8. 2017   #217606

Lehce offtopic - vždy v cestách používej pouze normální lomítka. Bude to fungovat univerzálně na všech platformách.

OS - Windows › stahování aktualizací zabere…
25. 7. 2017   #217168

#1 hlucheucho
Taky se mi to dělo, už jsem to ale pár měsíců nepozoroval (rychlejší internet to asi zamaskoval). Každopádně nemohlo by pomoct tohle? https://superuser.com/…n-completely

PHP › PHP automatické přidávání ht…
24. 7. 2017   #217157

#11 peter
Tohle je asi dost věc názoru. Osobně používám ID i pro odlišení znovupoužitelných stylů od těch jednorázových. Jedna věc je stylovat odstavec a druhá věc je stylovat třeba sidebar, který se mi v rámci jednoho dokumentu určitě víckrát objevit nesmí.

PHP › PHP automatické přidávání ht…
20. 7. 2017   #217134

#5 Jandak
Jde to, ale to neznamená, že se to tak má dělat. Class slouží k označení více prvků, které mají něco společného, především tedy css styl. Id se používá k označení prvků, které jsou něčím unikátní - například prvek, do kterého chceš nahrávat nějaká data.

Za druhé - ve webových technologiích je v současnosti velice populární návrhový vzor MVC - Model View Controller. Ten spočívá v tom, že máš něco, co ti data zobrazuje (View), něco co s nimi manipuluje (Controller) a něco, co je poskytuje (Model). V tvém případě by to mělo vypadat tak, že budeš mít index.html, který bude tím View - budeš v něm mít nějaký doctype, head, body a uvnitř body budeš mít třeba div s id="content". Pak budeš mít javascript kód - to bude tvůj controller. Nemusí být nutně v separátním .js souboru, ale časem, až se ti aplikace rozroste, tak si to do separátního souboru určitě rád dáš. Javascript udělá to, že při načtení stránky (v Jquery je to myslím $ready nebo něco na ten způsob) si natáhneš data do content a zároveň zaregistruješ svůj setInterval. Nakonec pak budeš mít někde data.php a v něm budeš mít natahovaný obsah. Základní kostra kódu by mohla vypadat takto:

index.html (nikdy jsem se nenaučil Jquery, takže místo $ready používám nativní onload event):

<!DOCTYPE html>

<html>

<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>

    <script type="text/javascript">
        var auto_refresh;
        
        function getData() {
            $('#content').load('data.php');
        }
        
        function initApp() {
            getData();
            auto_refresh = setInterval( getData, 10000);
        }
    </script>
</head>

<body onload="initApp()">
    <div id="content">
    </div>
</body>

</html>

data.php:

<h1>Hello world</h1>

<p>Lorem ipsum dolor sit amet.</p>

Když uděláš tohle, tak stačí mít v prohlížeči otevřený index.html a pokud změníš cokoliv v data.php, tak se ti to nejpozději po deseti sekundách zaktualizuje i v prohlížeči.

Pochopitelně tuto odpověď dost zjednodušuju, protože v reálném prostředí by ti data.php mělo vracet raději JSON objekt, a controller by byl zodpovědný za generování html markupu. To ale dost složité a bez frameworku typu angular je to i na zastřelení. Tobě bude bohatě stačit to, co jsem zde uvedl.

C / C++ › WinApi - Nastavení kořenovéh…
17. 7. 2017   #217089

Díky, to jsem úplně přehlídl

Python › Flask - Spouštění procesů, s…
11. 7. 2017   #217034

#2 gna
Díky za vysvětlení i za tip na řešení :)

Python › Flask - Spouštění procesů, s…
11. 7. 2017   #217031

Ahoj,

nejsem úplně zběhlý v Pythonu a tak bych potřeboval poradit/vysvětlit věc, kterou teď při vývoji budu řešit.

Mám Flask server, pomocí kterého se budu dotazovat na databázi. Dotazy můžou být komplikované a jejich vyhodnocení může trvat velice dlouho (minuty, hodiny). Stejně tak může být velké i množství dat, kterými databáze přes stdout odpoví. Pro spouštění procesů používám subprocess.Popen a pro vyčítání stdout Popen.communicate. Proces dotazování by měl fungovat tak, že jedna routa flask serveru spustí proces a zapamatuje si referenci na Popen objekt. Druhá routa poskytuje informaci o stavu dotazu a třetí si pomocí communicate vytáhne stdout/stderr data a vrátí je jako výsledek.

Nicméně v dokumentaci Popen se píše i něco o tom, že by proces mohl naplnit OS buffery pro stdout/stderr. Mám obavu, že přesně toto by u mě mohlo nastat. Nejenže odpověď databáze může být opravdu hodně velká, ale zároveň se ve stejný moment může dotazovat více lidí na databázi. Jak to uvnitř funguje? Bude mít každý dotaz vlastní buffery, nebo je jeden buffer sdílen vícero procesy? Jak můžu ošetřit potenciální naplnění bufferů, aby nedošlo k deadlocku (jako se mi to už stalo s Popen.wait) a zároveň zachoval výše uvedený návrh chování aplikace (a především aby provádění jednoho dorazu nezablokovalo všem ostatním komunikaci se serverem).

Díky předem za odpovědi

Python › Čtení stdin včetně CRLF
4. 4. 2017   #215459

Ahoj, mám za úkol naprogramovat csv čtečku podle RFC 4180. Na základě vstupních parametrů mám buď načítat vstupní csv soubor nebo číst stdin. To řeším kódem:

handle = open(filename, encoding = "utf8", newline = "\r\n") if filename else sys.stdin
self.buffer = handle.read()

Pokud vstupní soubor používá pro nový řádek pouze znak LF, můj skript má skončit s chybou. Což mi funguje, pokud soubor čtu přímo, nicméně pokud si ho do programuju načítám přes pipe ze stdin, všechny CR LF znaky se mi zamění za LF. Jak to můžu vyřešit?

Díky za pomoc

C / C++ › Návrhové vzory - Specializac…
30. 3. 2017   #215383

#4 Staon
MVC model znám, vůbec mě nenapadlo ho uvažovat kdekoliv jinde, než při vývoji webu :)

Schování Qt a CLI pod jedno rozhraní jsem chtěl řešit tak, že specializované třídy by implementovaly vlastní sady metod pro fungovaní v daném prostředí. Každé prostředí bude separátní binárka a separátní zdrojový kód, takže tam by mě odlišná rozhraní ve specializacích nevadila. Byl to nicméně špatný nápad, což jsem si uvědomil, až při implementaci metod.

S návrhovými vzory se teprve učím a musím si je zažít. Osobně jsem ještě neprogramoval nic, co by vyžadovalo pure virtual třídu (ale vím, co to je i jak se v C++ dělá), zatím jsem dědění využíval jen ve formě mám Bod, který specializuji na Kruh a Obdélník, apod.

C / C++ › Návrhové vzory - Specializac…
29. 3. 2017   #215372

#2 Ovrscout
Factory pattern vidím prvně v životě, ten se budu učit, až na to bude čas ;)

Nápad o oddělení vykreslování od logiky je dobrý, použiju ho.

C / C++ › Návrhové vzory - Specializac…
28. 3. 2017   #215360

Ahoj, potřeboval bych trochu pomoct s návrhovými vzory pro následující úkol: Mám naprogramovat hru Solitaire Klondike a to jak ve verzi pro cmd, tak ve verzi s grafickým rozhraním přes Qt.

Můj prvotní nápad bylo vytvořit si třídu GameMgr, který bude obstarávat logiku hry a který bude pracovat nad třídami Library, Piles a Foundations, které v sobě budou spravovat zásobníky a seznamy objektů Card. Každá třída by se pak dala specializovat pro CLI a pro QT verzi hry, při čemž specializace by spočívala v implementaci metod pro vykreslování na obrazovku. Zde jsem ale narazil na problém.

Jak jednoduše v C++ zajistit, aby GameMgr pracoval buď nad CLI nebo QT verzemi objektů Library, Piles a Foundations a jak zajistit, aby tyto objekty pak pracovaly se správnou verzí objektů Card (či případně i jiných objektů seznamů a zásobníků, pokud budu chtít vykreslovat i ty)?

Napadla mě pouze jedna velice ošklivá varianta, kdy by všechny třídy využívaly šablon a GameMgr objekt by se pak vytvářel nějak tato: GameMgr<Library_Cli<Card_Cli>, Piles_Cli<Card_Cli, Stack_Cli>, Foundations_Cli<Card_Cli>> .... což mi nepřijde jako dvakrát elegantní řešení.

Tipnul bych si, že lepší řešení asi vyžaduje úplně jiný systém dědění, žádný mě ale nenapadá.

Díky předem za pomoc

C / C++ › Alternativa pro referenci na…
16. 9. 2016   #212738

Kolega právě přišel se zajímavým názorem, který se údajně (za sebe nevím, kde) často používá v std. Get funkce vrací true/false v závislosti zda (ne)našla objekt a naplní referenci, která byla předána jako parametr funkce.

C / C++ › Alternativa pro referenci na…
15. 9. 2016   #212720

  Jasně, to už pak záleží na kontextu. Každopádně díky za pomoc

C / C++ › Alternativa pro referenci na…
15. 9. 2016   #212718

Díky za všechny názory. Staonova poznámka, že je občas celkem těžké vymyslet, co takový NullObject musí udělat, mi přijde celkem na místě, protože pokud program pokračuje dál, jako by se nechumelilo, tak by ten NullObject měl asi nějak dát najevo, že se vyskytl (aspoň error logem), a že ho tam pravděpodobně nechceme.

Házet výjimku se mi úplně nechce, v případě chybějícího klientského try and catch by ten program lehnul tak jak tak, nebo se pletu?

C / C++ › Alternativa pro referenci na…
14. 9. 2016   #212693

 Zdravím,

pokud mám funkci, která vrací konstantní referenci na nějaký objekt

const Object &getObject() const;

tak pokud by vracela ukazatel a z libovolného důvodu by nemohla vrátit validní ukazatel, vrátila by null. Co má ale v případě chyby vracet, když její návratová hodnota je const& ? Jaký je industry standard pro tento případ?

Mám si pro každý datový typ, u nějž hrozí vrácení chyby, vytvořit nějaký dummy objekt, který by znamenal "toto je chyba" a porovnávat, zda jsou adresy stejné?

Díky za odpovědi

OS - GNU / Linux › Poslání SIGUSR1 procesu, kte…
25. 8. 2016   #212448

#4 q
Ano, to je přesně to, co jsem potřeboval. Díky moc!

OS - GNU / Linux › Poslání SIGUSR1 procesu, kte…
24. 8. 2016   #212441

Ahoj,

vytvářím webové GUI pro firemní program, jehož součástí jsou různé konfigurační soubory, které je možné skrze GUI editovat. Program běží jako démon a konfiguráky je možné znovu načíst posláním signálu SIGUSR1 jeho procesu. Tento proces zároveň vytváří soubory, které GUI potřebuje umět akorát číst, práva pro zápis bych mu přiděloval nerad.

Nicméně GUI, běžící pod uživatelem apache (webserver), potřebuje poslat SIGUSR1 procesu, který vytvořil jiný uživatel, na což implicitně nemá práva. Je možné nějakým způsobem přidělit apachi práva k poslání tohoto jednoho konkrétního signálu jednomu konkrétnímu procesu?

V linuxu jsem stále začátečník, tak bych požádal, aby v odpovědích nebylo moc zkratek a slangu ;)

Předem díky za pomoc

Jurko
Mikrokontroléry › Prevod pole char na int
8. 12. 2015   #207143

Nakonec sem zistil že budu mat stale rovnaky tvar <X,Y,005,105> .. takže spravim radšej dve zvlast funkcie 

while (*str != ',')  a druhu s  while (*str != '>')   a to by mohlo fungovat ? ked mu dam začatek a ukončovani tym znakem a nemusim riesit  '\0'  ??? 

Jurko
Mikrokontroléry › Prevod pole char na int
8. 12. 2015   #207141

Matej: však jaky je rozdil je medzi pole char a retazec? len v ukončovani /0 .

KIIV:  to sem si nevšimel :/ diky za upozornenie  takže while(*str != ( ',' | '>' ))

naco kontrolovat /0??

HTML / XHTML › Javascript, MOTW a otevírání…
1. 12. 2015   #206915

Na technet.microsoft mi byla doporučena technologie HTA, zkusím to s ní, tváří se to jako nejlepší řešení

HTML / XHTML › Javascript, MOTW a otevírání…
1. 12. 2015   #206914

#4 peter

ten koment tam mám, napsal jsem to v druhém odstavci dotazu. pokud si ten koment tam vrazím, tak přestane fungovat otevírání .bat souborů

Martin
C / C++ › nejmensi kladna hodnota
10. 12. 2014   #197107

potřeboval bych poradit, je tam problém s tou velikosti.

int nejmensiKladnaHodnota (int* data, int velikost)
{
    int data[10] = {-1, 4, 5, -5, 8, 4, -2, 7, -4, 8};
    int nejmensi = 1000;
    int i;
        for ( i=0; i<=9; i++)
    {
        if(data[i]>0)
        {
        if (nejmensi>data[i]);
        }
    }
return 0;
}

Petr
Assembler › [úkol] - hodila by se mi pomoc
21. 11. 2014   #196272

Zdravím, pomohl by mi někdo vyřešit tento úkol? Vůbec nevím

Do datového segmentu uložte bezznaménkové číslo o velikosti 1 byte (označme ho X). Do registru eax uložte součet všech sudých přirozených čísel menších nebo rovných číslu X.

Assembler › Zpracování spojitého signálu…
4. 3. 2014   #187865

#4 hlucheucho
Díky za rady...jj, všiml jsem si, že jsem to přidal do špatnýho fóra. Nicméně signál budu zesilovat a teprve následně po průchodu zesilovačem a filtrací, bych ho načítal do ATmega, kde už by probíhala detekce, ještě jsem se chtěl zeptat ohledně výstupu, rád bych tepovou frekvenci zobrazoval na 7-segmentu nebo na nějakem displeji, to by asi neměl být problém, ale ještě potřebuju, aby se mě detekovaný maximum projevilo nějak na výstupu, např. když projde R vlny(maximum), tak se rozsvítí LED a pípne bzučák? Je nějak ATmega omezený, co se týče počtu výstupů...?? Díky

metthal
C / C++ › Alternativa k boost::thread
30. 10. 2012   #165556

Lenze tie hlavicky zavisia jedna na druhej. Skusal som ich vsetky zmazat a hadzal som build a vzdy som si pozrel co mi chyba a pridal som to tam, nakoniec som tam skoncil prakticky s kopiou povodneho priecinku.

C / C++ › C bug
10. 10. 2012   #164435

#4 vitamin
Dík, příště mě rovnou prašti po hlavě.

Až teď mi došlo, že  

char omg[255]

mi vytvoří pole s 255 prvky, tudíž bude mít indexy 0 - 254. Prostě jasná věc a já nad tím laboruju už snad hodinu.

C / C++ › C bug
10. 10. 2012   #164424

#2 Atheo
Zkoušel jsem char, short, int včetně unsigned variant a bez výsledku.

Právě jsem to samé otestoval na školních serverech FreeBSD a CentOS a všude ten samý problém.

C / C++ › C bug
10. 10. 2012   #164419

Zdravím.

Mám tento kód:

#include <stdio.h>

typedef struct params
{
    unsigned char N;
} TParams;


int main()
{
    TParams params;
    params.N = 5;

    char omg[255];
    omg[255] = 0;

    printf("___%i___", params.N);

    return 0;
}

Proč mi printf nevytiskne číslo 5 (jak je nastaveno), ale nulu?

Operace s polem omg právě způsobují tento problém, ale nedaří se mi zjistit proč.

Můžete někdo poradit?

Kompiluju to pomocí nejnovějšího gcc na Windows 7 x64 SP2.

Děkuju

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý