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
PHP › PHP české měsíce
před 9 hodinami   #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
před 22 hodinami   #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
před 22 hodinami   #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
gna
Java › Seřazení knižních publikací
8. 2. 2020   #385437

S pomlčkami to není číslo a bez pomlček to není číslo.

S pomlčkami to není číslo a bez pomlček to nemůže házet chyby.

gna
Java › Seřazení knižních publikací
8. 2. 2020   #385436

S pomlčkami to není číslo a bez pomlček to není číslo. Ale ty nechceš jen odstranit pomlčky, protože pak nerozlišíš "1-02" a "10-2".

String[] publ = {"02-02", "2-03", "1-4"}; // "mm-dd"
System.out.println(Arrays.toString(publ));

Arrays.sort(publ, new Comparator<String>(){
    @Override
    public int compare(String s1, String s2) {
        String[] a1 = s1.split("-");
        String[] a2 = s2.split("-");
        int x = Integer.parseInt(a1[0]); // mm
        int y = Integer.parseInt(a2[0]);
        if (x == y) {
            x = Integer.parseInt(a1[1]); // dd
            y = Integer.parseInt(a2[1]);
        }
        return x - y;
    }
});
System.out.println(Arrays.toString(publ));
[02-02, 2-03, 1-4]
[1-4, 02-02, 2-03]

Samozřejmě nejlepší by bylo to od začátku mít v nějakém normalizovaném/porovnávatelném formátu, než to konvertovat při řazení.

gna
Java › Seřazení knižních publikací
7. 2. 2020   #385433

Takže ti to nevygeneruje 202, 203, 14?

gna
Python › python cyklus for cez viac s…
7. 2. 2020   #385431

Já vůbec nechápu co to má dělat.

gna
Java › Seřazení knižních publikací
7. 2. 2020   #385430

Funkce pro řazení umožňují zadat vlastní Comparator, kterým se jednotlivé prvky budou porovnávat. V něm si porovnání můžeš implementovat podle svých potřeb. Třeba jako převod stringů na čísla, která porovnáš.

gna
PHP › Úprava webu z 5,3 na 5,6
6. 2. 2020   #385424

Píše to nějaké chyby? Od 5.5 je rozšíření pro mysql označeno za zastaralé, ale pokud ho máš nainstalované, tak by mělo fungovat. Nic jiného tam nevidím.

gna
JavaScript, AJAX, jQuery › převod html obsahu do databáze
6. 2. 2020   #385420

Možná :) Napiš o tom víc.

gna
C / C++ › Mazání string
4. 2. 2020   #385407

#6 kubkot
Vždycky tam pointry budou, ale můžeš s nimi pracovat jako s polem.

Ale pointa byla v tom, že je tam jen ++ a ' ', tedy procházení po písmenech/slovech.

// otestuje jestli retezce `p` a `q`zacinaji stejnym slovem
int is_same(char *p, char *q)
{
	// prochazime retezce dokud nejsme na konci slova
	// a dokud se znaky na aktualni pozici rovnaji

	// pokud jsme v obou retezcich na konci slova
	// tak retezce zacinaji stejnym slovem
}

// otestuje jestli slovo `word` je v seznamu `set`
int is_any_of(char *word, char *set)
{
	// projdeme jednotliva slova `setu`
	// a porovname je s `word`
}

// z retezce `retezec` vymaze slova, ktera nejsou v seznamu `slova`
int delete_missing(char *retezec, char *slova)
{
	// projdeme jednotliva slova `retezce`
	// a pokud je slovo v seznamu `slova`
	// tak ho zkopirujeme do vystupu
		// a pokud to neni prvni slovo
		// tak nejdrive vlozime mezeru
	// jinak slovo preskocime a zvysime pocitadlo
}

Napiš si to jakkoliv jinak ti to vyhovuje.

gna
Python › randrange v ife
4. 2. 2020   #385403

Logika je tam úplně stejná:

X     Y     AND             X     Y     AND
False False False   <-X->   ''    ''    ''   (False)
False True  False   <-X->   ''    'aa'  ''   (False)
True  False False   <-Y->   'aa'  ''    ''   (False)
True  True  True    <-Y->   'aa'  'bb'  'bb' (True)

