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
Python › python - jednoduchá úloha
před 16 hodinami   #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.

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

#6 oxidián

HexToBin jede to po dvou 

one := Copy(hex, 1, 2);

Hex 00FF vrací bin 0000000011111111. Možná je tam něco, co v D7 nefunguje, nebo funguje jinak, kdyžtak si to polaď.

gna
Delphi › Zápis struktury či datového…
22. 4. 2020   #385894

Tipuju, že mu vadí procedure v deklaraci toho recordu. Delphi by to mělo umět, ale nevím od jaké verze.

Pokud D7 neumí recordy s metodami, tak to holt napiš jako samostatnou funkci. Nebo místo recordu použij třídu.

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

Při nejmenším by v Delphi mělo umět StrToInt a IntToHex. Dost možná i ostatní, ale není problém si to dopsat. Takové věci se řeší v prvních týdnech výuky programování.

////////////////////////////////////////
// HEX

// sysutils:
// function IntToHex ( DecimalValue : Integer; MinimumWidth : Integer ) : string;
// function StrToInt ( IntegerString : string ) : Integer;

function HexToInt(hex: string): integer;
begin
  result := StrToInt('$' + hex);
end;

////////////////////////////////////////
// BIN

function IntToBin(val: integer; width: integer): string;
begin
  result := '';
  while val > 0 do
    begin
      result := IntToStr(val and 1) + result;
      val := val shr 1;
    end;
  while Length(result) < width do
    result := '0' + result;
end;

function BinToInt(bin: string): integer;
var
  i: integer;
begin
  result := 0;
  for i := 1 to Length(bin) do
    begin
      result := result shl 1;
      result := result or StrToInt(bin[i]);
    end;
end;

////////////////////////////////////////
// BIN HEX

function BinToHex(bin: string): string;
var
  one: string;
begin
  result := '';
  while Length(bin) > 0 do
    begin
      one := Copy(bin, 1, 8);
      bin := Copy(bin, 9); // od 9 do konce, nejsem si jisty jestli to jde napsat neuvedenim delky
      result := result + IntToHex(BinToInt(one), 2);
    end;
end;

function HexToBin(hex: string): string;
var
  one: string;
begin
  result := '';
  while Length(hex) > 0 do
    begin
      one := Copy(hex, 1, 2);
      hex := Copy(hex, 3);
      result := result + IntToBin(HexToInt(one), 8);
    end;
end;
gna
.NET › C# - změna rozlišení
20. 4. 2020   #385883

#5 Rufus
Mně z toho popisu není jasné, co přesně se ti s tím děje. Pokud je to jako na obrázku níže, tak správné uzavření do nějakého kontejneru by pomohlo.

Připojen obrázek.

gna
PHP › opakovaný příkaz
19. 4. 2020   #385880

Buď je potřebuješ okamžitě odesílat nebo nepotřebuješ a pak to prostě nedělej.

Asi raději napiš, co přesně chceš udělat a možná se k něčemu dobereme. V jednom požadavku čekat na jiný je nesmysl.

gna
Delphi › Zápis struktury či datového…
18. 4. 2020   #385877

Tohle je do texťádku, ale na tom nesejde. 

type TDATE1 = record
  dates: Array[0..2] of Longint;
  procedure save(var f: text);
end;

TYPE TRECORDS1 = record
  items: word;
  records: Array of TDATE1;
  procedure save(var f: text);
end;

procedure TDATE1.save(var f: text);
var
  i: integer;
begin
  for i:=low(dates) to high(dates) do
    writeln(f, dates[i]);
end;

procedure TRECORDS1.save(var f: text);
var
  i: integer;
begin
  writeln(f, items);
  writeln(f, length(records));
  for i:=0 to high(records) do
    records[i].save(f);
end;

var
  f: Text;
...
assignfile(f, 'data.txt');
rewrite(f);
records1.save(f);
closefile(f);
gna
Delphi › Zápis struktury či datového…
18. 4. 2020   #385876

Určitě bude existovat nějaká pěkná serializační knihvna, ale nevím teda jak pro D7. Při nejhorším prostě napiš pár funkcí.

gna
Matematika › Graf funkce sinus
16. 4. 2020   #385846

Nebude pointa v tom, že se neptají na výchylku, ale na rychlost? Já upřímně nevím.

gna
Delphi › Vlastní funkce na TStringLis…
16. 4. 2020   #385843

