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
.NET › ProgressBar
před 8 hodinami   #383766

Není možné, že ti prostě ten worker skončí rychle?

gna
Python › Python program
Včera   #383764

   

castka = 12589

for platidlo in (5000, ..., 1):
    pocet = castka // platidlo  # celociselne deleni
    castka %= platidlo  # zbytek po celociselnem deleni
    if pocet:
        print(platidlo, pocet, platidlo * pocet)
gna
Java › Premenné - problém
Včera   #383761

#3 Ondrej Ruz
Takže máš implementovaný TableModel s getValueAt. Teď jsi přidal isCellEditable vracející true a uložení hodnoty se pak dělá v setValueAt.

gna
Python › pandas to excel bez přepsání…
23. 5. 2019   #383757

To jde taky ovlivnit parametrem té funkce. 

startrow = ...
header = startrow == 0  # hlavicku jen na prvnim radku
to_excel(..., header=header)
gna
Python › pandas to excel bez přepsání…
22. 5. 2019   #383754

Dá se to udělat tak, že ten soubor nejdříve celý načteš a pak při zápisu určíš počáteční řádek.

from openpyxl import load_workbook
...
with pd.ExcelWriter('exekuce.xlsx', engine='openpyxl') as writer: 
    try:
        writer.book = load_workbook('exekuce.xlsx')
        writer.sheets = {ws.title: ws for ws in writer.book.worksheets}
    except FileNotFoundError:
        pass

    sheet_name = 'Nákup'
    startrow = writer.book[sheet_name].max_row if sheet_name in writer.book.sheetnames else 0
    exe_bot.to_excel(writer, sheet_name=sheet_name, startrow=startrow)

    sheet_name = 'Prodej'
    startrow = writer.book[sheet_name].max_row if sheet_name in writer.book.sheetnames else 0
    exe_sld.to_excel(writer, sheet_name=sheet_name, startrow=startrow)

Jestli nemáš openpyxl, tak ho můžeš nainstalovat pipem. 

pip3 install openpyxl
gna
C / C++ › Meno najvyššieho žiaka
22. 5. 2019   #383752

#8 MilanL
Mně to právě připadá, že už teď stringy jako pole charů nechápe a další rozměr by mu zbořil vesmír. Takže pryč s tím, když to není potřeba.

gna
C / C++ › Meno najvyššieho žiaka
21. 5. 2019   #383748

Je to dementně jednoduché. Jestli chápeš originál, tak chápeš i toto. Jestli ne, tak si to někde nastuduj.

gna
C / C++ › Meno najvyššieho žiaka
21. 5. 2019   #383746

   

int main()
{
	int pocet_ziakov = 0, max_vyska = 0;
	char max_meno[100] = "?", max_priezvisko[100] = "?";

	printf("pocet: ");
	if (scanf("%d", &pocet_ziakov) != 1)
		return 1;

	for (int i = 0; i < pocet_ziakov; i++) {
		char meno[100], priezvisko[100];
		int vyska;

		printf("meno: ");
		if (scanf("%99s", meno) != 1)
			return 1;

		printf("priezvisko: ");
		if (scanf("%99s", priezvisko) != 1)
			return 1;

		printf("vyska: ");
		if (scanf("%d", &vyska) != 1)
			return 1;

		// TADY
		if (vyska > max_vyska) {
			max_vyska = vyska;
			strcpy(max_meno, meno);
			strcpy(max_priezvisko, priezvisko);
		}
	}

	printf("%s %s: %d\n", max_meno, max_priezvisko, max_vyska);

	return 0;
}
gna
C / C++ › Meno najvyššieho žiaka
21. 5. 2019   #383745

Tak, jak to děláš s tou výškou.

gna
C / C++ › Meno najvyššieho žiaka
21. 5. 2019   #383743

To, co děláš s výškou, musíš udělat i se jménem. Pamatovat si ho.

A pole se indexují od 0 a nemusíš ty hodnoty ukládat do pole, můžeš to testovat hned při načítání.

gna
Java › Premenné - problém
21. 5. 2019   #383741

Ta chyba znamená přesně to, co se v ní píše. A mělo by v ní být i číslo problémového řádku.

Z toho úryvku není poznat, kde je problém, ale tipl bych, že jde o to přiřazení do mojeSql, což je pravděpodobně proměnná z vnějšího bloku. A pravděpodobně ji nechceš a nepořebuješ měnit, tak prostě deklaruj novou proměnnou, klidně i stejnojmennou.

String mojeSql = "UPDATE...

A takové skládání SQL je špatně. Co když některé z těch polí bude obsahovat něco, co ti ten SQL příkaz rozbije? Třeba ta poznámka asi může obsahovat libovolný text. Používej "prepared statements".

gna
C / C++ › Slovni fotbal
19. 5. 2019   #383727

   

#include <vector>
#include <algorithm>
gna
C / C++ › Slovni fotbal
19. 5. 2019   #383726

Žádné pole tam nemáš. Máš tam jeden string a ano, operátor [] na stringu pracuje s jednotlivými znaky.

A pak do pole nemůžeš takhle přidávat. Musíš nejdříve rezervovat paměť pro potřebný počet prvků. Pole, které automaticky roste je std::vector. A v něm můžeš vyhledávat pomocí std::find. To není ideální, ale je to asi nejjednodušší možnost.