X     Y     OR              X     Y     OR
False False False   <-Y->   ''    ''    ''   (False)
False True  True    <-Y->   ''    'aa'  'aa' (True)
True  False True    <-X->   'aa'  ''    'aa' (True)
True  True  True    <-X->   'aa'  'bb'  'aa' (True)

Operandy se vyhodnocují jako booly, operátor funguje boolovsky, akorát výsledek není bool, ale původní hodnota operandu.

Když to použiješ v podmínce, tak se výsledek zase vyhodnotí jako bool a pořád to funguje podle očekávání.

A umožňuje to věci jako tohle:

from = message.sender or defaults.sender
gna
C / C++ › parsování řádku
3. 2. 2020   #385394

#7 Adela123
Správně, šlo by to hodit do cyklu. Už jich tam několik máš, tak víš, jak fungují. V čem je problém?

gna
C / C++ › parsování řádku
2. 2. 2020   #385386

#1 Adela123
Máš to tady správně vložené jako kód a přesto tam není žádne odsazení. To jsi odněkud zkopíroval(a), že?

Tak když aspoň víš, kde je problém, tak to prostě uprav na dvě čísla. 

void Parsovani(char *cisla, int &cislo1, int &cislo2){
	char *prvni = strtok(cisla, ";");
	char *druhe = strtok(NULL, ";");
	cislo1 = atoi(prvni);
	cislo2 = atoi(druhe);
}

A když už je to C++, tak trochu nevidím důvod to celé matlat v C.

gna
Python › Pomoc s while
2. 2. 2020   #385385

#3 shockwave

Místo teček nebude True ani False. Jsou tam proměnné, které jak název napovídá, můžou mít různé hodnoty.

While provádí kód dokud je splněna podmínka...

while podminka:
    ...

Ty máš složenou podmínku s operátorem and, která je splněna (True) pokud jsou splněny (True) obě podpodmínky...

podminka = xxx and yyy

První část testuje jestli se guess nerovná secret_word. Je tedy True pokud se hodnoty nerovají... 

xxx = guess != secret_word

Druhá část neguje out_of_guesses. Je tedy True pokud out_of_guesses je False...

yyy = not out_of_guesses

Prostě to přečti tak, jak to je, není tam nic k nepochopení... 

dokud (zadané-slovo se-nerovná tajnému-slovu
       a
       není vyčerpán-počet-pokusů):
  něco-delěj


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

Je otázka, co myslíš Flash videem a co je zač to SWF. Pokud to SWF je přímo to "video", tak mě napadají 3 možnosti:

1. Je to nějaká animace naprogramovaná ve Flashi. Pak máš smůlu.

2. Je to video přehrávač naprogramovaný ve Flashi, ale je v něm vložené video v nějakém běžném formátu. Pak by mohlo jít ho extrahovat. (SWFTools, ...)

3. Je to běžný video soubor, ale špatně pojmenovaný, případně v nevhodném formátu. Zkus ho otevřít ve video přehrávači, který přelouská kdeco (VLC, ...) a pokud nutno ho zkonvertovat na něco "normálního" (ffmpeg, ...).

A pak ještě možnost, že to vůbec není video. Je to jen přehrávač, kterým přehráváš jiné video soubory. Pak ho nahraď přehrávačem v HTML5.

gna
Chytré telefony, komunikátory a jejich OS › Prehrávanie flash na android…
31. 1. 2020   #385374

Pokud jde jen o tebe, tak můžeš zkusit nainstalovat prohlížeč s vlastní podporou Flashe. Slyšel jsem chválu na Puffin. Nebo nainstalovat a povolit Flash samostatně. Netuším, jestli ještě jde.

Jesti mluvíš o vlastní stránce a chceš to rozchodit tak, aby to automaticky fungovalo všem návštěvníkům, tak to nepůjde. Obecně Flash už nikdo nepodporuje.

gna
.NET › xml Serilizace
28. 1. 2020   #385350

#6 Rufus
Ono by to v principu mělo fungovat. Poblém bude někde hlouběji.