Aha, ještě je tam před tím .add, takže to indexování je OK.

gna
Delphi › Vlastní funkce na TStringLis…
16. 4. 2020   #385842

Řazený list nejspíš nejde měnit, protože by se tím narušilo řazení. Mělo by to jít vypnout nastavenim .Sorted na False.

Taky si nejsem jistý, jestli automaticky roste, tj. jestli po .clear můžeš přidávat pomocí [i].

gna
Python › python Hláška
8. 4. 2020   #385818

Když v cmd zadáš příkaz python printing.py tak se spustí python, který spustí ten skript printing.py a skončí. Takže jsi zpátky v cmd (jak je snad z toho promptu vidět) a příkaz print je pak zase příkaz pro cmd kde dělá to co dělá.

V tom odkazovaném článku se píše, že máš program v souboru printing.py a spouštíš ho příkazem python printing.py. Potud jasné. Ty další příkazy pak máš přidávat do programu, tj. do toho souboru s programem a znovu ho spouštět.

gna
Python › Kombinace
8. 4. 2020   #385817

   

a = ['0', '5']
b = ['1', '8', '9']
c = "1"
d = "2"

for r in a:
    for s in b:
        for t in c:
            for u in d:
                print(r,s,t,u)

import itertools
for x in itertools.product(a,b,c,d):
    print(x)
gna
Python › konverzia string 1A2B na byt…
7. 4. 2020   #385804

Já bych ještě doplnil, že ty hex souboty občas obsahují odřádkování, se kterým si .fromhex neporadí, takže je potřeba ho nejdříve odstranit. A místo práce se soubory můžeš použít přesměrování standardního vstupu/výstupu.

unhex.py:

import sys

s = sys.stdin.read().replace('\n', '')
b = bytes.fromhex(s)
sys.stdout.buffer.write(b)

použití: 

python3 unhex.py <infile >outfile
gna
Pascal › Pascal matice, procedura, po…
6. 4. 2020   #385798

Tři podobné dotazy za poslední týden. Vždycky jen zadání.

Napiš, co konkrétně nevíš.

gna
Python › Invalid syntax class
4. 4. 2020   #385784

Chyba je v tom, že mezi def a __init__ nemáš mezeru.

Co se týče té metody stand, tak ano, samozřejmě by to šlo i bez ní. Tady prostě je. Můj osobní názor je, že takové zapouzdření se někdy hodí, ale většinou je úplně k ničemu. Každopádně ukázkové příklady jen něco ukazují, zjednodušeně až nesmyslně, neber to jako jediný správný způsob, jak něco dělat.

A toto jsi napsal zase nějak divně :-)

self.is_sitting = False udava konkretni hodnotu tomuto atributu self.is_sitting = i

Ten objekt má atribut is_sitting. V konstruktoru se nastavuje na zadanou hodnotu, ve stand se nastavuje na False. Tečka.

gna
HTML / XHTML › Placený odkaz
4. 4. 2020   #385782

Tomu, co zpracovává ty platby se říká platební brána. V dokumentaci jednotlivých poskytovatelů je vždy uvedeno, jako identifikovat co/jestli zákazník zaplatil.

gna
Python › Python trida
1. 4. 2020   #385758

Nevím, co přesně tím myslíš.

Python "ví" jakého typu je ten objekt a zavolá správnou metodu sám.

class TridaA:
    def neco(self):
        pass

class TridaB:
    def neco(self):
        pass

a = TridaA()
b = TridaA()
c = TridaB()

a.neco()  # TridaA.neco(a)
b.neco()  # TridaA.neco(b)
c.neco()  # TridaB.neco(c)

A názvy parametrů ve funkcích/metodách jsou čistě lokální názvy v té jediné funkci, aby s těmi parametry šlo nějak pracovat. Nemusíš řešit nějakou kolizi názvů.

def secti(a, b):
    return a + b

def odecti(a, b):
    # parametry `a` a `b`
    # nemají nic společného s parametry v `secti`
    # ani s globální proměnnými `a` a `b`
    return a - b

a = 1
b = 2
c = secti(3, 4)   # v secti bude a=3, b=4
d = secti(5, 6)   # v secti bude a=5, b=6
e = odecti(7, 8)  # v odecti bude a=7, b=8
# na našich proměnných `a` a `b` se nic nezměnilo
gna
Python › Python trida
31. 3. 2020   #385754