std::string slovo;
std::vector<std::string> seznam_slov;
while (std::cin >> slovo) {
	if (std::find(seznam_slov.begin(), seznam_slov.end(), slovo) != seznam_slov.end()) {
		std::cout << "slovo " << slovo << " uz je v seznamu\n";
	} else {
		std::cout << "slovo " << slovo << " pridam do seznamu\n";
		seznam_slov.push_back(slovo);
	}
}
gna
Python › Python - súbory
18. 5. 2019   #383722

Můžeš si nastavit nějakou proměnnou, kterou nakonec otestuješ.

nasel = False
for ...:
    if OK:
        nasel = True
if not nasel:
   print('nenasel')

Konkrétně v tomhle případě asi můžeš při nalezení jména ten cyklus přerušit, takže můžeš použít konstrukci for-else. Blok else se provede pokud for nebyl přerušen breakem.

for jmeno in f:
    cislo = next(f)
    ...
    if jmeno == hledane_jmeno:
        ...
        break
else:
    print('nenasel')
gna
Python › Python - súbory
18. 5. 2019   #383720

S readline jsem to myslel tak, že na načítání řádků můžeš použít metodu readline.

while True:
    jmeno = f.readline()
    cislo = f.readline()
    if not jmeno or not cislo:
        break  # konec souboru
    ...

Operátorem in můžeš testovat přítomnost prvku v kolekci. Pokud jsou to třeba školní známky a víš, že budou jednociferné, tak přímo jako vyhledání znaku v řetězci (což je prakticky kolekce znaků).

if '2' in '1 2 3':
    print('je tam')

Jinak ten řetězec můžeš rozdělit metodou split na list a v něm zase hledat.

if '1' in '1 10 11'.split():  # in ['1', '10', '11']
    print('je tam')
gna
Python › Python - súbory
18. 5. 2019   #383717

Nerozčiluj se, když někdo napíše jen zadání be zkonkrétního problému, tak to vypadá, že se k problému ani nedostal.

Mohl bys použít nějaké počitadlo pro indikaci, kterou hodnotu čteš, nebo se podívat po jiných způsobech čtení (třeba readline).

Při takové iteraci můžeš použít funkci next pro načtení dalšího řádku. 

with open('soubor.txt', 'r') as f:
    for jmeno in f:
        cislo = next(f)  # muze hodit chybu

        jmeno = jmeno.strip()  # odstranit ukoncovac radku
        cislo = cislo.strip()

        if jmeno == hledane_jmeno:
            print(jmeno)
            print(cislo)
gna
Python › Python - súbory
17. 5. 2019   #383715

Já bych řekl, že ses s tím nelámal ani trošku. S čím přesně si nevíš rady?

gna
Příkazový řádek › Bash: najít slovo a odpočíta…
12. 5. 2019   #383691

To je zrovna příklad, u které se mění délka, ale ne pořadí polí, takže není problém.

Ale můžeš to udělat ještě konkrétněji třeba sedem.

echo 'blablabla,blablabla,4568789::55;blabl.;ID_msg:123456789;blablablabla' | sed 's/.*;ID_msg:\([0-9]\+\);.*/\1/'
gna
Příkazový řádek › Bash: najít slovo a odpočíta…
12. 5. 2019   #383688

Nevím, jak ten cut používáš, ale v délce polí nevidím problém, pokud se nemění jejich pořadí.

echo 'blablabla,blablabla,4568789::55;blabl.;ID_msg:123456789;blablablabla' | cut -d\; -f3 | cut -d: -f2
123456789

Jestli je to csv, tak by to chtělo něco, co ho umí správně parsovat (třeba csvkit), nebo to nedělat v bashi.

gna
Python › Procházení cyklem složky
8. 5. 2019   #383667

Jaj, kam se ten dotaz poděl? :)

gna
Python › Procházení cyklem složky
8. 5. 2019   #383666

No, co ten příkaz udělá? Shell rozvine masku na soubory, které jí vyhovují, cat vypíše jejich obsah a výstup je přesměrovaný do logu.

import glob
import shutil

for dirname in glob.glob('*/'):
    print('dir', dirname)
    logname = dirname + 'value.log'
    with open(logname, 'a') as flog:
        for txtname in glob.glob(glob.escape(dirname) + '*.txt'):
            print('txt', txtname)
            with open(txtname, 'r') as ftxt:
                shutil.copyfileobj(ftxt, flog)
gna
Python › Procházení cyklem složky
8. 5. 2019   #383662

stručně :)   vezmi tuhle složku - udělej definovanou operaci, vezmi další složku a udělej tu samou operaci a atd pro n-složek

Nechápu dotaz. For v Pythonu funguje podobně jako v Bashi -- pro každou položku kolekce provede daný příkaz(y). Momentálně tu operaci máš jako přidání názvu do listu, ale můžeš dělat i cokoliv jiného.

gna
PHP › Ukládání do souboru
8. 5. 2019   #383653

Tak nečaruj a prostě se podívej, co tam máš.

$row = explode(" ",$row); // takhle samozřejmě bude každé slovo v samostatném sloupci
fputcsv($fp,$row,";",'"');
gna
Delphi › Synapse - seriova komunikace.
8. 5. 2019   #383652

9997 se zdá být timeout. Když nastavíš RaiseExcept na True, tak by to mělo házet vyjímky hned, jak je něco blbě.

gna
Delphi › Synapse - seriova komunikace.
7. 5. 2019   #383644

Aha, ona 0 znamená 1 stop bit. Byl to jen tip.