Třeba práva na složce, že můžeš vytvářet a mazat, ale ne přepisovat soubory. Ale to bych čekal konkrétnější chybovou hlášku, tak nevím.

gna
MySQL › Select mezi třemi tabulky
25. 1. 2020   #385335

Mně se to teda nechce zkoušet, ale ať na to koukám, jak chci, tak nevidím, že by tam něco nemělo sedět. Akorát pokud tam chceš i nuly, tak první join bude left.

select objednavky.id, sum(produkty.uzivatel = uzivatele.id) from objednavky
left join ...
...
group by objednavky.id
gna
.NET › Kdy uvěřit webové stránce?
24. 1. 2020   #385322

jQuery ready se spouští před načtením dalších závislostí. Já jsem mluvil o JavaScriptovém window.onload, který se spouští až potom. Tam pak spustíš timer a dáš tomu ještě pár milisekund na vykreslení.

Co se týče toho bufferu, tak nic optimalizovat nemusíš, protože to bude blesková záležitost.

gna
.NET › Kdy uvěřit webové stránce?
24. 1. 2020   #385316

window.onload se spouští po načtení všech závislostí. Jestli pak ta stránka provádí ještě nějaké další brikule to už dost dobře nepoznáš. V CEF by to mělo jít odchytit, netuším jestli i v CefSharp.

gna
MS SQL › Výběr hodnot ze dvou tabulek…
22. 1. 2020   #385299

Takže jde o ten default? IIF/CASE.

gna
Python › Pomoc s vysvětlením kodu
21. 1. 2020   #385293

#6 MilanL
Ale gusto to spouští v IDLE (editor instalovaný s Pythonem) a ten syntax error asi bude starou verzí.

gna
MySQL › Převod porovnání databáze do…
21. 1. 2020   #385292

To není zašifrovaný bordel. Už jsem ti psal, že to je blbě zobrazené utf8. Sám jsi sem dal odkaz, ze kterého bys to mohl pochopit.

V lepším případě ti bude stačit se na ten dump databáze podívat v editoru podporujícím utf8 a bude to správně.

V horším případě máš ten text kódovaný dvakrát (nebo jinak rozvrtaný), takže budeš muset zkonvertovat data a opravit skripty.

gna
Python › Pomoc s vysvětlením kodu
20. 1. 2020   #385283

#4 gusto
f-stringy jsou v Pythonu od verze 3.6. Pravděpodobně máš starší verzi.

gna
MySQL › Převod porovnání databáze do…
20. 1. 2020   #385282

Dříve nebo později to rozjebeš tak, že přijdeš o data. Záloha ti bude k tomu, abys je mohl obnovit.

Text je vždycky nějak kódovaný a pro správné zobrazení je potřeba vědět jak. Někde ti nastavení nesedí s obsahem.

gna
MySQL › Převod porovnání databáze do…
16. 1. 2020   #385262

To ale v případě, že máš tu databázi opravu rozvrtanou. Možná jsi sypal utf8 do sloupců v latin1 (default MySQL) a při konverzi se ti vícebajtové znaky překopaly. Pořád je možnost, že jsou ty texty správně a jen je blbě zobrazuješ.

gna
MySQL › Převod porovnání databáze do…
16. 1. 2020   #385261

Co má být co by sis domyslel z kontextu, ale je to teda utf8, akorát interpretované jako (asi) latin1.

Jestli potřebuješ konverzní tabulku, tak si ji můžeš vygenerovat (toto je Python; v PHP asi funkcí iconv) 

>>> for c in 'ěščřžýáíéů':
...     print(c, c.encode(), c.encode().decode('latin1'))
... 
ě b'\xc4\x9b' Ä
š b'\xc5\xa1' Å¡
ř b'\xc5\x99' Å
ž b'\xc5\xbe' ž
ý b'\xc3\xbd' ý
á b'\xc3\xa1' á
í b'\xc3\xad' í
é b'\xc3\xa9' é
ů b'\xc5\xaf' ů
gna
MySQL › Převod porovnání databáze do…
16. 1. 2020   #385252