První parametr metod je objekt (instance třídy), na kterém tu metodu voláš. Doplňuje se automaticky a je zvykem ho pojmenovávat self

class Trida:
    def neco(self):
        pass

a = Trida()
b = Trida()

a.neco()  # Trida.neco(a)
          # --> self = a

b.neco()  # Trida.neco(b)
          # --> self = b

V tom activate není yesno, aby tam něco bylo, ale prostě ta metoda přijímá další parametr pojmenovaný yesno a při zavolání uloží jeho hodnotu  do self.is_active.

new_guy.activate(False)  # Member.activate(new_guy, False)
                         # --> self = new_guy, yesno = False
                         # --> new_guy.is_active = False

Tvůj zápal je obdivuhodný, ale připadá mi, že hodně čteš a málo zkoušíš, takže ti pořád unikají i triviální věci, které jsi prošel už stokrát.

gna
Pascal › rozdělení matice na čtvercov…
29. 3. 2020   #385746

Já to chápu tak, že když máš třeba matici 6x4, tak z ní vytvoříš čtvercovou 4x4 a zbytkovou 2x4. Takže prostě vytvoříš 3 matice. První bude naplněná náhodnými hodnotami a další dvě hodnotami z té první.

gna
Pascal › rozdělení matice na čtvercov…
28. 3. 2020   #385744

Teda v random bude 99.

gna
Pascal › rozdělení matice na čtvercov…
28. 3. 2020   #385743

 Můžeš použít dynamické dvourozměrné pole.

type
  TMatice = array of array of integer;

var
  matice: TMatice;
...
setlength(matice, m, n);
for y := 0 to m-1 do
  for x := 0 to n-1 do
    matice[y,x] := 1 + random(98);

To rozdělení bude podobně. Vytvoříš další 2 matice a naplníš je hodnotami z té původní.

gna
Hardware › Zmena ID HDD
26. 3. 2020   #385732

Axagon klonuje (měl by klonovat) i ID, takže problém možná bude jinde. Pokud je původní disk jinak v pohodě, tak bych zkusil obnovit data ze záložního zase na ten původní disk. Konkrétní zkušenost bohužel nemám.

gna
JavaScript, AJAX, jQuery › Zjednodušení (spojení) více…
25. 3. 2020   #385723

Vypadá to nějak divně, asi mi někde utekly nějaké závorky :) ale pointa by měla být jasná.

gna
JavaScript, AJAX, jQuery › Zjednodušení (spojení) více…
25. 3. 2020   #385722

Nevím jistě na co se ptáš.

U každého requestu potřebuješ zkontrolovat výsledek, ale můžeš to mít v jedné funkci.

A pokud chceš sloučit víc různých requestů, tak prostě zpracovávej a vracej víc dat.

<?php
$response = [];
if (isset($_GET['prvni'])) {
    $response['prvni'] = 'prvniiii';
}
if (isset($_GET['druhy'])) {
    $response['druhy'] = 'druhyyyy';
}
if (isset($_GET['treti'])) {
    $response['treti'] = 'tretiiii';
}
echo json_encode($response);
<script>
function refreshData(qs) {
    var request = new XMLHttpRequest();
    request.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200 && this.responseText != null) {
        var resp = JSON.parse(this.responseText);
        console.log(resp);
        if (resp.prvni !== undefined)
            document.getElementById("prvni").innerHTML = resp.prvni;
        if (resp.druhy !== undefined)
            document.getElementById("druhy").innerHTML = resp.druhy;
        if (resp.treti !== undefined)
            document.getElementById("treti").innerHTML = resp.treti;
        }
    }
    var nocache = "&nocache=" + Math.random() * 1000000;
    request.open("GET", "?" + qs + nocache, true);
    request.send(null);
}
function startRefresh() {
    setInterval(function() { refreshData("prvni&druhy"); }, 8000);
    setInterval(function() { refreshData("treti"); }, 15000);
}
</script>
gna
Python › Pytest + Python debugger, po…
23. 3. 2020   #385714

Nechápu dotaz.

PyTest spouští testy a při tom vypisuje názvy těch souborů. Jasně, že budou o pár řádků níže.

V tomhle výstupu se to sekne v metodě test_add_method_returns_correct_result na řádku 11 s příkazem raise Exception().

Nejspíš k té knize bude CD nebo něco, kde budou doprovodné soubory, abys to nemusel louskat z knihy, tak ho zkus někde najít. A opět ses buď zaseknul na něčem nepodstatném, nebo to tam je vysvětleno a prostě se vrať o pár stran zpět.