gna
Delphi › Synapse - seriova komunikace.
7. 5. 2019   #383643

To je 1.5. A máš tam vůbec čtení?

gna
Delphi › Synapse - seriova komunikace.
7. 5. 2019   #383641

1 stop bit

gna
Delphi › Synapse - seriova komunikace.
2. 5. 2019   #383615

Bez toho překlepu :)

gna
Delphi › Synapse - seriova komunikace.
2. 5. 2019   #383614

#4 MilanL
Přesně na tohle jsem se snažil vzpomenout. Takže by mělo jít 

#$52#$0d$#0a

Ne?

gna
Delphi › Synapse - seriova komunikace.
1. 5. 2019   #383596

Při nejhorším by mělo jít asi nějak takhle poskládat ten řetězec.

Chr($52) + Chr($0d) + Chr($0a)

Asi to jde i nějak hezčeji a nejspíš ta komponenta umí odesílat i jiná data než stringy.

gna
JavaScript, AJAX, jQuery › Vysvětlení kodu Accordion
30. 4. 2019   #383584

Protože to dělá pro všechny prvky.

for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener...
gna
C / C++ › Ukládaní slov ze souboru do…
24. 4. 2019   #383555

#4 KIIV
Jop :)

gna
C / C++ › Ukládaní slov ze souboru do…
24. 4. 2019   #383550

#2 KIIV
Z toho mu pukne hlava, měl jsi napsat jen push_back v cyklu :)

gna
Java › Android - SMS API DualSIM
22. 4. 2019   #383535

Aha, já jsem myslel, že nevíš, jak vybrat jinou SIMku. Co ti na tom teda nefunguje?

gna
Java › Android - SMS API DualSIM
22. 4. 2019   #383534
gna
Visual Basic › Pomoc s kódem v VSA - Do / W…
16. 4. 2019   #383489

Počitadlo pořadí nebude v podmínce.

poradi = poradi + 1
If teploty < minimalni_teplota Then
    minimalni_teplota = teploty
    minimalni_poradi = poradi
End If
gna
.NET › Zakodovani textu
16. 4. 2019   #383484

S takovými hodnotami stačí zjistit pozici toho znaku v tabulce. 

string declist = "yaeiou";

char dec = 'e';
int enc = declist.IndexOf(dec);
Console.WriteLine("{0} -> {1}", dec, enc);

Kdybys to mapoval složitěji, tak můžeš použít 2 tabulky. V první najdeš vstupní hodnotu a z druhé vezmeš výslednou hodnotu. 

string declist = "yaeiou";
int[] enclist = {1,3,6,10,15,21};

char dec = 'e';
int idx = declist.IndexOf(dec);
int enc = enclist[idx]; // nehlidam platnost indexu
Console.WriteLine("{0} -> {1}", dec, enc);

To je častá operace a moderní jazyky pro takové účely mají slovníky/mapy.

Dictionary<char, int> dec2enc = new Dictionary<char, int>
{
    {'y', 1},
    {'a', 3},
    {'e', 6},
    {'i', 10},
    {'o', 15},
    {'u', 21},
};

char dec = 'e';
int enc = dec2enc[dec]; // opet nehlidam platnost indexu/klice, muzes pouzit ContainsKey a/nebo TryGetValue
Console.WriteLine("{0} -> {1}", dec, enc);
gna
Visual Basic › Chyba v ukládáni (pole)
7. 4. 2019   #383447

#5 TrixCZE
Omlouvat se nemusíš, jen už jsi k předchozím dotazům dostal pár odpovědí pro VB, které ti v C# moc nepomůžou :)

gna
Visual Basic › Chyba v ukládáni (pole)
7. 4. 2019   #383446

#4 TrixCZE
No, pokud je problém v tom, že se to pole pořád vytváří a ty ho chceš uchovat, tak ho prostě vytvoř jinde -- třeba v Mainu -- a do dalších funkcí ho předávej. Nebo ho vytvoř v classu a všechny metody na něj uvidí.

gna
Visual Basic › Chyba v ukládáni (pole)
7. 4. 2019   #383442

A mimochodem to je C# (.NET). Visual Basic je úplně jiný jazyk.

gna
Visual Basic › Chyba v ukládáni (pole)
7. 4. 2019   #383441

Nejsem si jistý, co tím myslíš, ale tipl bych, že jsi nepochopil inicializaci proměnných.

int[] poleX = new int[5]; // deklarovani pole 

To není jen deklarace. To je definice a inicializace. Vždycky když program jde přes ten příkaz, tak se vytvoří nové pole.

gna
Java › Opakované půlení pole
7. 4. 2019   #383439

Každé divide ti od začátku prochází split_values.

gna
JavaScript, AJAX, jQuery › pomoc s kratkym kodem
4. 4. 2019   #383431

#3 Robbie
Co jak poznat, jaké závorky?!!

S jedním parametrem se definuje velikost pole. S více parametry se definuje obsah pole.

gna
Pascal › Ukol s polem matici a podpr…
4. 4. 2019   #383429

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

gna
Python › problém s Pythonom
2. 4. 2019   #383412

Nevím, co přesně tím myslíš, ale .py soubory nejsou přímo spustitelné a musíš je spouštět přes Python. 

python app.py

Samozřejmě musíš mít nainstalovaný Python a při spouštění z VSCode se pak do terminálu jen vloží ten příkaz pro aktuální soubor.