Je otázka v jakém stavu tu databázi máš. Jestli jsi tam sypal data v různém kódování a v různém stavu nastavení databáze a/nebo spojení, tak to úplně automaticky nepůjde.

Takže asi napsat skript, který všechna textová pole projde a nějak analyticky je přeformátuje a přeuloží. Nebo třeba databázi/tabulku dumpnout do texťáku, který ručně (hromadně) poopravuješ a naimportuješ zpátky.

gna
MySQL › Neustálé problémy s diakriti…
15. 1. 2020   #385238

To není rozbité, takhle se prostě utf8 kóduje. utf8mb4 umožňuje uložit víc znaků (oproti mb3), ale na principu to nic nezmění. Prostě text je v nějakém kódování (případně znakové sadě), které při přenosu/konverzi musíš znát/uvést, ale jinak je ti celkem ukradené. Prostě to musíš správně sypat do/z SQL a do/z HTML a není co řešit.

Akorát bych místo query set names použil set_charset. A ne jen před insertem, ale vždycky a hned po připojení.

gna
Python › Update položky u 3D pole
12. 1. 2020   #385203

Jen jsem to narychlo proletěl, ale v model_code_to_list asi nechceš, aby všechny položky byly ten samý objekt (z_list):

# model_code_to_list
y_list = [z_list for n in range(int(y))]

Můžeš třeba explicitně vytvářet kopii pro každou položku: 

y_list = [list(z_list) for n in range(int(y))]
gna
Python › Update položky u 3D pole
11. 1. 2020   #385200

Pokud ten list inicializuješ tak, jak je to tady, tak by k tomu nemělo dojít.

Předpokládám, že je to jen nějaký výpis obsahu a faktický kód, kterým to plníš, je jiný. Pak je problém v tom, že ty "podlisty" jsem ten samý objekt. Takže je nějak "odizoluj". Když ukážeš kód, tak ti ho opravím.

PS. I pak výsledek bude jiný než to očekávání, ale na to už asi přijdeš.

gna
Java › Jednoduché připojení přes pr…
5. 1. 2020   #385171

Asi na to bude nějaká šikovná knihovna, ale v čisté Javě (8) by mělo fungovat tohle: 

Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("216.144.228.130", 15378));

URL url = new URL("http://ifconfig.me/ip");
URLConnection connection = url.openConnection(proxy);
InputStream inputStream = connection.getInputStream();

String text = new BufferedReader(new InputStreamReader(inputStream)).lines().collect(Collectors.joining("\n"));

System.out.println(text.trim());
gna
.NET › Oracle vs EF
30. 12. 2019   #385158
gna
Matematika › Parabola - výpočet bodů
22. 12. 2019   #385134

#6 BDS
Ano, **2 je druhá mocnina.

gna
Matematika › Parabola - výpočet bodů
22. 12. 2019   #385129

   

x0, y0 = 0, 22
x, y = 24, 0
k = (y - y0) / (x - x0)**2

for x in range(-24, 25):
    y = k * (x - x0)**2 + y0
gna
Matematika › Parabola - výpočet bodů
22. 12. 2019   #385127

Zkus tu vrcholovou rovnici. Ze známého vrcholu spočítej K a to pak použij pro výpočet dalších vrcholů.

gna
PHP › Obrázok PNG pri zmenšení zos…
21. 12. 2019   #385125

Jestli chceš tu průhlednost zachovat, tak v první řadě ten obrázek nekládej jako JPEG, přetože ten průhlednost nepodporuje.

gna
C / C++ › Mazání string
19. 12. 2019   #385117

Schválně jsem to napsal tak, že to budeš muset přepsat podle svého (a možná tam mám něco špatně), ale pro inspiraci to musí stačit.

int is_same(char *p, char *q)
{
	while (*p != ' ' && *p != 0 &&
	       *q != ' ' && *q != 0 &&
	       *p == *q) {
		p++;
		q++;
	}

	return ((*p == ' ' || *p == 0) &&
	        (*q == ' ' || *q == 0));
}

int is_any_of(char *word, char *set)
{
	while (*set)
	{
		while (*set == ' ')
			set++;
		if (is_same(word, set))
			return 1;
		while (*set != ' ' && *set != 0)
			set++;
	}

	return 0;
}