gna
Python › Runner unittest
22. 3. 2020   #385711

To první je zřejmě jednotkový test a při jeho spuštění chceš spustit testování.

To druhé je asi nějaký modul kalkulátoru a z nějakého důvodu při jeho přímém spuštění vypisuješ nějaký součet. Nejspíš taky jako formu testu.

Ale jinak tam není žádná paralela. Proč v jednom není druhé, je po té době, co se Pythonu věnuješ, neuvěřitelný dotaz.

gna
Python › Python nose test, vysvetleni
22. 3. 2020   #385710

(Pdb) je prompt Python Debuggeru, a up/list jsou zadávané příkazy. Buď to v té knize je uvedeno, nebo to není podstatné.

Každopádně je to standardní modul a dokumentace roste na obvyklém místě -- https://docs.python.org/3/library/pdb.html

gna
PHP › Cookie / SESSION košík
21. 3. 2020   #385701

Upřímně, mně se to nechce moc študovat, ale myslel jsem to tak, že tady problém nevidím a možná bude jinde. Nevolá se ti to prostě dvakrát?

gna
PHP › Cookie / SESSION košík
20. 3. 2020   #385697

Já si myslím, že by to mohlo fungovat, ale ruku do ohně za to nedám. Nechápu, jak se ti podařilo explode; +=; implode; napsat na 50 řádků   

Každopádně tohle nedělej a použij $_SESSION.

gna
Python › Problem s modulem- vysledek,…
20. 3. 2020   #385696

Buď ti to vypíše chybu, že ten modul neexistuje, nebo výsledky testu.

gna
C / C++ › csharp vypsání počtu určitéh…
19. 3. 2020   #385683

Jestli to máš do školy, tak záleží na tom, co zrovna řešíte. Mohlo by to být procvičování cyklů a pak třeba takhle:

int pocet = 0;
foreach (char znak in veta)
  if (znak == 'A')
    pocet++;
gna
PHP › Rozdíl mezi označeními začát…
17. 3. 2020   #385676

Mezi <? a <?php je rozdil jen v tom, že funkčnost krátké verze záleží na nastavení a dlouhá funguje vždy.

<?= je zkratka pro <?php echo.

gna
C / C++ › Jak převedu struct na pole z…
16. 3. 2020   #385671

 Nejdříve se ujisti, že v té struktuře nebude žádné zarovnání.

#pragma pack(push)
#pragma pack(1)
typedef...
#pragma pack(pop)

A pak stačí vzít její adresu a přetypovat ji.

CRC8((char*)&struktura, sizeof(struktura));
gna
Python › vypnutí konzole při trasování
14. 3. 2020   #385654

A kde ti to spadne a s jakou chybou? Problém asi nebude v konzoli a printu.

gna
Python › vypnutí konzole při trasování
14. 3. 2020   #385651

Jestli to na něčem předčasně sletí, tak se typicky vypisuje chyba.

Zkus to spustit z konzole tak, ať se nevytváří nová a možná uvidíš nejaké chybové hlášení, než to skončí.

gna
Python › Interactive a normal mode
11. 3. 2020   #385626

Když spustíš Python bez parametrů, tak se spustí v interaktivním režimu - čte příkazy a hned je provádí. Taky se tomu říká REPL - Read Eval Print Loop.

$ python
>>> 1 + 2
3
>>> a = 2 + 2
>>> a
4
>>>

Prompt je ta výzva k zadání dalšího příkazu - >>>

Takže doctest v docstringu hledá tenhle prompt a zkouší jestli ty příkazy fungují, tak jak je uvedeno.

gna
Python › nefunguje datetime alebo str…
9. 3. 2020   #385612

Asi by bylo dobré mít ta data v jednotném formát a explicitně ho uvést.

gna
Java › Rezervační systém
9. 3. 2020   #385611

Funkce mohou vracet hodnoty. Dejme tomu, že chceš vracet dva inty, tak je můžeš vrátit třeba jako pole. 

public int[] getRM()
{
    int rada = ...;
    int misto = ...;
    return new int[] { rada, misto };
}
...
int[] rm = getRM();
// rm[0], rm[1]

Místo pole s magickými indexy, jsou samozřejmě lepší složitější objekty s popisnými jmény dat.

A na opakování se používají cykly, ne rekurze. 

