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

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

 

Příspěvky odeslané z IP adresy 213.211.51.–

gna
Regulární výrazy › Úprava krátkého regulárního…
27. 10. 2020   #386849

U některého z minulých dotazů jsi měl nějakou vizualizaci/vysvětlení regexu, tak se tam na to podívej. 

,---------------- začátek skupiny
|,--------------- libovolný znak
||,-------------- 0 nebo více opakování
|||,------------- co nejkratší match
||||     ,------- konec skupiny
||||     |
vvvv     v
(.*?(;|$)){10} -- 10 opakování
    ^^^^^
    |||||
    ||||`-------- konec skupiny
    |||`--------- konec dat/řádku
    ||`---------- nebo
    |`----------- středník
    `------------ začátek skupiny

Takže jsi správně poznamenal, že ten tvůj pokus je nesmysl :-)

Nevím kde, jak a k čemu to používáš, tak nevím, jestli půjde ten prostředek nějak vynechat, ale obecně máš prostě AA BB CC a vezmeš si z toho jen AA a CC.

^(([^;]*;){3}).*;(([^;]*;){3})$

Začátek je ve skupině 1 a konec ve skupině 3.

gna
C / C++ › Rozdíl v definici typů #defi…
25. 10. 2020   #386843

#5 JerryM
v žádném případě NEPOUZIVEJ záměnu  typedef  a  #define protože u jednočipu je to jiné

Není.

gna
Regulární výrazy › Libovolný počet znaků nebo nic
23. 10. 2020   #386840

   

.*KW.*
gna
JavaScript, AJAX, jQuery › Jak vybrat element podle tex…
22. 10. 2020   #386836

Pokud ty názvy nejsou nějaké pakárny, tak to můžeš hodit rovnou do toho selektoru, ne? Místo url rovnou image1.

Jinak ten výsledek můžeš projít a podle libosti vyfiltrovat.

$('span[style*="url"]').filter(function() {
  return $(this).css('background').includes('image1');
});
gna
Regulární výrazy › Prvních několik elementů z CSV
20. 10. 2020   #386824

Ono záleží na tom jaké funkci v jakém jazyce to předhodíš. Nejspíš bude potřeba to ještě ukotvit -- na začátek ^ -- a výsledek bude v grupě 0 (všechno co se matchlo, tj. těch N hodnot).

Pak je ještě otázka, co s tím chceš dál dělat, jestli nebude lepší prostě nějaký string.split.

A jestli je to opravdu CSV, tak hodnoty s oddělovačem budou v uvozovkách, a uvozovky v hodnotách budou zdvojené, a bůhví co ještě. To se prostě regexama nedělá.

gna
Regulární výrazy › Prvních několik elementů z CSV
20. 10. 2020   #386821

Počet opakování jde určit pomocí {počet} / {od,do}

(.*?(;|$)){3}
gna
Python › Regulární výraz - začátečník
20. 10. 2020   #386818

Já bych ještě doplnil, že r"" vypíná escape sekvence, takže v tom stringu nemáš odřádkování, ale doslova lomítko-er-lomítko-en.

gna
C / C++ › piškvorky - výsledek ukazuje…
18. 10. 2020   #386810

Po každém tahu se nastavuje, že je na řadě další hráč. Takže ten, který je na řadě, není ten, který udělal konečný tah.

gna
C / C++ › Práce do školy.
17. 10. 2020   #386808

Žádná randomizace tam není. Máš výšku a vynásobíš ji koeficientem odrazu.

Výška je v metrech, když je pod 1m, tak ji vypíšeš v centimetrech. 

if (vyska < 1.0)
  cout << vyska * 100 << " cm";
else
  cout << vyska << " m";
gna
C / C++ › Práce do školy.
17. 10. 2020   #386806

V cyklu budeš přičítat nebo násobit. Napiš, co přesně nevíš.

gna
C / C++ › Pomoc
15. 10. 2020   #386789

Tady je to s diagramy, mělo by z toho být jasné, jak různé cykly fungují:

while, for, do...while

gna
C / C++ › String v C++
14. 10. 2020   #386780

Teda #include, ne #import   

gna
C / C++ › String v C++
14. 10. 2020   #386779

#1 Začátečník JK
Je to string s malým s a celé jméno je std::string. Direktivou using můžeš říct, který namespace používáš a nemusíš ho pak uvádět.

#import <string>
...
std::string s;
#import <string>
using namespace std;
...
string s;
gna
Python › Nelze spustit python soubor…
13. 10. 2020   #386773

Nainstaluj ty knihovny pipem do standardního umístění, nebo je zkopíruj k tomu programu, nebo Pythonu řekni kde jsou - PYTHONPATH před spuštěním, sys.path za běhu.

gna
Python › Konzole, akce po stisknutí t…
13. 10. 2020   #386772

PyCharm instaluje knihovny "bokem" a při spouštění programu Pythonu říká, kde jsou. Jinak o nich Python neví.

Já jsem myslel, že win32api je součástí Windowsové verzi Pythonu. Zjevně není, ale měl bys mít k dispozici ctypes, takže by toto mělo chodit i bez doinstalovávání knihoven. 

import ctypes

@ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_uint)
def zavirame(ctrl_type):
    ...

ctypes.windll.kernel32.SetConsoleCtrlHandler(zavirame, True)

Jinak proces jde vždycky sestřelit tak, že na to nemůže reagovat a bylo by lepší věci dělat tak, abys to nepotřeboval.

gna
Python › Konzole, akce po stisknutí t…
9. 10. 2020   #386758

Ve Windows? Toto by mohlo chodit: 

import sys, win32api

def zavirame(ctrl_type):
	print('nashledanou')
	sys.exit(0)

win32api.SetConsoleCtrlHandler(zavirame, True)
gna
MS SQL › SQL - kopírovaní výstupu
7. 10. 2020   #386751

Pochybuju, že by šlo nastavit formát v jakém se data kopírují do schránky i o tom, že by se to kopírovalo v takovémto formátu. Schválně to zkus vložit do jiného programu, jestli to bude stejné. Při nejhorším holt budeš dělat ten export, tj. ukládat do souboru.

Každopádně Excel má nějaké možnosti nastavení formátu dat, tak buď to zprasí až Excel, nebo to v něm půjde aspoň přeformátovat. Tak koukni do nastavení. Já ho nepoužívám, tak nevím.

gna
PHP › file_get_contents
30. 9. 2020   #386704

Načte to celý obsah souboru (pokud existuje).

gna
PHP › text do schránky
29. 9. 2020   #386691

#3 pegas
On to Kit asi myslel tak, že když budeš vědět, že se to dělá JavaScriptem (což mimochodem není Java), tak už to snadno vygooglíš.

Ale úplně "samo" to asi nepůjde. Bude to muset být na kliknutí.

gna
PHP › Vytvoření nové stránky podle…
28. 9. 2020   #386681

První parametr bind_param určuje typ dalších parametrů. Teď to bude "s".

$stmt->bind_param("s", $_GET["nazev"]);
gna
Java › Jak zopakovat uživatelský in…
26. 9. 2020   #386676

   

Scanner scanner = new Scanner(System.in);

String line = scanner.nextLine();
for (int i = 0; i < 10; i++) {
    System.out.println(line);
}
gna
C / C++ › Problém s porovnáváním čisel
26. 9. 2020   #386675

Mně s tím seřazením šlo o to, že to je primitivní a řeší to všechny body najednou.

gna
C / C++ › Problém s cout
25. 9. 2020   #386673

   

cout << "Povrch je: " << x << " m3" << endl;
gna
C / C++ › Problém s porovnáváním čisel
24. 9. 2020   #386666

Místo hromady testů všech možností můžeš ty hodnoty prohodit a omezit počet těch možností. A to klidně až tak, že prostě ty hodnoty seřadíš.

// prohodi hodnoty, aby platilo a <= b
void sort(int &a, int &b)
{
	if (a > b) {
		int x = a;
		a = b;
		b = x;
	}
}

int main()
{
	...

	sort(n1, n2);
	sort(n1, n3);
	sort(n2, n3);

	std::cout << "min " << n1 << ", mid " << n2 << ", max " << n3 << "\n";
}
gna
Java › Android studio dotaz
23. 9. 2020   #386660

Představ si, že máš interface ClickHandler. 

interface ClickHandler
{
    void onClick();
}

Můžeš ho implementovat klasickou pojmenovanou třídou.

class ClickReporter implements ClickHandler
{
    public void onClick() {
        message("Nekdo na neco kliknul.");
    }
}

A vytvářet její instanci, kde je potřeba. 

ClickHandler a = new ClickReporter();

// a pak ho nekdo nekde pri kliknuti zavola
a.onClick();

A stejně tak anonymní třídou definovanou v místě použití. 

ClickHandler b = new ClickHandler() {
    public void onClick() {
        message("Tralala.");
    }
};

// a pak ho nekdo nekde pri kliknuti zavola
b.onClick();

Proč to tak je v tom tvém příkladě? Protože se tak prostě autor rozhodl. V onCreate se buttonu nastavuje ClickListener, implementace je krátká a nikde jinde se nepoužije, tak je definovaná takhle. A taky takto "vidí data okolo" - jako tu metodu speak.

gna
PHP › Nefunkcni url s diakritikou
23. 9. 2020   #386659

Je spousta způsobů kódování textu a je potřeba aby všichni věděli s čím pracují. To ř jako F8 vypadá na Windows-1250 a pokud to nikde nespecifikuješ, tak se to nějak automaticky detekovalo.

Dnes nemá smysl používat nic jiného než Unicode v UTF-8. Takže nejdříve se ujisti, že máš ten skript uložený v UTF-8 (každý slušný editor to dnes umí nastavit) a pak to kódování uveď i v dokumentu. (Ještě na to mý vliv hlavička Content-Type při přenosu, ale ta ti to v tomhle případě nejspíše nerozbíjí.)

Takhle nějak by to mohlo chodit: 

<?php
   $htmldata = htmlspecialchars(@$_REQUEST['data'] ?: 'ěščřžýáíé');
?>
<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8" />
   </head>
   <body>
      Data: <?= $htmldata ?>
      <form>
         <input type="text" name="data" value="<?= $htmldata ?>" />
         <input type="submit" />
      </form>
   </body>
</html>

Stejně tak pokud třeba používáš SQL, tak i tomu je pak potřeba říct, že texty jsou/budou v UTF-8. Způsob záleží na použité komunikační knihovně.

gna
PHP › Vytvoření nové stránky podle…
17. 9. 2020   #386640

Parametry z URL jsou v poli $_GET, testovat jejich přítomnost můžeš funkci isset a v SQL můžeš filtrovat pomocí WHERE.

Nezkoušel jsem to, ale takhle nějak by to mohlo chodit. 

if (isset($_GET["id"])) {
	$stmt = $conn->prepare("SELECT nazev, datum, text, img FROM clanky WHERE id = ?");
	$stmt->bind_param("i", $_GET["id"]);
	$stmt->execute();
	$result = $stmt->get_result();
} else {
	$sql = "SELECT nazev, datum, text, img FROM clanky ORDER BY nazev";
	$result = $conn->query($sql)
}
gna
PHP › Vytvoření nové stránky podle…
17. 9. 2020   #386633

Parametry jsou součástí adresy. clanek.php?id=1 a clanek.php?id=23 jsou různé adresy.

Ale jinak se tomů říká Hezké URL a je to v podstatě neviditelné přesměrování, takže se třeba pro /clanky/123 fakticky načte clanky.php?id=123. Fantazii se meze nekladou, pogoogli a určitě najdeš variantu, která ti bude vyhovovat.

gna
PHP › Je bezpečné uchovávat heslo…
11. 9. 2020   #386606

To je běžná praxe, klidně to tak nech. Akorát ne někde uprostřed kódu (který verzuješ/archivuješ), ale v samostatném konfiguračním souboru.

Bezpečné je to jenom tak, jak je bezpečný ten server/webovka.

gna
PHP › Zabezpečení htmlspecialchars…
9. 9. 2020   #386592

Funkce htmlspecialchars konvertuje znaky, které maji v HTML speciální význam na odpovídající HTML entity. Třeba < na &lt;. Takže je určená na vkládání dat do HTML a nemá nic společného s SQL.

Na ruční escapování SQL zapomeň a použij Prepared Statements, které to vyřeší.

gna
C / C++ › 0-100 na 32bit "bargraf"?
5. 9. 2020   #386586

   

(2 << int(val * 0.32)) - 1
gna
C / C++ › 0-100 na 32bit "bargraf"?
5. 9. 2020   #386585

Toto, pokud to správně chápu 

(1 << int(val * 0.32)) - 1
gna
C / C++ › Jak v C uložit do pole char…
3. 9. 2020   #386575

#12 MilanL
Takže tu strukturu vyrábíš "ručním" čarováním s pointery, abys ušetřil práci překladači :-)

gna
C / C++ › Jak v C uložit do pole char…
2. 9. 2020   #386571

Alokátory typicky interně podporují jen velikosti s nějakou granularitou, takže reálná alokovaná velikost bude vždycky s nějakým zarovnáním.

gna
C / C++ › Jak v C uložit do pole char…
2. 9. 2020   #386569

Teda next v té struktuře by samozřejmě zase byla ta struktura. 

struct item {                                                                   
    struct item *next;                                                      
    char data[1];                                                           
};
gna
C / C++ › Jak v C uložit do pole char…
2. 9. 2020   #386568

 Jestli ti jde o to mít to v jedné alokaci, tak pořád můžeš použít strukturu. 

struct item {
	char *next;
	char data[1];
};

struct item *i = malloc(sizeof(struct item) + strlen(slovo));

To přidání za string by bylo takhle, ale nechápu proč bys to dělal.

char *buffer = malloc(delka_slova + 1 + sizeof(char *));
char *slovo = bufer;
... copy slovo ...

char **pnext = (char **) (slovo + strlen(slovo) + 1);
*pnext = next;
gna
C / C++ › Jak v C uložit do pole char…
2. 9. 2020   #386559

#1 MilanL
Nějak nechápu ten poslední dostavec. C taky "umí" struktury.

struct neco {
  typ jmeno;
  typ jmeno;
};
gna
Python › threading or multiprocess
27. 8. 2020   #386528

#6 daniel
Nechápu, co jsi tím chtěl říct. Konstrukce

process.start(learning.run_process())

znamená, že se provede run_process a návratová hodnota se použije jako parametr pro start. Pravděpodobně se pokoušíš o nesmysl, ale to se nedozvíme, protože nemáš potřebu objasnit, co je zač ta třída Learning. A volání starDetachech po start je rozhodně nesmysl.

Takže můžu jen střelit od boku a zkusit vlákno:

import threading

thread = threading.Thread(target=learning.run_process)
thread.start()
gna
Python › threading or multiprocess
26. 8. 2020   #386525

#4 JerryM
To ten problém vyřeší...   

gna
Python › threading or multiprocess
26. 8. 2020   #386523

Netuším, co je zač ten Learning, ale run_process nezní jako název metody, která by vracela cestu k programu, kterou očekává QProcess.start.

gna
MySQL › Banalita s WHERE
25. 8. 2020   #386520

HAVING funguje jako filtr po zgrupování.

gna
PHP › Parsování php souboru
22. 8. 2020   #386511

#20 Konycz
Obsah souboru PHP ti to nikdy nevrátí, protože ho server spustí a vrátí ti jeho výstup. Což je pravděpodobně HTML.

gna
PHP › Parsování php souboru
22. 8. 2020   #386510

Jakto, že je v tom výpisu několik řádků, když ty žádné odřádkování neděláš?

Ten skript nevrací holý text, jak nám ho tady ukazuješ, ale HTML, viď? Tak podle toho to taky parsuj.

gna
Java › import csv - intel
21. 8. 2020   #386496

Napsal jsem do školy, že zlobíte. Pozdravuj.

gna
MySQL › Počet CSV elementů v poli
20. 8. 2020   #386492

SQL má jasně danou syntaxi a klíčová slova mají svůj význam a místo. Co by to tady a s takovými daty asi mělo udělat?

Kde jsi k tomu CSV přišel? Nevzniklo ti zase nějakým nesmyslným concatem, kde by ty duplicity šly vyřešit už u zdroje?

gna
PHP › Parsování php souboru
20. 8. 2020   #386489

Tak to máš nějak zvláštně nakonfigurovaný server, že ti PHP skripty někdy spouští a jindy ne.

Ale jak už jsem napsal, když je to tvůj kód, tak víš, jak se ty hodnoty produkují. Tak je vyprodukuj znova.

gna
MySQL › Počet CSV elementů v poli
20. 8. 2020   #386488

Napiš jeden rozumný důvod, proč to dělat v SQL a já vymyslím, jak to udělat.

gna
PHP › Parsování php souboru
20. 8. 2020   #386486

#5 Konycz
Když tam dáš HTTP URL, tak se to načte přes web server a tedy dostaneš výstup toho skriptu. (Pokud je to v nastavení povolené - allow_url_fopen)

Když je to tvůj skript na tvém serveru, tak nemusíš nic parsovat a snad víš, jak se ten výstup produkuje. Takže tak maximálně ten kód hodíš do funkce, abys nepsal stejnou věc dvakrát.

gna
Python › PyQt5 - nefunguje po buildu
19. 8. 2020   #386471

Co znamená padá? PyInstaller má volbu --debug, pak bys měl vidět, co přesně se děje.

S PyQt by neměl být problém, ale na ničem jiném to asi nemůže kleknout. Pokud ti ho to z nějakého důvodu nedetekuje a nepřibalí, tak to můžeš explicitně ručně přidat do závislostí.

gna
.NET › návrh třídy
17. 8. 2020   #386458

Pokud budeš vždycky dělat new a okamžitě potom Start a jinak je ten objekt k ničemu, tak nemá smysl to rozdělovat.

Kdybys měl nějaký obecný ImportResult DoImport(DataSource, DataSink), tak budiž, ale teď to napiš tak, jak to potřebuješ.  Úvahy "co kdyby někdy někdo" jsou k ničemu.

gna
Blender › Nic nelze importovat
2. 8. 2020   #386415

Mrkni do System Preferences - Security & Privacy - Privacy - Files nad Folders nebo Full Disk Access

A povol Blenderu přístup. Nebo to prostě ulož někam kam může :-)

gna
Blender › Nic nelze importovat
2. 8. 2020   #386412

Plocha je v Desktop.

gna
C / C++ › Lehká kalkulačka - Jak vybra…
24. 7. 2020   #386377

Načteš ten operátor a podle toho pak budeš provádět příslušnou operaci. Můžeš použít if nebo switch. 

if (operace == '+')
    vysledek = a + b;
else if (operace == '-')
    vysledek = a - b;
...
gna
MySQL › Složitá WHERE selekce pro zk…
18. 7. 2020   #386346

Tak si tam ty závorky dej! Co ti v tom brání?

gna
JavaScript, AJAX, jQuery › Neustálý reload funkce po 1s
15. 7. 2020   #386324

Pak by se ten timer měl nastavit na 60000000ms a netuším proč je to 1s.

gna
JavaScript, AJAX, jQuery › Neustálý reload funkce po 1s
15. 7. 2020   #386322

Já vidím (index):551 60000.

gna
JavaScript, AJAX, jQuery › Neustálý reload funkce po 1s
14. 7. 2020   #386320

Aha, já jsem nevěnoval pozornost tomu logu. V data-refresh-time zřejmě není číslo. Tak z té hodnoty nejdřív vytáhni tu část, co určuje ten čas.

gna
JavaScript, AJAX, jQuery › Neustálý reload funkce po 1s
14. 7. 2020   #386318

Jednak metoda setInterval spouští zadanou funkci opakovaně, tak prostě funguje.

A pak reloadData nastaví interval na reloadData, který zase nastaví interval na reloadData, atd.

Jestli to chceš spustit jen jednou, tak místo setInterval použij setTimeout a z reloadData to přesuň do load.

gna
PHP › Jak vrátit součet dat z urči…
7. 7. 2020   #386305

   

-- konkretni mesic
SELECT Sum(hodnota) 
WHERE  Month(datum) = x 

-- vsechny mesice. zase lze pripadne omezit pomoci where/having
SELECT Sum(hodnota) 
GROUP  BY Month(datum)
gna
JavaScript, AJAX, jQuery › Výsledek z ajaxu do php
27. 6. 2020   #386298

1. AJAX tam nemáš
2. Už tam máš 2 inputy, tak asi víš, co ve formuláři definuje data
3. Typicky nechceš, aby cenu určoval klient :-)

<input name="cena" value="{{Quantity * Price}}" ...>
gna
Python › assertequal
14. 6. 2020   #386248

Ano, v title je titulek stránky.

gna
C / C++ › button/label
13. 6. 2020   #386244

#7 kk
A to jsi ten můj Join dala jinam, než do té metody obsluhující kliknutí na tlačítko? Protože jinak se nemůže provést jindy, než při kliknutí na tlačítko. A nedává smysl vůbec něco takového dělat.

To, co napsal Jerry, používá operátor [], který už požíváš na nastavení hodnot v těch polích, tak je snad jasné, že i teď to z toho pole vezme jednu hodnotu. To v programu s otázkami a odpověďmi dává mnohem větší smysl, ale ješte by to asi chtělo nějakou logiku určující, která otázka/odpověď je aktivní.

Zdá se, že KeyPreview na kurzorové šipky opravdu nezabírá, ale takové zadávání roku nemá smysl řešit. Dej tam normálně vstupní pole, do kterého se bude zadávat číslo.

gna
C / C++ › button/label
13. 6. 2020   #386240

#4 kk
Co nefunguje, jak se to projevuje, co přesně jsi udělala?

gna
C / C++ › button/label
12. 6. 2020   #386237

Jestli myslíš celý obsah toho pole, tak můžeš použít třeba Join.

label2.Text = string.Join(", ", odpovedi);

Vstup z klávesnice se "posílá" prvku, který má "focus", tedy tomu Buttonu. Aby ty události "viděl" i Form, můžeš nastavit KeyPreview na true.

gna
C / C++ › Nastavení "šablony" třídy v…
8. 6. 2020   #386198

Tomu se říká Item Template. Mělo by* to jít vyexportovat z projektu (menu Soubor, nebo Projekt), nebo ručně zeditovat existující (nebo vytvořit nový) ve složce ItemTemplates v instalační složce MSVS nebo Dokumentech.

* - někde jsem zachytitl, že to pro C++ zrušili, ale nevím, jak to je.

gna
Python › python - jednoduchá úloha
7. 6. 2020   #386194

Create vrací identifikátor objektu, který budeš potřebovat, abys s ním pak mohl pracovat. Na posunutí objektu můžeš použít move. Pohyb uděláš tak, že budeš opakovaně volat move. Na to můžeš použít after. Takže si jen potřebuješ pamatovat identifikátor objektu a jestli/jak se má pohybovat.

Kliknutí na objekt canvasu můžeš odchytit pomocí canvas.tag_bind. Nemyslím si, že bys dostal úlohu na věci, které jste se neučili.

import math, random
from tkinter import Tk, Canvas


class Movable:
    def __init__(self, canvas, cid, dx, dy):
        self.canvas = canvas
        self.cid = cid
        self.dx = dx
        self.dy = dy
        self.moving = False

    def toggle(self):
        self.moving = not self.moving

    def move(self):
        if not self.moving:
            return
        x, y = self.canvas.coords(self.cid)
        w, h = self.canvas.winfo_width(), self.canvas.winfo_height()
        if not 0 <= x + self.dx < w:
            self.dx *= -1
        if not 0 <= y + self.dy < h:
            self.dy *= -1
        self.canvas.move(self.cid, self.dx, self.dy)


def main():
    w, h = 400, 400

    root = Tk()

    canvas = Canvas(root, width=w, height=h)
    canvas.pack()

    movables = {}
    for idx, key in enumerate('abcdefghijklmnopqrstuvwxyz'):
        a = idx * math.pi / 13
        x = math.cos(a)
        y = math.sin(a)
        cid = canvas.create_text(w / 2 + x * w / 4, h / 2 + y * h / 4, text=key)
        movables[key] = Movable(canvas, cid, x * 10, y * 10)

    def onkey(event):
        key = event.char.lower()
        if key in movables:
            movables[key].toggle()

    def onupdate():
        for obj in movables.values():
            obj.move()
        root.after(100, onupdate)

    root.bind('<Key>', onkey)
    root.after(100, onupdate)
    root.mainloop()


if __name__ == '__main__':
    main()
gna
Python › python - jednoduchá úloha
6. 6. 2020   #386191

A s čím konkrétně si nevíš rady?

gna
Visual Basic › Program mi nečte další selec…
4. 6. 2020   #386179

#5 krpik
Já chápu, co ti to dělá, ale přijde mi divné, že by se to dělo proto, že první select nic nevrátí. Tak jsem tipnul, že když to máš tak blbě navržené (na formu úhrady ti stačí jeden sloupec), tak možná máš blbě i ty podmínky/data.

Každopádně ExecuteNonQuery je nesmysl. A při vyjímce nezaviráš readery a naopak connection zavíráš jen při vyjímce.

gna
Visual Basic › Program mi nečte další selec…
4. 6. 2020   #386176

Já tam nic okatého nevidím. Není možné, že tam opravdu vyhovující data nejsou? To hotovost/bezhotovost si vyloženě říká o to, abys to někde nastavil blbě.

gna
Python › Diferenciálna rovnica s poči…
30. 5. 2020   #386164

Takže tady se nijak neprojeví y nebo y0? 

print( t[i], np.arctan(k*t[i]/g) *180/np.pi )

Mělo by?

gna
PHP › omezení vnořených IF
21. 5. 2020   #386130

#13 peter
Kam ty na to chodíš?   

gna
JavaScript, AJAX, jQuery › Uložení obrázku ajaxem
20. 5. 2020   #386115

A tohle je podle mě úplný nesmysl, ale moderní JavaScript neznám, tak nevím. 

url: {link imageUpload!},
gna
JavaScript, AJAX, jQuery › Uložení obrázku ajaxem
20. 5. 2020   #386114

Jistý si nejsem, ale řekl bych, že to bude 

data: new FormData($("#image-form")[0]),
gna
.NET › Pridanie nového fontu v C#
20. 5. 2020   #386112

How to: Create a Private Font Collection

PrivateFontCollection privateFontCollection = new PrivateFontCollection();
privateFontCollection.AddFontFile("cestaksouboru.ttf");
Font mujFont = new Font(privateFontCollection.Families[0], 16, FontStyle.Regular);
...
neco.Font = mujFont;
gna
Python › úprava JSON souboru
19. 5. 2020   #386105

JSON v principu není editovatelný, ten prostě celý načteš a pak zase celý uložíš. A soubor na dobu úprav můžeš zamknout.

Důležité je, aby tak fungovaly obě (všechny) aplikace, které s tím souborem pracují, jinak tam můžeš přidávat, co chceš, ale ten druhý program to vždycky přesmahne.

gna
Delphi › Synapse email přes seznam.cz
18. 5. 2020   #386086

Co znamená "nefunguje"? Jakou chybu to hlásí?

Tu autentifikaci dělá Login a neměl by se seznamem mít problém. Zkus to odkrokovat nebo něčím monitorovat provoz (Wireshark) a podívej se na čem to klekne.

gna
Python › Vytvoření skriptu v Pythonu
17. 5. 2020   #386084

On ten callback chytá všechny změny, tak jsem to nechtěl přepínat, pokud to není potřeba. A ten test by byl takhle:

if client.current_appId == "com.webos.app.hdmi2" and client.sound_output != "external_arc":
    await client.change_sound_output("external_arc")

Ale ta telka to asi pořeší sama, takže na tom nesejde. Jsem rád, že ti to chodí.

gna
Python › Vytvoření skriptu v Pythonu
17. 5. 2020   #386081

Moc jsem to nestudoval a hlavně to nemám na čem vyzkoušet, ale toto by asi mohlo chodit (tu část s XX a YY si uprav jak pořebuješ)

import asyncio
from aiopylgtv import WebOsClient

async def on_state_change():
    if client.current_appId == XX and client.sound_output != YY:
        await client.change_sound_output(YY)

async def runloop():
    await client.register_state_update_callback(on_state_change)
    await client.connect()
    while True:
        await asyncio.sleep(10)

async def disconnect():
    await client.disconnect()

client = WebOsClient('192.168.0.151')
try:
    asyncio.get_event_loop().run_until_complete(runloop())
except KeyboardInterrupt:
    asyncio.get_event_loop().run_until_complete(disconnect())
gna
Python › Přepínač, výběr hodnot
13. 5. 2020   #386067

Přepínač pravděpodobně bude if/elif/else.

volba = input("vyber: ")
if volba == "c":
    strana = int(input("zadej stranu: "))
    print("obsah je", strana * strana)
...
gna
Python › Konzultace kodu z učebnice
9. 5. 2020   #386043

Tady si to můžeš odkrokovat (s opravenými chybami)

gna
Python › Konzultace kodu z učebnice
9. 5. 2020   #386041

Bez urážky, ale to jinak nejde napsat - čím déle se Pythonu věnuješ, tím debilnější máš dotazy.

V tomhle programu je PŘESNĚ NULA věcí, které jsi ještě neřešil, všechno triviality a přesto nechápeš ani řádek.

Několik tvých přikladů z různých podle tebe nesrozumitelných knih jsem dohledával a nikdy tam nebylo nic k nepochopení. Tak si některou z nich opravdu přečti a nesyp sem každou ptákovinu, na kterou při náhodném listování narazíš.

A možná prostě máš diametrálně odlišný způsob myšlení a toto není pro tebe. Zkus jiný jazyk nebo obor.

gna
Python › Kombinace
8. 5. 2020   #386026

Místo konstant tam dej proměnné. 

x, y = 320, 120
w, h = 50, 50
while cislo:
    cislice = cislo % 10
    canvas.create_rectangle(x, y, x + w, y + h, fill='orange')
    canvas.create_text(x + w / 2, y + h / 2, text=cislice, font="calibri, 35")
    cislo //= 10
    x -= w
gna
Python › Kombinace
7. 5. 2020   #386021

#5 Ivana123
Netuším, co používáš na vykreslení čtverců, ale pravděpodobně bude nějaká možnost určit jejich pozici/souřadnice. Tak každému zadáš jinou - třeba jako císlo_ctverce * rozestup.

gna
Python › rychlost serva přes python
6. 5. 2020   #386011

Nejjednodušší přetrvávající úložiště jsou soubory - open/read/write. Tam pak teda asi bude dobré použít "ramdisk" ať se ti neopotřebovává karta. Nejspíš už ho tam někde máš (mount | grep tmpfs).

Další možnost je třeba, že ten ovládací proces poběží pořád jako server (a všechno teda bude držet v paměti-proměnných) a ta webová sranda bude jen klient, který serveru bude posílat požadavky, co má dělat. Sockety, sdílená paměť, nebo tak něco.

gna
Python › Kombinace
6. 5. 2020   #386009

#3 Ivana123
Celočíselné dělení je operátor // a zbytek po dělení %. Jejich opakovaným použitím postupně získáš všechny číslice. Netuším, jak řešíte grafiku, ale ty bys měla.

12568 % 10 == 8
12568 // 10 == 1256
gna
.NET › Pomoct programovat do školy…
5. 5. 2020   #386001

Jestli máš jen zadání, tak nemohl. To jsou triviální úlohy nepochybně stavějící na tom, co jste se učili.

Jestli na tom makáš a jen ses na něčem zaseknul, tak s radostí. Ukaž, co máš. Nebo to hoď do inzerce, jako práci za odměnu.

gna
.NET › Pomoct programovat do školy…
5. 5. 2020   #385999

Pár věcí jsem napsal blbě, kdyby se ti něco nezdálo, tak to neber doslova   

gna
.NET › Pomoct programovat do školy…
5. 5. 2020   #385998

1) Načteš rozměr X a ve dvou cyklech (X řádků, X sloupců) budeš vypisovat hodnoty. Nebo v jednom cyklu po každé X-té hodnotě výpis "zalomíš", na tom nesejde. Na test sudosti můžeš použít zbytek po celočíselném dělení - operátor %. A podle toho vypíšeš číslo, anebo _.

2) Obecně vezmeš první hodnotu jako předpokládané maximum/minimum a porovnáš ji s ostatními hodnotami. Po každé, když narazíš na větší/menší hodnotu, tak si ji uložíš, jako nové maximum/minimum. U tří hodnot asi bude stačit použití dvojitý Math.Min/Max.

3) Načteš sumu a pro všechny hodnoty bankovek zjistíš kolikrát se do ní bankovka "vejde". To co se vešlo od sumy odečteš a opakuješ, dokud nejsi na 0. (8900: 1x5000 => 3900: 1x2000 => 1900: ...). Celočíselné dělení - operátor / - a zbytek po dělení - operátor % (ten teoreticky nepotřebuješ). Případně je na to i pomocná funkce Math.DivRem, která udělá obojí jedním příkazem.

4) Tam není, co řešit. Prostě vzorec se dvěma proměnnými. Na výpočet mocniny můžeš použít Math.Pow.

gna
.NET › WPF - Ukládání hodnot do řád…
4. 5. 2020   #385977

Obecně problém UPDATE vs. INSERT jde řešit tzv. Upsertem (MERGE), ale tím se asi zatím netrap.

Jestli to správně chápu, tak tam chceš mít jediný záznam. To je trošku nesmysl, spíš bych to viděl na X objednávek s různým stavem zpracování/vyřízení (a ty teprve čekající na zpracování budou editovatelné). Ale to je celkem jedno, princip bude stejný.

Typicky v tabulkách bývá ještě sloupec ID, který má automaticky rostoucí unikátní hodnotu. Nenastavuješ ji sám, to dělá server automaticky (takže ji nebudeš dávat do insertu apod.). Takže uděláš SELECT a když ti to něco najde, tak hodnoty zobrazíš, zedituješ a zaktualizuješ pomocí UPDATE...WHERE ID=<nalezeneid>. Když ti to nic nenajde, tak zobrazíš nulové hodnoty a po vyplnění uděláš INSERT.

Hodnota checku a radia je v property .Checked.

gna
C / C++ › úkol arduino
4. 5. 2020   #385972

postupně
obráceně
součet
průměrnou hodnotu
maximální hodnota
minimální hodnota 

To jsou pojmy, které bys měl znát ze základky. Který z nich potřebuješ obasnit?   

gna
PHP › Výpis definovaných dat na zá…
4. 5. 2020   #385971

Jestli tomu správně rozumím, tak co třeba dvourozměrné pole, kde první rozměr bude den v týdnu a druhý hodina? 

<?php
$hodnoty = [[100, 101, ..., 123],
            [200, 201, ..., 223],
            ...
            [700, 701, ..., 723]];
$wday = date('N') - 1;
$hour = date('G');
echo $hodnoty[$wday][$hour];
gna
C / C++ › Program na vygenerovanie kom…
4. 5. 2020   #385968

#5 Lisiak46
Pokud existuje jediná vyhovující kombinace a ty ji dokážeš identifikovat, tak se k ní dost pravděpodobně půjde dostat bez toho, že bys zkoušel všechny kombinace. Pokud je to skutečně obrázek s vizuálním obsahem, tak je to celé nesmysl a prostě chybějící data jen nějak odhadni, jak už psal KIIV.

gna
C / C++ › pomoc s úkolem v C++
4. 5. 2020   #385966

Rand ti vrátí náhodnou hodnotu a s tou si nalož, jak chceš. I kdybys tam měl mít 13 ifů, tak to snad není problém. Ten výplod v hlavičce foru nechápu jak tě mohl napadnout. Nejjednodušší verze, co mě napadá je toto:

pin[i] = "0123456789<>="[rand() % 13];

Ale nechápu to, jak se mají ta znaménka generovat náhodně a zároveň v závislosti na číslicích pinu. Pokud mají ukazovat vztah sousedících číslic, tak nejdřív vygeneruješ ty číslice a podle nich doplníš znaménka.

Takže v té mé ukázce bych to třeba doplnil do toho odkrytého pinu. 

-char odkryty_pin[] = "....";
+char odkryty_pin[] = ".!.!.!.";
...
 for (int i = 0; i < 4; i++) {
 	pin[i] = '0' + rand() % 10;
 }
+for (int i = 0; i < 3; i++) {
+       // pro tebe tady asi bude jednodušší použít klasický if
+	int rozdil = pin[i] - pin[i+1];
+	char znamenko = (rozdil < 0) ? '<' : (rozdil > 0) ? '>' : '=';
+	odkryty_pin[i * 2 + 1] = znamenko;
+}
...
 printf("spravne\n");
-odkryty_pin[i] = pin[i];
+odkryty_pin[i * 2] = pin[i];

Ty +/- na začátcích řádků značí změny, přidat/odstranit. Ale nevím, jestli správně chápu, co myslíš.

gna
Python › Import nefunguje, pytest
3. 5. 2020   #385958

Protože importuješ modul, ne jeho obsah.

import demo
demo.add()

from demo import add #nebo from demo import *
add()
gna
C / C++ › pomoc s úkolem v C++
3. 5. 2020   #385955

C++ práci s konzolí neřeší. Na zvýraznění můžeš použít WinAPI, nebo prý snad teď konzole ve Windows podporuje terminálové řídící sekvence, ale na nějaké velké omalovánky se vykašli.

Já jsem narychlo nabušil toto, nesnažil jsem se moc vyhovět zadání. Pro inspiraci by to mohlo stačit. 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>

int zkontroluj_pin(const char *pin, const char *vyrazene)
{
	if (strlen(pin) != 4) {
		printf("pin musi byt ctyrmistny\n");
		return 0;
	}

	for (int i = 0; i < 4; i++) {
		if (!isdigit(pin[i])) {
			printf("lze pouzit jen cislice\n");
			return 0;
		}
		if (strchr(vyrazene, pin[i])) {
			printf("nelze pouzit vyrazene cislice\n");
			return 0;
		}
	}

	return 1;
}

int main()
{
	char pin[] = "0000";
	char odkryty_pin[] = "....";
	char zadany_pin[5];
	char posunute_cislice[] = "..........";
	char vyrazene_cislice[] = "..........";
	int obtiznost = -1;

	srand(time(0));
	for (int i = 0; i < 4; i++) {
		pin[i] = '0' + rand() % 10;
	}

	while (obtiznost != 1 && obtiznost != 2) {
		printf("vyber obtiznost [1 - s napovedou, 2 - naslepo]: ");
		if (scanf("%d", &obtiznost) != 1) {
			fprintf(stderr, "chyba vstupu/vystupu\n");
			exit(EXIT_FAILURE);
		}
	}

	if (obtiznost == 1) {
		printf("napoveda. pin neobsahuje tyto 3 cislice: ");
		int pocitadlo = 0;
		for (char c = '0'; c <= '9' && pocitadlo < 3; c++) {
			if (!strchr(pin, c)) {
				printf("%c", c);
				pocitadlo++;
			}
		}
		printf("\n");
	}

	for (int pokus = 0; pokus < 3; pokus++) {
		int platnypin = 0;
		while (!platnypin) {
			printf("== pokus %d\n", pokus + 1);
			printf("pin: %s, posunute: %s, vyrazene: %s [cheat: %s]\n",
				odkryty_pin, posunute_cislice, vyrazene_cislice, pin);
			printf("tip: ");
			if (scanf("%4s", zadany_pin) != 1) {
				fprintf(stderr, "chyba vstupu/vystupu\n");
				exit(EXIT_FAILURE);
			}

			platnypin = zkontroluj_pin(zadany_pin, vyrazene_cislice);
		}

		if (!strcmp(pin, zadany_pin)) {
			printf("bingo!\n");
			break;
		}

		for (int i = 0; i < 4; i++) {
			printf("%c - ", zadany_pin[i]);
			if (zadany_pin[i] == pin[i]) {
				printf("spravne\n");
				odkryty_pin[i] = pin[i];
			} else if (strchr(pin, zadany_pin[i])) {
				printf("spatna pozice\n");
				posunute_cislice[zadany_pin[i] - '0'] = zadany_pin[i];
			} else {
				printf("neobsahuje\n");
				vyrazene_cislice[zadany_pin[i] - '0'] = zadany_pin[i];
			}
		}
	}

	return EXIT_SUCCESS;
}
gna
C / C++ › pomoc s úkolem v C++
3. 5. 2020   #385953

Vyhni se čtení po znacích ať nemusíš řešit to, že konec řádku (enter) je taky znak.

Při špatné volbě asi budeš chtít program ukončit, nebo volbu opakovat.

int main()
{
	int obtiznost = -1;
	while (obtiznost != 1 && obtiznost != 2) {
		printf("vyber obtiznost [1/2]: ");
		if (scanf("%d", &obtiznost) != 1) {
			fprintf(stderr, "chyba vstupu/vystupu\n");
			exit(EXIT_FAILURE);
		}
	}

	if (obtiznost == 1) {
		printf("napoveda\n");
	}

	printf("cyklus s hadanim pinu\n");

	return EXIT_SUCCESS;
}

Co dál? Ptej se konkrétně.

gna
PHP › Jaké nastavení PHP.ini a htt…
2. 5. 2020   #385949

Po instalaci XAMPP není potřeba nic donastavovat. Jen pokud jsi nepoužil instalátor a ručně jsi rozbalil ZIP jinam než do c:\ (tedy c:\xampp), tak je potřeba spustit setup_xampp.bat.

Můžeš se podívat do xampp/apache/logs nebo xampp/php/logs (nebo podobného umístění, přesně nevím), jestli v logu uvidíš hlášení nějakých chyb.

A nakonec ještě taková trivialita, ke které bohužel často dochází. PHP skripty se nespouští přímo (otevřením v Průzkumníku, nebo podobně), ale přes web server. Pokud máš skript xampp/htdocs/test.php, tak v prohlížeči zadáš adresu localhost/test.php. A PHP kód v tom souboru musí být uzavřený mezi tagy <?php a ?> (ten uzavírací není nutný).

gna
Delphi › Převod BIN stringu 00101110…
24. 4. 2020   #385908

#10 MilanL
JJ, tak jsem to myslel. Bez u vedení délky to bude až do konce. Ale nedaří se mi k tomu nic najít, kromě toho, že FPC v režimu Delphi takhle funguje. Možná ten parametr bude povinný.

gna
PHP › opakovaný příkaz
24. 4. 2020   #385907

#3 PePe
Funkcemi setTimeout/clearTimeout v JavaScriptu můžeš naplánovat spuštění funkce se zpožděním. Takže to můžeš udělat na straně klienta. Problém s tímhle přístupem je v tom, že i ta 1s (případně ještě násobená každým klikem) je poměrně dlouho.

Nevím, jak ten iframe teď plníš, ale možná bys to mohl překopat tak, ať se ze serveru dotahují jen nová data a ne celá stránka, nebo tak něco.

gna
Delphi › Převod BIN stringu 00101110…
22. 4. 2020   #385900

Žadné navyšování tam není.

while Length(hex) > 0 do    // dokud neni `hex` prázdný
  begin
    one := Copy(hex, 1, 2); // vezmu první 2 znaky
    hex := Copy(hex, 3);    // a odmažu je

Napsal jsem to demetně, aby tam nebylo nic moc k přemýšlení... pro někoho.

 

 

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