int delete_missing(char *retezec, char *slova)
{
	int deleted = 0;
	char *src = retezec, *dst = retezec;

	while (*src) {
		while (*src == ' ')
			src++;
		if (!*src)
			break;
		if (is_any_of(src, slova)) {
			if (dst != retezec)
				*dst++ = ' ';
			while (*src != ' ' && *src != 0)
				*dst++ = *src++;
		} else {
			deleted++;
			while (*src != ' ' && *src != 0)
				src++;
		}
	}
	*dst = 0;

	return deleted;
}

int main()
{
	char retezec[] = " tak se na to  podivame jak to pofrci ";
	char slova[] = "se to pofrci  na";

	int deleted = delete_missing(retezec, slova);
	printf("smazano %d, vysledek %s\n", deleted, retezec);

	return 0;
}
gna
C / C++ › Mazání string
19. 12. 2019   #385110

K jednotlivým znakům řetězce se dostaneš operátorem [], na průchod řetězcem můžeš použít for, na testování znaků if. Řetězce jsou ukončeny nulovým znakem.

Znaky z řetězce (resp. obecně prvky z pole) nejde vyloženě odstranit. Pokud máš měnit původní řetězec, tak to musíš udělat posunutím následujících znaků.

Z toho zadání mě napadá několik variant, jak by to mělo fungovat. Kdyžtak ukaž víc příkladů vstupních a výstupních hodnot.

gna
JavaScript, AJAX, jQuery › Reload PHP scriptu formuláře…
19. 12. 2019   #385107

#6 Gorri

Neuloží, nedokončí, nerefreshne. Blbosti tady meleš jen ty.

Ve formuláří máš "zprava" a "send". Víš, že data z POSTu budou v $_POST. Co teda čekáš od $_GET['name'] ?

gna
JavaScript, AJAX, jQuery › Reload PHP scriptu formuláře…
18. 12. 2019   #385100

To se povedlo, data se uloží, ale script se nezpracuje.

Co přesně tímhle myslíš?

gna
C / C++ › slovní fotbal
18. 12. 2019   #385099

Takže klucí, jestli si jen přehazujete kód, který nikdo z vás nenapsal, tak já v tomhle vlákně končím.

gna
C / C++ › slovní fotbal
18. 12. 2019   #385096

Některá pole inicializuje a jiná ne.

Jednou kopíruješ řetězec pomocí strcpy a pak zase po znacích. Někde řetězec ukončuješ nulovým znakem a jinde zase ne.

Při výpisu historie slov hlídáš jejich počet, ale při prohledávání ne.

Slovo do historie přidáváš bez ohledu na to jestli bylo platné.

Kód v tom defaultu ve switchi je nesmysl.

Moc pečlivě jsem to nečetl, ale jako máš tam všechno, co potřebuješ, takže ty věci znáš. Jen ses moc nesnažil :) Tak zkus tyhle věci poladit a pak ti napíšu(-eme) další :)

gna
C / C++ › Telefoní seznam
18. 12. 2019   #385089

Napiš si program, který přidá záznam (číslo+jméno) do souboru. fopen-fprintf-fclose.

A program, který vypíše obsah toho souboru. fopen-fscanf/fgets-fclose.

Pak to spoj dohromady. Uživatel ti něco zadá, ty projdeš soubor a vypíšeš odpovídající záznam(y). Když žádný takový nenajdeš, tak ho do souboru přidáš.

Píšu to samé, co napsal hlucheucho, víc nepotřebuješ. Úkoly vždy stojí na tom, co jste probírali. Nebo se zeptej na konkrétní věc, na které ses zaseknul.

gna
PHP › Proč PHP floor() vrací chybn…
16. 12. 2019   #385082

#1 Mark123132
Float má omezenou přesnost. 20438.94 je fakticky 20438.93999...

gna
.NET › C Cykly, 5 operací
16. 12. 2019   #385074

#3 Lukáš
A tohle jsi jen odněkud zkopíroval? Už teď tam máš pole, jeho procházení a testování hodnot. V čem je problém? Na tom, jak se to pole generuje, vůbec nesejde.