String vyuzit;
do {
    vyuzit = sc.nextLine().toUpperCase();
} while (!"ANO".equals(vyuzit) && !"NE".equals(vyuzit));

Stejným stylem pak nebude metoda sector1 volat sector2 a ten sector3 atd, jak to nejspíš máš. 

for (int secnum = 1; secnum < 10; secnum++) {
    String vyuzit;
    do {
        System.out.println("Chcete využít " + secnum + ". sektor?(ANO/NE)");
        vyuzit = sc.nextLine().toUpperCase();
    } while (!"ANO".equals(vyuzit) && !"NE".equals(vyuzit));

    if ("ANO".equals(vyuzit)) {
        System.out.println("Zadej radu:");
        String rada =  sc.nextLine();
        System.out.println("Zadej misto:");
        String misto =  sc.nextLine();
        System.out.println("sektor " + secnum + ", rada " + rada + ", misto " + misto);
    }
}
gna
Python › Unikátní dvojice hodnot ze r…
8. 3. 2020   #385610

   

.rename(columns={'time_to_final': 'min_time'})
gna
Python › Unikátní dvojice hodnot ze r…
8. 3. 2020   #385609

Any vrací True nebo False podle toho, jestli v datech je nebo není něco True. Nemyslím si, že takhle ten if může fungovat.

Jde to jednoduše udělat třeba pomocí groupby.

>>> Grid_frame2.groupby(['X', 'Y'], as_index=False)['time_to_final'].min()
   X  Y  time_to_final
0  1  7              1
1  2  7              1
2  3  7              4
3  4  7              3
4  4  8              5
5  5  8              5
6  6  9              3
gna
Delphi › Jedna funkce pro více Array…
29. 2. 2020   #385558

Já jsem v Pascalu/Delphi už roky nedělal, tak úplně nevím.

Ale myslím si, že prázdné dynamické pole právě je (nebo může být) nil. A pokud je parametr var, tak se už při překladu pohlídá, že to bude platná reference, takže nil bude jedině prázdné pole.

S tím kopírováním při výběru registru si nejsem jistý, ale asi to tak bude. Šlo by to obejít použitím ukazatele (explicitního, ne var parametru), nebo to pole zabalit do třídy, protože objekty si myslím, že se vždycky předávají v podstatě jako ukazatele. Pak se teda vrací to, že někde budeš muset ošetřit nil.

Víc nevím, ale jsou tady nějací Pascalisti, tak snad poradí.

gna
Delphi › Jedna funkce pro více Array…
29. 2. 2020   #385555

Var u parametru znamená, že ten parametr bude odkaz na předávaná data, jinak je to jejich dočasná kopie (takže třeba změny hodnot se neprojeví v původním poli).

Tu funkci máš správně a pokud se ten parametr jeví jako nil, tak chybu máš někde jinde a opravdu tam jde nil.

gna
Python › Rozbor kodu, for loop
24. 2. 2020   #385547

Ano, chápeš to správně.

Konstrukce for <X> in <Y>: provede další kód pro každý provek kolekce <Y> s tím, že aktuální prvek představuje proměnná <X>.

Konstruktor třídy Question nastavuje vytvářenému objektu atributy prompt a answer.

questions je list těchto objektů (instancí třídy Question)

a ten for ho projde, nastavuje proměnnou question, což je teda položka z listu questions, a tedy instance třídy Question s atributy prompt a answer nastavenými v konstruktoru :)

gna
Hardware › Rozjeté vzorkování u komunik…
24. 2. 2020   #385544

Tak zkus netrvat na těch hodnotách a vyzkoušej, jestli ti to skousne to, co pozoruješ. 2600 E.

gna
Chytré telefony, komunikátory a jejich OS › Prehrávanie flash na android…
23. 2. 2020   #385538

#5 Blank23
No, i tu první variantu můžeš jakoby zkonvertovat třeba tak, že to u sebe přehraješ ve Flashi a nějakým programem pro snímání obrazovky/okna to nahraješ do nějakého běžného video formátu.

gna
PHP › PHP české měsíce
23. 2. 2020   #385536

V postu máš číslo měsíce, mktime z něj udělá timestamp, ze kterého pak date zjistí název měsíce.

Takže to je to samé. Celé to vyhodíš a zase místo toho použiješ ten svůj $MonthArray.

gna
PHP › PHP české měsíce
22. 2. 2020   #385533