gna
Python › prevod obrazku do csv suboru…
2. 4. 2019   #383411

Když to čtu pozorněji, tak to asi není přesně to, co chceš, ale princip je snad jasný.

gna
Python › prevod obrazku do csv suboru…
2. 4. 2019   #383410

Tak nejdřív otevřeš writer a pak do něj v tom zpracovávacím cyklu můžeš zapisovat výsledky. Může to vypadat třeba nějak takhle:

with open(file, 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(('age', 'emotion'))

    for file in files:
        ...
        response = post_image(img_data))
        writer.writerow((response['age'], response['emotion']))
gna
Offtopic › Vývojový diagram
31. 3. 2019   #383391

Jo, z toho Pascalovského zdrojáku je jasné o co jde. Je to přesně to, co jsem myslel.

Čítač je tam jeden (i) a ty cykly nejsou vnořené. Když máš zdroják, tak zvládně i diagram.

gna
Offtopic › Vývojový diagram
31. 3. 2019   #383387

Pro skalární součin, jak mě napadá, nejsou potřeba 2 čítače. Můžeš více rozpsat o co jde?

gna
PHP › Nelze načíst rozšíření mysql…
27. 3. 2019   #383360

File not found při načítání existující knihovny znamená, že chybí další knihovny z jejích závislostí. Můžeš se na to podívat programem ldd, nebo v nouzi strings|grep. Mysql-server máš nainstalovaný?

gna
C / C++ › Seřazení spojíteho seznamu
25. 3. 2019   #383354

Místo Node dáš ListItem, místo data dáš Value a místo next dáš Next.

Tam kde se data/Value porovnává přidáš stoi.

Co z toho není naprosto zřejmé?

gna
Visual Basic › Tanková hra pomoc s příkazi
25. 3. 2019   #383352

Jinak teda tam můžeš dát tzv. breakpoint. Když na něj program narazí, tak se zastaví a můžeš ho krokovat a prohlížet proměnné. Tím bys měl najít, co je špatně.

gna
Visual Basic › Tanková hra pomoc s příkazi
25. 3. 2019   #383351

Nevím, co myslíš tím, že se sekne a co má být vidět na tom obrázku. Je tam střela a výbuch. Takže ta střela exploduje když nemá a na špatné pozici, nebo se zastaví při jiné explozi, nebo to spolu nijak nesouvisí?

V kódu nic okatého nevidím a nechce se mi takovou složitost detailně studovat.

Proč tam máš 16x stejnou věc? Napiš to obecně a nebudeš muset řešit, že jeden směr záhadně nefunguje.

if doleva then x -= krok
if doprava then x += krok
if nahoru then y -= krok
if dolu then y += krok

tank.location = (x, y)
... ' proc to vsechno psat 4x

Podobně ty kolizní podmínky. Rectangle ma metodu Contains a IntersectsWith. Jestli ti nevyhovují, tak si napiš vlastní, ale psát tohle pořád dokola, to by mi jeblo.

gna
C / C++ › Seřazení spojíteho seznamu
25. 3. 2019   #383350
gna
C / C++ › Const/non-const metoda s vyu…
22. 3. 2019   #383339

Aha. Takhle v podstatě chceš, aby ti to vygenerovalo: 

& _top(&);
const& _top(const&) const/* <-- */;

Což netuším, jestli vůbec jde.

Takže první nejde použít, protože parametr je const a druhou protože metoda není const.

Když ji uděláš static (nebo const), tak to vygeneruje použitelné metody pro oba případy.

gna
C / C++ › Const/non-const metoda s vyu…
22. 3. 2019   #383334

To je zase bomba.

Když si zbytek domyslím tak, aby to dávalo smysl, tak mě nenapadá, co by se na tom nezkompilovalo. Takže to ukaž celé.

gna
CSS › Jak mít stejně dlouhé alementy
19. 3. 2019   #383323

Já tomu nerozumím, ale intuitivně bych řekl, že ty vnitřní elementy musí být nastylované tak, aby vyplnily ten vnější, který je ohraničuje.

Zkusil jsem, jak radil peter, table-cell a přesně to to udělalo.

gna
Python › Nefunguje assert spojené s f…
18. 3. 2019   #383305

Nemáš nainstalovaných víc verzí Pythonu? Tak se chovají starší verze, které f-stringy neznají.

gna
Visual Basic › Tanková hra pomoc s příkazi
14. 3. 2019   #383291

Co se týče toho ovládání, tak by to mělo být vidět i v jiných programech. Zkus v nějakém editoru držet jednu klávesu a ťuknout do jiné. Ta první se ti přestane opakovat. Navíc je ta rychlost opakování nastavitelná atd.

Takže potřebuješ chytat KeyDown a KeyUp a fungovat bez ohledu na události mezi tím.

ProcessCmdKey bohužel KeyUp nechytá. Pokud vyhodíš nebo disabluješ kontrolky na formu (které ti ten vstup žerou a proto asi používáš ProcessCmdKey), tak by měly tyhle události fungovat přímo na Formu, jinak můžeš třeba použít Application.AddMessageFilter a implementovat IMessageFilter.PreFilterMessage.

Tím budeš jen nastavovat proměnné, jestli jedeš nebo ne. Aby ti ta hra mezi tím běžela můžeš, podobně jako pro tu střelu, zase použít timer. A nakonec pro tebe asi bude nejjednodušší se na KeyUp/Down vykašlat a v tom timeru přímo zjišťovat stav kláves (Keyboard.IsKeyDown).