gna
C / C++ › četnost hodnot v matici
15. 12. 2019   #385067

   

hodnota = matice[j][i];
pocitadlo[hodnota] += 1;
gna
Python › Človeče nehnevaj sa
15. 12. 2019   #385065
gna
Python › Človeče nehnevaj sa
15. 12. 2019   #385063

U každé figurky víš, kde stojí. Tak po každém tahu zkontroluj, jestli jsou všechny v domečku.

gna
Visual Basic › Unikátní náhodné číslov poli
15. 12. 2019   #385061

Obecně můžeš hrubě generovat čísla dokud nedostaneš takové, které ještě v poli nemáš.

Nebo elegantněji, a v tomhle případě se to vyloženě nabízí, můžeš to pole naplnit řadou hodnot a pak ho zamíchat. (Každý prvek prohodíš s náhodně vybraným prvkem ze zbytku.)

gna
C / C++ › četnost hodnot v matici
15. 12. 2019   #385060

U takhle omezeného rozsahu si třeba můžeš udělat pole o 100 prvcích, které bude fungovat jako počitadlo výskytů jednotlivých hodnot a pak tu matici projdeš a pro každý prvek matice zvýšíš hodnotu příslušného čítače. Nakonec nenulové hodnoty vypíšeš.

gna
Python › Python tkinter tlačítko Back
11. 12. 2019   #385019

Skrytí a zobrazení okna není žádný problém. Když se ti ta okna hromadí, tak to máš nejspíš celé blbě. Ukaž kód.

gna
Python › Spuštění části kódu a shodné…
11. 12. 2019   #385009

Teoreticky můžeš importovat ty soubory tak, jak je máš, ale v přesunu do funkcí není problém.

# snake.py
neco
neco

# pong.py
cosi
cosi

# combined.py
def snake():
    neco
    neco

def pong():
    cosi
    cosi

Importy ve funkcích nevadí, ale mohl bys je vyhodit na začátek souboru.

gna
Python › Pomoc s vysvětlením kodu
11. 12. 2019   #385008

#6 shockwave
Protože if-else testuje hodnotu té proměnné (respektive libovolného výrazu) a podle toho provede blok if nebo else.

Nejdřív mástarted hodnotu False, tak se auto nastaruje a started se nastaví na True.

Když se pokusíš nastartovat znova a started je teda True, tak to zařve, že už je nastartováno.

Z předchozího kódu musí být jasné, jak if funguje. Koukni se na to od začátku.

gna
C / C++ › analyza textu
11. 12. 2019   #385006

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

gna
Python › Pomoc s vysvětlením kodu
10. 12. 2019   #384991

Na video se dívat nebudu, ale program je prostě sada příkazů, které se postupně vykonávají. Když do proměnné přiřadíš False, tak tam bude False, dokud jí nepřiřadíš jinou hodnotu.

gna
C / C++ › Podmínky pro pole
9. 12. 2019   #384980

#10 gna 

int compute(char src[], char result[], int n)
{
	int soucet = 0, cislo, pocet;
	char *data = src;

	while (sscanf(data, " %d%n", &cislo, &pocet) == 1)
	{
		soucet += cislo;
		data += pocet;
	}

	int celkemZnaku = snprintf(result, n, "%d", soucet);
	if (celkemZnaku < n)
		return 0;
	else
		return 1;
}

int main(void)
{
	char src[] = "10 20 30";
	char result[10];

	printf("soucet %s\n", src);
	if (compute(src, result, (int)sizeof result) == 0)
		printf("= %s\n", result);
	else
		printf("%d znaku nestaci\n", (int)sizeof result);
	return 0;
}
gna
C / C++ › Podmínky pro pole
9. 12. 2019   #384978

Úplně stejně, jako v mainu.

gna
C / C++ › Podmínky pro pole
9. 12. 2019   #384976

#7 Karel
Z toho nějak vyplývá, že tu funkci nemůžeš implementovat pomocí standardních funkcí?

gna
C / C++ › Podmínky pro pole
9. 12. 2019   #384973