A u té poslední varianty teda nemusíš psát ta čísla u všech měsíců. Stačí u prvního a další se budou automaticky zvyšovat.

$nazvy = [1 => 'Leden', 'Unor', ..., 'Prosinec'];
gna
PHP › PHP české měsíce
22. 2. 2020   #385532

Nějak se ztrácím v tom, o co se pokoušíš. Jazyk použitý ve funkci date se nastaví funkcí setlocale.

Pokud použiješ vlastní seznam, tak funkci date nepotřebuješ. Akorát indexy takhle definovaného pole začínají od nuly.

Takže můžeš od čísla měsíce odečítat jedničku. Nebo na začátek vložit prvek navíc ať se zbytek posune. Nebo to pole definovat i s klíčy.

$i = 1

$nazvy = ['Leden', ..., 'Prosinec'];
echo $nazvy[$i - 1]; // 1 -> 0 -> Leden

$nazvy = ['XXX', 'Leden', ..., 'Prosinec'];
echo $nazvy[$i]; // 1 -> Leden

$nazvy = [1 => 'Leden', ..., 12 => 'Prosinec'];
echo $nazvy[$i]; // 1 -> Leden
gna
PHP › PHP české měsíce
21. 2. 2020   #385526

Funkcí setlocale můžeš přepnou na češtinu, ale samozřejmě to vyžaduje, aby byla na serveru nainstalovaná. Jinak to holt musíš řešit vlastním seznamem názvů měsíců.

gna
Visual Basic › VB ODBC načíst do comboboxu
21. 2. 2020   #385525

#11 krpik
Tak to máš to plnění ještě někde jinde. Protože ten Return tady tu funkci ukončí a na ty další příkazy s plněním comba nedojde. A ten problém s Indexem jsem právě tipoval na čtení vybrané položky z prázdného comba.

gna
Visual Basic › VB ODBC načíst do comboboxu
20. 2. 2020   #385520

Jestli to máš tak, jak jsi to se pastnul, tak se ti to combo vůbec neplní.

gna
Java › Java - rekurzia
19. 2. 2020   #385516

Tak to vypadá, že Java (JVM) TCO neumí.

gna
Java › Java - rekurzia
19. 2. 2020   #385515

I kdybys to nějak rozdělil, tak při větším poli zase vyčerpáš zásobník. Existuje tzv. tail call optimization, respektive tail-recursive call, který by snad Java měla umět optimalizovat, tak to můžeš zkusit, ale jinak je správné řešení prostě použít cyklus bez rekurze.

gna
Visual Basic › VB ODBC načíst do comboboxu
18. 2. 2020   #385506

#5 krpik
Ty názvy jsou ti k ničemu. Předpokládám, že u těch zdrojů máš ty připojovací údaje, ktere chceš načíst, jinak to celé nemá smysl. Takže načteš seznam těch zdrojů a pak projdeš jejich klíče a hodnoty. Ty tři funkce, co jsem ti napsal na to stačí.

Tak so podívej do těch registrů, jakou to má strukturu a načti si to. Já Widle s ODBC nemám, ale našel jsem tenhle příklad a nevidím problém.

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources]
"MY_DB"="SQL Server"

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MY_DB]
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
"Server"="10.1.1.1"
"Database"="MY_DB"
"LastUser"="db_account"
gna
Visual Basic › VB ODBC načíst do comboboxu
18. 2. 2020   #385493

Není mi úplně jasné na co se ptáš. Jak číst registry? RegistryKey Class

RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\ODBC\ODBC.INI\ODBC Data Sources");
key.GetValueNames()
key.OpenSubKey(...)
key.GetValue(...)
gna
MS SQL › SQL: Jak porovnat text s odl…
17. 2. 2020   #385490

Pokud jde o wildcard, tak můžeš použít LIKE, pokud chceš něco inteligentnějšího tak MATCH-AGAINST. Nebo samozřejmě můžeš použít vlastní funkci, existuje dost algoritmů, které i lempl jako ty zvládne implementovat.

gna
Hry › unity3d OnTriggerExit , aby…
16. 2. 2020   #385486

to je jen na vyzkoušení, abys viděl, co to opravdu dělá

gna
Hry › unity3d OnTriggerExit , aby…
16. 2. 2020   #385484

Zkus vyhodit ty ify a v konzoli vypni "collapse".

gna
Python › datetime python string
14. 2. 2020   #385480