Ke kolizím není moc co říct. Prostě když něčím pohneš, tak otestuj, jestli je to na pozici něčeho jiného.

A hlavně, prosím tě, máš to dlouhý jako kráva, nepiš pořád stejný kód :) Do podmínek dej jen to, co se mění.

gna
JavaScript, AJAX, jQuery › Jak vypisovat hodnoty s text…
12. 3. 2019   #383268

Tak ještě jednou. AJAX se dělá v JavaScriptu. To, co jsem napsal s pomocí jQuery (JavaScriptové knihovny), dělá to samé jako to řešení v čistém JS, na které jsem odkázal (a které vysvětluje, co je AJAX).

Obě řešení potřebují URL, protože prostě nic jiného nemůžou číst. Takže AJAXem načteš teplota.php, který načte ten finální texťák.

Původně jsem napsal tohle a nechám to tady:

Já jsem to pochopil tak, že máš stránku, která vypisuje tu teplotu. Teď tam chceš přidat její dynamickou aktualizaci. Tak jsi vyzkoušel AJAX na skript s jednoduchým echem, který funguje. A nenapadne tě prostě tam dát výpis té teploty podobně, jako to děláš u té hlavní stránky?

gna
JavaScript, AJAX, jQuery › Jak vypisovat hodnoty s text…
11. 3. 2019   #383266

#5 Borisek
Už jsem psal, že JS nemůže ten soubor číst přímo. Musíš ho nějak vystavit na web serveru. Nejjednodušeji tak, že jeho obsah bude vracet ten PHP skript. Za předpokladu, že má práva ho číst.

<?php
readfile('/dev/shm/teplota_kotel.txt');
gna
C / C++ › std::launder , alignas
11. 3. 2019   #383263

Don’t ask. If you’re not one of the 5 or so people in the world who already know what this is, you don’t want or need to know.

gna
JavaScript, AJAX, jQuery › Jak vypisovat hodnoty s text…
10. 3. 2019   #383254

JavaScript se provádí u klienta v prohlížeči, takže pochopitelně nemůže číst libovolné soubory na serveru a musí to pro něj udělat ten PHP skript.

Příkladu AJAXu v JS bez knihoven je třeba tady.

gna
Visual Basic › Jak vyhledat znak v textu?
10. 3. 2019   #383253

Pokud se ptáš, jestli to musíš dělat cykly a podmínkami, tak nemusíš. VB na to má funkce InStr a InStrRev. Ve VB.NET mají stringy metody IndexOf a LastIndexOf.

Pokud jsi tím myslel, že to chceš dělat cykly a podmínkami, tak můžeš použít 2 cykly pro průchod z obou stran s předčasným ukončením při nalezení toho znaku.

prvni = -1
for ...
    if znak = hledanyznak then
        prvni = pozice
        exit for
    end if

 Nebo udělat obojí jedním průchodem a pak jen potřebuješ pohlídat, jestli už jsi pozici prvního nastavil.

prvni = -1
posledni = -1
for ...
    if znak = hledanyznak then
        if prvni = -1 then
            prvni = pozice
        posledni = pozice
    end if
gna
JavaScript, AJAX, jQuery › Jak vypisovat hodnoty s text…
10. 3. 2019   #383247

Tomu stažení dat v JS se říká AJAX. Šlo by to i v čistém JS, ale já jsem tady použil knihovnu jQuery 1. Takže třeba takhle funkcí setInterval naplánuješ opakované provádění funkce, která ajaxem načte data z teplota.php a vloží výsledek do dokumentu.

<head>
<script type="text/javascript" src="//code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
setInterval(function() {
    $.ajax({
        url:'teplota.php',
        cache: false,
        success: function(data) {
            $('#teplota').html(data);
        },
        error: function() {
            $('#teplota').html('Chyba!');
        },
    });
}, 10000);
</script>
</head>
<body>
...
<div id="teplota">Ještě nevím...</div>
gna
C / C++ › friend operator+
7. 3. 2019   #383233

Nevracíš, protože se to nezkompiluje, ale pokoušíš se o to :) 

Můžeš návratovku změnit na konstatní referenci (což asi nechceš), nebo hodnotu.

gna
C / C++ › Generovanie náhodných známok…
7. 3. 2019   #383224

Nejjednodušší metoda je použití rand a rozdělení rozsahu vrácených hodnot. Takže kdyby vracel 0..99, tak 0..14 bude 1, 15..39 bude 2, atd. Samozřejmě limity přepočítat podle hodnoty RAND_MAX.

Ale náhoda je "blbec" a ve tvém případě možná půjde o to, aby to procentuální zastoupení přesně sedělo v každé sadě. Zase primitivní řešení, pokud celkový počet není moc velký, je naplnit pole tak, aby 15% byly jedničky, atd. a pak ho náhodně zamíchat.

Od C++11 je standardizovaná knihovna random, která by tyhle věci měla umět, takže cokoliv složitějšího psát sám nemá moc smysl. Ale nemám s ní zkušenosti a nechce se mi to číst.

Jako každé cvičení to asi staví na něčem, co bys měl znát. Těžko říct, co to je.

gna
PHP › jak uložit hodnotu <span cla…
6. 3. 2019   #383222

Tady se nastavují proměnné. 

[prestashop_1.6.1.20_0/modules/blockcart/blockcart.php]