#5 Karel
Ne, vždycky musíš ten řetězec nějak převést na čísla. Pokud v něm mají být jen 2 čísla, tak prostě tím sscanfem načti 2 čísla. While k ničemu nepotřebuješ.

gna
C / C++ › GPU Computing on OpenCL
9. 12. 2019   #384972

CMake umí vygenerovat projekt pro VS a VS umí načíst projekt CMake. Tam by neměl být problém.

Hláška, že proměnná zřejmě určující překladač nebyla použita, docela dává smysl a nejspíš to neznamená chybu.

Když se do těch souborů trochu podíváš, tak celý projekt je těchhle pár zdrojáků se závislostí na opencl, takže je úplně jedno jak si VS poradí s CMake a můžeš vytvořit ten projekt sám.

gna
C / C++ › GPU Computing on OpenCL
8. 12. 2019   #384964

When you look at the above example you may think it is a too small amount of code and you are basically right. All OpenCL elements like context, queue, kernel compilation are away and if you go to examples site at https://github.com/sowson/gpucomp you will find all needed elements that are missing.

gna
Python › prefix do infix
8. 12. 2019   #384962

   

r'\d+|\*\*|[-+*/]'
gna
Python › prefix do infix
8. 12. 2019   #384960

číslic

gna
Python › prefix do infix
8. 12. 2019   #384959

Asi bych použil regex. Skupina čísel, nebo operátor.

>>> s = '/-*+*++**85 27 39 87 65 65 37 63 91'
>>> re.findall(r'\d+|[-+*/]', s)
['/', '-', '*', '+', '*', '+', '+', '*', '*', '85', '27', '39', '87', '65', '65', '37', '63', '91']
gna
Python › prefix do infix
5. 12. 2019   #384947

Nedávej závorky kolem výrazu, ale kolem jeho operandů a jen pokud je to potřeba.

gna
Java › David
4. 12. 2019   #384930

#10 David
Na tom odkazu je i ukázka kódu.

gna
Java › David
4. 12. 2019   #384926
gna
Java › David
4. 12. 2019   #384923

   

Promena_TextViewTextView = Promena_TextViewTextView.findViewById(R.id.mojeid);

A tohle je krávovina, ale na to asi přijdeš.

gna
Java › David
4. 12. 2019   #384922

Jenže kdybych dal kód z class main do classy onCreate, program by hlásil chyby

Class je MainActivity. main a onCreate jsou metody :)

nemohu za protected void onCreate(Bundle savedInstanceState) dát throws IOException

Když děláš něco, co může hodit vyjímku, tak musíš tu dotčenou metodu příslušně označit s throws, nebo tu vyjímku v ní můžeš odchytit.

A když overriduješ metodu, která původně vyjímky nevyhazuje, tak nemůžeš říct, že teď najednou vyhazuje, ale pořád je můžeš sám odchytit.

Jak bych to mohl napsat aby se mi funkce main zpustila?

Vstupní bod aktivit je onCreate. Ten main teoreticky můžeš normálně zavolat, ale nevidím v tom smysl. Na statický main zapomeň.

Nezkoušeno, ale takhle nějak by to snad mohlo fungovat:

protected void onCreate(Bundle savedInstanceState)  {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);

	String title;

	try {
		Document doc = Jsoup.connect("https://www.wikihow.com/Main-Page").get();
		title = doc.title();
	} catch (IOException e) {
		title = e.getMessage();
	}

	Promena_TextViewTextView = Promena_TextViewTextView.findViewById(R.id.mojeid);
	Promena_TextViewTextView.setText(title);
}
gna
JavaScript, AJAX, jQuery › Vlastní validator
4. 12. 2019   #384915

getElementByClassName najde element, který má požadovanou hodnotu v atributu class. Šlo by to tak nějak udělat, ale nedává to smysl.

Když takhle máš ten span vždycky hned za inputem, tak by šlo úplně jednoduše to prostě šoupnout do následujícího elementu:

$currentTabInput.next().html(inpObj.validationMessage);

Samozřejmě by to chtělo tak nějak ať nezáleží na tom kde a jestli vůbec tam ten element je, ale upřímně já v tomhle nejsem úplně kovanej.