Netuším, co myslíš hozením do Excelu, ale formát ve strptime jen říká v jakém formátu je ten parsovaný řetězec. Výsledek je objekt datetime, který vždycky obsahuje date i time.

gna
Python › datetime python string
14. 2. 2020   #385478

Tak je projdeš a po jednom zkonvertuješ

date = ('10.2.2019','31.12.2019','5.4.2018','7.2.2019','8.4.2016','3.8.2018','7.4.2017')
date = tuple(datetime.strptime(d, '%d.%m.%Y') for d in date)
gna
Python › datetime python string
14. 2. 2020   #385476

#3 dawid294
Parametry strptime jsou řetězec obsahující datum v nějakém formátu a řetězec definující ten formát.

Tohle funguje

datetime.strptime('10.2.2019','%d.%m.%Y')

A tohle nefunguje

datetime.strptime('date','%d.%m.%Y')

Protože 'date' není datum v zadaném formátu.

gna
Python › datetime python string
14. 2. 2020   #385473

Protože tomu jako datum předhazuješ řetězec 'date'.

gna
Python › python pandas copywarning
11. 2. 2020   #385459

Když vybíráš data, tak výsledek může být "pohled" na původní data a změny se projeví v původních datech, nebo kopie původních dat a změny se v původních datech neprojeví. A viceméně nevíš, jestli to bude jedno nebo druhé.

Takže table['c4'] může a nemusí být kopie. A zápis do [pom] se může a nemusí projevit v table. A o tom je to varování. I pokud ti to funguje, tak to oprav.

A já si myslím, že ti to nefunguje, protože ten výraz v pom máš špatně. Pozor na prioritu operátorů. Takže takhle: 

# zavorky
pom = (table['c2'] == 0) | np.isnan(table['c2'])
...
# v tom mean by taky nemusel byt dvojity []
table.loc[pom,'c4'] = np.mean(table['c4'][pom2])
gna
Python › Vykreslení písmena
9. 2. 2020   #385445

Standardní výstup je prostě proud znaků a musíš obě strany řešit hned. 

print('x' + ' ' * sirka + 'x')

Samozřejmě si můžeš vytvořit nějaký buffer, který budeš indexovat, jak se ti zlíbí a až nakonec ho celý vypíšeš.

Pak jsou různé knihovny pro pokročilejší práci s konzolí, kde můžeš určovat souřadnice a barvy textu apod, ale ve standardní knihovně nic univerzálního není.

gna
Python › python cyklus for cez viac s…
8. 2. 2020   #385440

Zbytečně jsem to překombinoval.

for i in range(1, 6):
    ANIMAL['DOG2'] = np.where(np.isnan(ANIMAL['DOG']) &
                                np.isnan(ANIMAL['DOG2']) &
                                pd.notna(ANIMAL.iloc[:, i]),
                              (i - 1) * 10,
                              ANIMAL['DOG2'])
gna
Python › python cyklus for cez viac s…
8. 2. 2020   #385439

Právě té dvojky jsem se chytal, ale já ji tam prostě nevidím.

print(ANIMAL)
for i in range(1, 6):
    ANIMAL['DOG2'] = np.where(np.isnan(ANIMAL['DOG']) & pd.notna(ANIMAL.iloc[:, i]),
                              np.where(np.isnan(ANIMAL['DOG2']),
                                       (i - 1) * 10,
                                       ANIMAL['DOG2']),
                              ANIMAL['DOG2'])
print(ANIMAL)
   DOG     c1     c2     c3  c4     c5  DOG2
0  NaN  100.0    NaN    NaN NaN  100.0   NaN
1  NaN    NaN    NaN  500.0 NaN    NaN   NaN
2  NaN    NaN  300.0    NaN NaN    NaN   NaN
3  NaN    NaN    NaN  100.0 NaN  100.0   NaN
4  NaN  100.0  100.0    NaN NaN    NaN   NaN
5  NaN    NaN    NaN    NaN NaN    NaN   NaN
   DOG     c1     c2     c3  c4     c5  DOG2
0  NaN  100.0    NaN    NaN NaN  100.0   0.0
1  NaN    NaN    NaN  500.0 NaN    NaN  20.0
2  NaN    NaN  300.0    NaN NaN    NaN  10.0
3  NaN    NaN    NaN  100.0 NaN  100.0  20.0
4  NaN  100.0  100.0    NaN NaN    NaN   0.0
5  NaN    NaN    NaN    NaN NaN    NaN   NaN

 

 

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