$total_free_shipping = 0;
if ($free_shipping = Tools::convertPrice(floatval(Configuration::get('PS_SHIPPING_FREE_PRICE')), $currency))
{
...

$this->smarty->assign(array(
	...
	'free_shipping' => $total_free_shipping
	...

Tady je HTML šablona.

[prestashop_1.6.1.20_0/themes/default-bootstrap/modules/blockcart/blockcart.tpl]

co chceš
...

Tady je JSON šablona pro AJAX.

[prestashop_1.6.1.20_0/themes/default-bootstrap/modules/blockcart/blockcart-json.tpl]


"freeShipping": {displayWtPrice|json_encode p=$free_shipping},
"freeShippingFloat": {$free_shipping|json_encode},
...

A tady se to dynamicky aktualizuje.

[prestashop_1.6.1.20_0/themes/default-bootstrap/js/modules/blockcart/ajax-cart.js]

if (parseFloat(jsonData.freeShippingFloat) > 0)
{
	$('.ajax_cart_free_shipping').html(jsonData.freeShipping);
	$('.freeshipping').fadeIn(0);
	...

To stačí na to, abys tam doplnil cokoliv. Ve tvém případě bude stačit upravit výpočet $total_free_shipping (samozřejmě podle nastavení a ne natvrdo) a doplnit to do šablony.

20 minut včetně večeře a pohádky s neteří.

gna
PHP › jak uložit hodnotu <span cla…
6. 3. 2019   #383221

Jak nic nezobrazí? Tak to naformátuj a vlož tak, aby se to zobrazilo. Pak řeš proměnné.

gna
PHP › jak uložit hodnotu <span cla…
6. 3. 2019   #383216

Takže je to Smarty a PrestaShop 1.6.

Tak hlavně to nebudeš počítat v šabloně a se zadrátovanou tisícovkou.

Pak tam nebudeš mít class, kterým se ti to přesmahne celkovou částkou.

A nakonec to vypadá, že už tam pro to podpora je, takže nemusíš nic vymýšlet.

<span class="freeshipping{if $free_shipping == 0} unvisible{/if}">
	{l s='Do dopravneho zdarma zbyva' mod='blockcart'}
	<span class="ajax_cart_free_shipping">{$free_shipping}</span>
</span>
gna
PHP › jak uložit hodnotu <span cla…
4. 3. 2019   #383210

V tom případě ten class nejspíš indikuje, že se na ten span má napíchnout AJAX a doplnit do něj data dynamicky.

Takže někde v PHP máš kód, který ta data (částku) generuje. A ten si uprav jak potřebuješ.

gna
PHP › jak uložit hodnotu <span cla…
3. 3. 2019   #383205

Dělá se to přesně naopak. Nevytahuješ nic ze šablony, ale definuješ data, která jdou do šablony.

A šablonovacích sytému je spousta, podívej se do dokumentace toho tvého. Třeba ve Smarty (jeden z populárních, který používá příponu tpl) by to bylo bylo takhle:

.php:

$smarty->assign('promenna', 'hodnota');

.tpl:

<span class="{$promenna}">
gna
Python › Třídy
1. 3. 2019   #383196

Nejde... Určitě to něco vypíše, ale ty nejspíš chceš něco jiného. Co chceš, aby to dělalo?

Jestli chceš tu metodu spustit, tak za ní musíš dát závorky. A pokud ji chceš volat takhle "staticky", tak musíš dodat parametr self. Větší smysl by ale mělo volat ji přes ten objekt, který se tak automaticky předá jako první parametr.

A nakonec ta metoda nic nevrací, tak moc nemá smysl ji dávat do printu.

Person.apply_raise(p1)  # jde to, ale je to fujky
print(p1.age)
p1.apply_raise()        # radeji takhle
print(p1.age)
gna
C / C++ › visual studio intellisense
1. 3. 2019   #383193

Pravděpodobně používá Visual Assist, nebo ReSharper, nebo podobné rošíření.

gna
Python › Ako prehľiadať zoznam pomoco…
26. 2. 2019   #383181

   

with open('textfile.txt', 'r') as f:
    data = f.read()
data = re.findall(r'[#$][^#$]*', data)

select = [d[2:].strip() for d in data if d.startswith('#1')]
with open('aa.txt', 'w') as f:
    f.write('\n'.join(select))

select = [d[2:].strip() for d in data if d.startswith('$2')]
with open('bb.txt', 'w') as f:
    f.write('\n'.join(select))
gna
Python › Ako prehľiadať zoznam pomoco…
26. 2. 2019   #383180

Ako mam vyjadriť v kode znak # a dalši za nim taky znak, že daľšie v poradi v programovani neexistuje.

if x[i] == 'y' and x[i + 1] == 'z':
if x[i:i + 2] == 'yz':
gna
Python › Ako prehľiadať zoznam pomoco…
26. 2. 2019   #383176

Jestli to máš přesně takhle, tka je problém v odsazení.

retazec = 'abc'
retazec_char = list(retazec)
i=0
velkost = len(retazec_char)
while i < velkost:
    print(retazec_char[i])
    i += 1
a
b
c
gna
C / C++ › c# TCP multi chat změření doby
22. 2. 2019   #383160

Nejjednodušeji tak, že pošleš zprávu, na kterou ti server hned odpoví a změříš dobu mezi požadavkem a odpovědí. Což má k přesnosti daleko, ale asi to stačí.

gna
Delphi › Práce s vytvořenou komponentou
21. 2. 2019   #383154

Můžeš tu vrácenou hodnotu přetypovat.

SplitterSide := FindComponent(...) as TPairSplitterSide;

Ale Sides máš přece v tom Splitteru, FindComponent k ničemu nepotřebuješ.

gna
Python › Čítanie zo súboru
20. 2. 2019   #383149

Jestli v tom je nějaká logika, tak mi ji vysvětli. Nakonec to vypadá, že jen chceš odstranit ty oddělovače.

gna
Python › Čítanie zo súboru
19. 2. 2019   #383146

Aha. Tak to asi bude nejjednodušší to vzít od #1 do $2 a až pak rozdělit, pokud v tom je další #1. 

>>> data = """#1aa#1bb$2cc
... #1dd$2ee#1ff
... gg#1hh$2ii
... #1jj$2kk
... #1ll$2mm#1nn$2oo#1pp$2qq"""
>>> matches = re.findall(r'#1(.*?)\$2', data, re.DOTALL)
>>> print(matches)
['aa#1bb', 'dd', 'ff\ngg#1hh', 'jj', 'll', 'nn', 'pp']
>>> matches = [match.split('#1') for match in matches]
>>> print(matches)
[['aa', 'bb'], ['dd'], ['ff\ngg', 'hh'], ['jj'], ['ll'], ['nn'], ['pp']]
>>> matches = list(itertools.chain.from_iterable(matches))
>>> print(matches)
['aa', 'bb', 'dd', 'ff\ngg', 'hh', 'jj', 'll', 'nn', 'pp']
gna
Python › Čítanie zo súboru
19. 2. 2019   #383143

vypísalo text, ktorý začína #1 a končí na $2 a #1
nevypísalo text medzi #1 a #1

To si nedovedu představit. Ukaž vzorek dat.

gna
Python › Čítanie zo súboru
19. 2. 2019   #383141

To by chtělo vidět ta data. Toto? 

>>> data = 'aa #1xx#1 bb #1yy$2 cc'
>>> re.findall(r'#1(.*?)(?:#1|\$2)', data)
['xx', 'yy']

*? je non-greedy match
(: je non-capturing group
| je "nebo"

gna
Delphi › StringGrid - jak přidat text
12. 2. 2019   #383082

Kolem toho bloku za else dej begin-end.

gna
MS SQL › Periodické čtení z loratechs…
12. 2. 2019   #383077

View v SQL je uložená definice Selectu, která se tváří jako tabulka.

Podle mě máš napsat program pro sběr dat z Loratechu a sypat je do SQL serveru. Ke komunikaci s Loratechem asi bude nějaká dokumentace. Pro spojení s SQL Serverem můžeš použít pyodbc a samotné SQL se můžeš naučit kdekoliv

Ta aplovka a webovka pak asi čte data z toho SQL serveru. Těžko hádat detaily. Zřejmé je jen to, že bys to asi ani neměl zkoušet.

gna
Python › Funkce rada pro začátečníka
12. 2. 2019   #383075

Proměnné vytvořené ve funkci jsou lokální, tj. viditelné a existující jen v té funkci. Můžeš to obejít použitím global. Pak je dobré aspoň je ještě explicitně globálně definovat, ať to není tak, že se prostě nějak "vyskytnou". Celkově to je trochu čuňárna, ale pro začátečníky nejjednoduší možnost, než se to naučí lépe.

uthrac = defhrac = zivhrac = 0
utproti = defproti = zivproti = 0


def hrac():
    global uthrac, defhrac, zivhrac
    uthrac = ...


def proti():
    global utproti, defproti, zivproti
    utproti = ...

Když chceš vracet více hodnot, tak je můžeš "zabalit" do jedné. Tady třeba jako tuple:

def vygeneruj_postavu():
    utok = ...
    obrana = ...
    zivot = ...
    return (utok, obrana, zivot)

# můžeš to držet v celku
hrac = vygeneruj_postavu()  # hrac[0] je utok, atd.
protivinik = vygeneruj_postavu()

# nebo "rozbalit"
uthrac, defhrac, zivhrac = vygeneruj_postavu()
utproti, defproti, zivproti = vygeneruj_postavu()

A vyloženě se nabízí použití objektů. To se zkus naučit co nejdříve. 

class Osoba:
    def __init__(self, jmeno):
        self.jmeno = jmeno
        self.utok = ...
        self.obrana = ...
        self.zivot = ...

    def vypis(self):
        print(self.jmeno, self.utok, self.obrana, self.zivot)

hrac = Osoba('hrac')
protivnik = Osoba('protivnik')

hrac.vypis()
protivnik.vypis()
gna
C / C++ › Klíčová slova Index, Date v…
11. 2. 2019   #383071

Zkus hranaté závorky.

[neco]
gna
.NET › C# primka mezi dvema body
5. 2. 2019   #383025

#13 jerry
Já mám takový pocit z tvých odpovědí. Vždycky krávovina. Vždycky.

gna
Sítě › Request timed out - tracert
3. 2. 2019   #382987

Některé "hopy" prostě neodpovídájí, takže timeouty jsou normální. Ale chování toho tvého routeru není normální. Jestli je tvůj lokální, tak se zkus podívat do logů, možná je přetížený, možná ho bude stačit restartovat, možná umírá :) Jestli je u poskytovatele, tak se obrať na něj.

gna
PHP › curl a preg_match
31. 1. 2019   #382964

1. Takže chceš vykrást data z jiného webu.
2. HTML se neparsuje regulárními výrazy.
3. Nějaké chyby? Jaké?!

$options = [
	'ssl' => [
		'verify_peer' => false,
		'verify_peer_name' => false
	]
];
$context = stream_context_create($options);
$contents = file_get_contents('url', FALSE, $context);
$matches = [];
preg_match_all('|>\s*([\w\s]+)</td><td.*?>(\d+)<.*?/td></tr>|', $contents, $matches, PREG_SET_ORDER);
print_r($matches);
Array
(
    [0] => Array
        (
            [0] => >Points</td><td>640</td></tr>
            [1] => Points
            [2] => 640
        )

    [1] => Array
        (
            [0] => > Kills</td><td>1</td></tr>
            [1] => Kills
            [2] => 1
        )

    [2] => Array
        (
            [0] => > Deaths</td><td><span class='zero'>0</span></td></tr>
            [1] => Deaths
            [2] => 0
        )
...
gna
.NET › OutOfMemory v GUI v 32bit
30. 1. 2019   #382954

#26 jerry
Prosím tě, ty už kušuj.

gna
.NET › OutOfMemory v GUI v 32bit
30. 1. 2019   #382951

#23 Mutagen

Už jsem to psal, postup ukládání je takový jaký má být, pouze upravuju a přemýšlím jak by se to dalo zlepšit.

Ovšem ty jsi jediný, kdo ví, jaký ten postup je, takže těžko radit, jak ho zlepšit.

Podle mě jsi teď potvrdil mou domněnku, že BinaryWriterem naplníš MemoryStream, který jinak nepotřebuješ a jen ho nakonec dumpneš do FileStreamu. Takže do BinaryWriteru dej rovnou FileStream. Hotovo.

gna
.NET › C# - Ulozeni dat ze schranky…
30. 1. 2019   #382949
gna
.NET › OutOfMemory v GUI v 32bit
30. 1. 2019   #382947

#18 Mutagen
Ono není jasné, co s těmi daty potřebuješ dělat. Mně to připadá, že BinaryWriterem naplníš MemoryStream a ten pak bez změny celý zapíšeš do souboru. Tak vlastní zápis vyhoď a místo MemoryStreamu dej rovnou FileStream (ten má interní buffer 4K, který bych zvýšil třeba na 4M ať to na disk nehrabe moc často, pokud by default byl hodně pomalý).

gna
.NET › C# elegantni iterace
30. 1. 2019   #382937

Nějak nevím, co na tom chceš vymýšlet.

string ins = str;
for (int i = 2; list.Contains(ins); i++)
    ins = String.Format("{0} ({1})", str, i);
list.Add(ins);
gna
.NET › OutOfMemory v GUI v 32bit
29. 1. 2019   #382935

#4 Mutagen

To se mi prostě nezdá že by winform alokoval pamět tak hrozně že se to prostě s prominutím posere.

Ty související knihovny a data dohromady dají docela dost. Podívej se kolik ten program žere po spuštení a kolik ti z těch 2G zbývá. Ale nemusí alokovat hrozně, stačí ta fragmentace. Můžeš mít 400M volných, za tím 1M využitých a na konci zase 400M volných, takže máš 800M volných, ale 500M z toho nevykousneš.

Když jsi to už načnul, jak u binarywriteru dopředu naalokuju pamět?

BinaryWriter jen tlačí data do Streamu. Jestli je to právě MemoryStream, tak tomu můžeš zadat výchozí kapacitu při vytváření. Když teda rovnou začneš na těch 350M, které nepřekročíš, tak se vyhneš tomu automatickému zvětšování z 268M na 536M, ale 350M je pořád hodně.

Řešení s nejmenšími změnani bude nahradit ten Stream. Našel jsem třeba MemoryTributary, který to drží v menších blocích, nebo rovnou použij soubor.

gna
.NET › OutOfMemory v GUI v 32bit
29. 1. 2019   #382924

32-bit proces má k dispozici "jen" 2G virtuální paměti, takže souhlasím s uchem, že alokuješ docela hodně. Nemyslím si, že by to GUI nějak šíleně žralo, ale může být paměť fragmentovaná tak, že se takový blok prostě nikam nevejde i když máš třeba celkově pořád dostatek volné paměti.

Navíc tam asi někde figuruje MemoryStream, což je souvislý blok paměti a při zvětšování kapacitu zdvojnásobuje. Nebo něco podobného. To by odpovídalo tomu, že ti to buď klekne na 268M, nebo projde na 536M. Tam by mohlo pomoct zadat požadovanou kapacitu předem, pokud ji znáš, ať neplýtváš.

Jinak klasika -- ujisti se, že nikde nekopíruješ nic, co nemusíš a uvolňuješ všechno, co nepotřebuješ. Myslím, že ve VS je nějaký memory profiler, který by ti mohl ukázat, co kde visí. Ideálně to uprav tak, ať velké bloky paměti vůbec nepotřebuješ.

gna
C / C++ › System() a proměnné
28. 1. 2019   #382920
gna
C / C++ › System() a proměnné
27. 1. 2019   #382902

   

string cmd = "start " + GetCurrentWorkingDir() + "/KKK.txt";
system(cmd.c_str());
gna
PHP › seznam podminek v retezci
24. 1. 2019   #382873

#12 peter
Nesmysl.

 

 

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