gna
Python › While a not negace výroku
4. 12. 2019   #384913

1. Víš, že out_of_guesses má výchozí hodnotu False a not je negace. Takže na začátku cyklu (a dokud se hodnota out_of_guesses nezmění) je výsledek té negace True.

2. Nehledej v tom žádnou magii, program se provádí zleva doprava a shora dolů, tak jak je napsaný. Příkaz while provádí následující blok kódu dokud platí uvedená podmínka. V tom bloku máš příkaz if, který provádí následující blok kódu pokud je splněna jeho podmínka (nebo blok else, pokud splněná není). Otázka, co se provádí dřív je úplně úchylná :))

gna
JavaScript, AJAX, jQuery › Vlastní validator
4. 12. 2019   #384912

Ale ne, $currentTabInput už je ten jeden input, který budeš validovat. 

// vsechny inputy na aktivnim tabu
let $currentTabInputs = $($tabs[currentTab].getElementsByTagName("input"));
// a postupne kazdy z nich zvalidovat
$currentTabInputs.each(function (e) {
	// tohle je ten input k validaci
	let $currentTabInput = $($currentTabInputs[e])
	...
}

Ten getElementById tam nedává žádný smysl. A $currentTabInput je ten input jako jQuery objekt, ze kterého můžeš dostat ten "nativní" objekt. Tak jak to máš teď, by tohle mělo fungovat.

let $currentTabInput = $($currentTabInputs[e])
let inpObj = $currentTabInput[0];
gna
C / C++ › Nekonecnna posloupnost cisel
3. 12. 2019   #384902

No, nejdelší má být na 25 znaků. Tak ho najdeš a zjistíš koeficient, který ti pro něj dá 25. Třeba

k = maxdelka / 25

A tím pak všechny přeškálueš

scaled = orig / k;

Jestli to správně chápu. A bacha na dělení nulou.

gna
C / C++ › Nekonecnna posloupnost cisel
3. 12. 2019   #384900

#12 Mikas
Asi v cyklu s potřebným počtem opakování vypisuj jedno rovnítko.

gna
C / C++ › Nekonecnna posloupnost cisel
3. 12. 2019   #384898

   

%4.1f

Tj. celkem (minimálně) 4 znaky, 1 desetinné místo.

gna
JavaScript, AJAX, jQuery › Vlastní validator
3. 12. 2019   #384897

Ta funkce zvaliduje aktuální tab a podle toho dovolí nebo nedovolí přechod na další.

Ty teď natvrdo vždycky validuješ ten element "width", který předpokládám, že máš až někde na dalších tabech a zatím nevyplněný, takže s nedovolenou hodnou a nepustí tě to dál.

Validuj jen currentTabInput.

gna
JavaScript, AJAX, jQuery › soubor js dotaz
3. 12. 2019   #384893

Chybí ti tam L - LC_ALL.

gna
JavaScript, AJAX, jQuery › soubor js dotaz
3. 12. 2019   #384891

   

"LC_ALL=cs_CZ.UTF-8 rrdtool ..."
gna
JavaScript, AJAX, jQuery › soubor js dotaz
1. 12. 2019   #384874

To, co se tu furt řešilo byl to, že není co řešit. Když umíš rrdtoolem vygenerovat graf, tak prostě z PHP funkcí passthru spustíš rrdtool.

Teď jsi přišel s externí knihovnou, kterou samozřejmě musíš nejdřív nainstalovat. A i když vypadá pěkně, tak jsi zase na začátku, že nechápeš ani řádek a chceš, aby ti to někdo rozchodil. Tak si přečti dokumentaci.

gna
JavaScript, AJAX, jQuery › soubor js dotaz
1. 12. 2019   #384871

Fajn, tak teď máš funkci, která umí jen výpis do souboru? No tak pak načti obsah toho souboru. Jak tě napadlo, že by se to tak nějak prostě vyskytlo v nějakém $data, fakt netuším.

Přes dva týdny tady máš funkční řešení a pořád musíš vymýšlet něco jiného.

 

 

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