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

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

 

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

gna
C / C++ › Jak odkázat na třídu POINT d…
Včera   #381214
gna
C / C++ › Jak odkázat na třídu POINT d…
10. 8. 2018   #381195

#51 Kevil
ŽÁDNÉ ÚPLNĚ JINAK. PŘESNĚ TO TADY DĚLAJÍ VŠICHNI KROMĚ TEBE.

gna
C / C++ › Jak odkázat na třídu POINT d…
10. 8. 2018   #381189

Jestli to má takovou strukturu

DWORD	pocet_boji;
DWORD	idecka[pocet_boji];
DWORD	pocty[pocet_boji];
POINT	body[...];

Tak takhle dostaneš ukazatele na všechno

DWORD *pPocetBoji = (DWORD*) (zacatek);
DWORD *pIdecka = pPocetBoji + 1;
DWORD *pPocty = pIdecka + *pPocetBoji;
POINT *pBody = (POINT*) (pPocty + *pPocetBoji);

A projdeš si to jak potřebuješ.

POINT *apt = pBody;
for (DWORD i = 0; i < *pPocetBoji; i++)
{
	DWORD idecko = pIdecka[i]
	DWORD pocet = pPocty[i];

	PolyLine(hdc, apt, pocet);

	apt += pocet;
}

Hotovo. Máš to tady už několikrát.

gna
C / C++ › Jak odkázat na třídu POINT d…
9. 8. 2018   #381188

Máš tam indexování pole, jako třeba při LON[i] nebo apt[i].

bsrc je pole bajtů, takže ti to načte bajt na daném indexu a ten se přetypuje na ukazatel na point, takže to prostě nemůže být správně.

Furt dokola.

gna
C / C++ › Jak odkázat na třídu POINT d…
9. 8. 2018   #381155

Když ti to vrací nulu, tak proto, že tam prostě je. Mně to pořád připadá, že se pokoušíš definovat to pole s velikostí jako 

body[pocet]

Tak ti znova píšu, že tam ta velikost nebude! Takhle je to čtení z pole bajtů (bsrc). A zjevně je tam nulička.

Milan ti to napsal, tak to použij a neřeš, že ti nefunguje úplně jiný kód, kterému nerozumíš, ale zuby nehty ho tam držíš.

gna
C / C++ › Jak odkázat na třídu POINT d…
8. 8. 2018   #381143

#12 Kevil

Jaký počet ve struktuře? Jediná struktura tady je POINT a ta obsahuje jen souřadnice X a Y.

Funkci PolyLine předáš jedním parametrem ukazatel na ty body a dalším parametrem jejich počet.

To přetypování, jak jsem ho napsal je kompletní. Velikost tam nikde není a nebude.

POINT *body = (POINT*) adresa_bodu;
int pocet = (int) *(DWORD*) adresa_poctu;

PolyLine(hdc, body, pocet);
gna
C / C++ › Jak odkázat na třídu POINT d…
7. 8. 2018   #381139

ale struktura POINT neví, kolik bodů tam je. Potřebuji ještě předat odkaz na DWORD v paměti s počtem bodů.

To neví nikdy. Proto se třeba do té PolyLine zadává počet samostatně. Z toho popisu se zdálo, že už tu hodnotu někde máš. Pokud ne, tak si na to udělej proměnnou a šoupni to tam.

gna
C / C++ › Jak odkázat na třídu POINT d…
7. 8. 2018   #381135

Jde tedy o to nějak "vnutit" proměnné apt adresu RAM paměti, kterou mám k dispozici.

POINT *apt = (POINT*) adresa;

Nějak mi uniká v čem toto nevyhovuje.

gna
Návrhy na vylepšení › Obrázková Captcha je hrozná
7. 8. 2018   #381131

Normálně je na jeden klik. Pokud se ti zobrazuje obrázková, tak ti asi Google nevěří.

Připojen obrázek.

gna
C / C++ › Jak odkázat na třídu POINT d…
7. 8. 2018   #381130

   

POINT *apt = (POINT*) adresa;

Pracuje se s tím stejně jako to máš teď. 

apt[i].x =
gna
PHP › PHP a UTF-8
5. 8. 2018   #381112

#1 Dominik
Před content-type máš středník, takže se to do hlaviček nepřidá. Taky ty hlavičky musí být oddělené odřádkováním.

Kódování textů v hlavičkách (což je i předmět) je potřeba uvést přímo v nich.

$email_subject = "Dotaz z formuláře";
$email_subject = "=?UTF-8?B?" . base64_encode($email_subject) . "?=";
...
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: " . $mailForm;
gna
PHP › PHP a UTF-8
5. 8. 2018   #381111

#2 Martin
A co by to mělo udělat?

gna
Python › Tvorba Menu pomocí flask-nav
30. 7. 2018   #381074

V SimpleRendereru je to natvrdo span. Použij vlastní renderer.

gna
Python › Jak nastavit prodlevu v Tkin…
30. 7. 2018   #381072

Když chceš měnit text labelu, tak budeš měnit text labelu a ne tam rvát nový.
Když chceš ten seznam mít jako list, tak ho uděláš jako list a nebudeš pořád konvertovat tuple na list a zpátky.
Když je seznam prázdný, tak okno.quit tu funkci nepřeruší, takže pak dostaneš tu chybu, že vybíráš z prázdného seznamu.

Nerozšiřuj to, dokud nepochopíš, co děláš. Hlavně, že tam máš podělanej kopyrajt!

gna
Python › Spuštění jiného programu pří…
30. 7. 2018   #381063

Nejjednodušší možnost je os.system. Pro pokročilejší věci pak funkce z modulu subprocess.

os.system("avconv ...")
gna
Java › dekompilace jar
30. 7. 2018   #381059

jar je v podstatě zip obsahující ty classy, takže na jaru jako takovém není co dekompilovat.

gna
Python › Jak nastavit prodlevu v Tkin…
27. 7. 2018   #381046

   

seznam = ['a', 'á', 'b', 'c', ... 'z']
random.shuffle(seznam)

okno = Tk()

label_nadpis = Label(okno, text=u"Písmena abecedy", fg="red")
label_nadpis.pack()
label_pismeno = Label(okno, text="...", font=("Helvetica", 10))
label_pismeno.pack()


def dalsi_pismeno():
    if not seznam:
        okno.quit()
        return
    label_pismeno['text'] = seznam.pop()
    okno.after(1000, dalsi_pismeno)


okno.after(1000, dalsi_pismeno)
okno.mainloop()
gna
Python › Jak nastavit prodlevu v Tkin…
27. 7. 2018   #381045

def je definice funkce. Když k ní dojdeš poprvé, tak se definuje ale neprovádí. Takže ti to skočí za ní.

Tam už je volání téhle funkce, takže to skočí do ní. Na konci funkce se to vrátí tam odkud byla volaná.

Jinak celý TkInter běží právě v mainloop, řeší svoje věci a spouští tvoje funkce. V tomhle případě tu jednu funkci opakovaně plánovanou ke spuštění pomocí after.

Vždycky se vytváří nový label a ukládá se do proměnné w, ale předtím se zruší pack toho, co v ní bylo předtím.

gna
PHP › DOMDocument - zobrazenie td…
19. 7. 2018   #380992

Poduzly toho tr jsou v jeho childNodes. Jestli chceš něco jako innerHTML, tak třeba takhle. 

foreach ($elements as $element) {
	foreach ($element->childNodes as $child) {
		echo $dom->saveHTML($child);
	}
}
gna
PHP › include_once '' špatně odkaz…
18. 7. 2018   #380981

   

'../partials/neco'
gna
PHP › php convert to powershell
12. 7. 2018   #380957

   

echo ""
gna
Python › Jak funguje speciální metoda…
12. 7. 2018   #380956

Nejsem si jistý, co myslíš tím pořadím argumentů. Self nemá žádný speciální význam, prostě první parametr metody je objekt, na kterém byla zavolána a je zvykem ho pojmenovávat self (a druhý parametr porovnávacích metod zase other).

Co se týče toho fungování, tak jen v případě, že porovnáváš instanci třídy s instancí třídy z ní odvozené, tak má přednost odvozená třída. Jinak má přednost to, co je nalevo. 

# stejne typy
a1 == a2  # a1.__eq__(a2)
a2 == a1  # a2.__eq__(a1)
# rozdilne typy
a == b    # a.__eq__(b)
b == a    # b.__eq__(a)
# aa je instance odvozene tridy
a == aa   # aa.__eq__(a)
aa == a   # aa.__eq__(a)

Důležité je to slovo přednost. Ta porovnávací metoda může vrátit NotImplemented a v tom případě se zkusí druhá možnost.

zt1 == 0  # zt1.__eq__(0)
0 == zt1  # 0.__eq__(zt1)
          # == NotImplemnted
          # => zt1.__eq__(0)

Pokud obě možnosti vrátí NotImplemented, tak se porovná identita objektů (jestli je to ten samý objekt, jako operátor is).

gna
JavaScript, AJAX, jQuery › problém s prohozením obrázků
10. 7. 2018   #380730

Jestli myslíš toto

<... onClick="aaa"
     onClick="bbb" />

a čekáš, že to prvně udělá "aaa" a příště "bbb", tak takhle to nefunguje. Prostě tomu atributu nastavuješ nějakou hodnotu -- jednu. I když to uděláš víckrát, tak bude jen jedna. Nevím jestli je nějak definováno která, ale vypadá to, že ta první. Tu požadovanou funkcionalitu si musíš pořešit sám.

function changeImage(img) {
    if (img.src.endsWith("aa.jpg"))
        img.src = "bb.jpg";
    else
        img.src = "aa.jpg";
}
<img src="aa.jpg" onclick="changeImage(this)" />
gna
Návrhy na vylepšení › Spam - řešíme
10. 7. 2018   #380711

Asi je to rozbitý   

gna
.NET › Zjednodušení algoritmu
3. 7. 2018   #221533

#19 Mutagen
Přesně o tom je tady řeč ty brzdo.

Generator gen = new Generator(3);

public bool podelanej_event()
{
    int[] prev = (int[]) gen.code.Clone();
    int[] next = gen.Next();
    
    Console.Write("{0} -> {1} = ", String.Join("", prev), String.Join("", next));
    for (int i = 0; i < next.Length; i++)
        Console.Write("-.+"[1 + next[i] - prev[i]]);
    Console.WriteLine("");
}
gna
.NET › Zjednodušení algoritmu
1. 7. 2018   #221525

#17 MilanL
Mně šlo jen o to, jak Mutagen neviděl, že ten tvůj algortimus nemusí běžet na jeden zátah. Tak ja to je, by šlo testovat protočení tak, že to dvakrát vrátí stejnou hodnotu, ale to si může pořešit jakkoliv jinak.

gna
Python › Chci se naučit pracovat s de…
1. 7. 2018   #221524

Property je prostě "vlastnost" objektu. Jako proměnná. Jde ji číst, měnit a smazat (pokud jsou dané operace definované) 

obj.property

Dekorátor @property z metody vytvoří stejnojmennou property a ta metoda bude fungovat jako její getter. To je celé. Pointa je v podstatě jen v tom jak se to jeví "zvenku".

Chybu máš už v tom getteru. Vracíš _data, cože je přeci property s getterem, který se tak znova zavolá a zacyklí se to.

A pak v tom testovacím přiřazení nepracuješ s objektem (takže se nezavolá setter property), ale s třídou (takže se přesmahne definice property).

class ZT:
    _data = 0

    @property
    def data(self):
        return self._data

    @data.setter
    def data(self, nova_data):
        assert type(nova_data) == int, "data.setter: neplatny vstup"
        self._data = nova_data


zt = ZT()
zt.data = "a"
gna
.NET › Zjednodušení algoritmu
1. 7. 2018   #221520

#14 MilanL
Je tam násobení zápornou jedničkou!

gna
.NET › Zjednodušení algoritmu
29. 6. 2018   #221517

#11 MilanL

Já si myslím, že mu prostě ze serveru chodí aktuální kombinace, takže by mohl kontrolovat, jestli odpovídá tomu co zadal, ale jinak ta hodnota není podstatná.

Poznámku s měněním znaménka nechápu.

gna
.NET › Zjednodušení algoritmu
29. 6. 2018   #221515

Ten generátor přece není problém izolovat a rozkrokovat.

class Generator
{
    public int[] code;
    public int[] smer;

    public Generator(int size)
    {
        code = Enumerable.Repeat(0, size).ToArray();
        smer = Enumerable.Repeat(1, size).ToArray();
    }

    public int[] Next()
    {
        for (int i = code.Length - 1; i >= 0; i--)
        {
            int val = code[i] + smer[i];
            if (val > 9 || val < 0)
            {
                smer[i] *= -1;
            }
            else
            {
                code[i] = val;
                break;
            }
        }
        
        return code;
    }
}
gna
PHP › PHP kopírovanie podľa času
26. 6. 2018   #221490

   

$limit = time() - 5 * 60; // teraz - 5 minut
$ftime = filemtime("$src/$val"); // muze vratit FALSE, ale to tady nevadi

if ($ftime > $limit) {
   copy("$src/$val","$dest/$val");
}
gna
Delphi › Jak přidat element na začáte…
24. 6. 2018   #221479

A teď koukám, že už to tady několikrát je. Ty jsi prostě debil.

gna
Delphi › Jak přidat element na začáte…
24. 6. 2018   #221478

#19 oxidián
Takže to mám správně to má být takto

NE! Když už ty prvky kopíruješ vytvářením nových, tak ještě musíš mazat ty staré.

Ale ty nepotřebuješ vytvářet nové objekty. Jen chceš ty původní posunout.

A samozřejmě když takhle kopíruješ každý prvek na další pozici, tak nakonec bude kopie první položky na druhé pozici, ale zároveň zůstane i na první pozici. To je to nově vytvořené místo, které je potřeba inicializovat.

Já bych to kopírování teda ještě otočil ať tam nestraší to -2. 

setlength(arr, length(arr)+1);
for i := length(arr)-1 downto 1 do
  arr[i] := arr[i-1];
arr[0] := tstringlist.create;

Co ti na takové kravině trvalo 6 hodin?

gna
Delphi › Jak přidat element na začáte…
23. 6. 2018   #221470

#13 oxidián
Víš, že to v Delphi je dialekt Pascalu, žejo?

gna
Delphi › rozparsování řetězce
21. 6. 2018   #221429

#8 MilanL
A když jsi dopisoval ty komentáře, tak ti to vůbec nepřišlo divný? Proč je v blbé funkci na postupné hledání oddělovačů ŠEST IFů?

function split(str: string; sep: string): tstringlist;
var
    sl: tstringlist;
    seppos, sublen: sizeint;
begin
    sl := tstringlist.create;
    repeat
        seppos := pos(sep, str);
        sublen := seppos - 1;
        if sublen = -1 then
            sublen := length(str);
        sl.add(copy(str, 1, sublen));
        delete(str, 1, sublen + length(sep));
    until seppos = 0;
    split := sl;
end;
gna
Delphi › rozparsování řetězce
21. 6. 2018   #221428

#6 oxidián
Na té funkci není nic složitého a kdybys občas něco vypotil, tak by ses možná něco naučil. Ale máš to štěstí, že nic psát nemusíš, protože to ten list už umí. A používej dokumentaci ke své verzi Delphi.

slist.Delimiter := ';';
slist.StrictDelimiter := true;
slist.DelimitedText := '1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1';
gna
Delphi › Vzhled položek menu
20. 6. 2018   #221413
gna
C / C++ › C++ Stack implementation
19. 6. 2018   #221395

Inicializace st proběhne před konstruktorem a proměnná sizeOfStack v té době není inicializovaná.

Pokud má malou hodnotu, tak zapisuješ za to pole. Velikost alokované paměti se zarovnává na nějakou hodnotu, takže za tím polem může být prostor, který lze bez problému přepsat. Ale většinou je to jen pár bajtů, které když překročíš, tak by to nejpozději při delete[] mělo sletět.

Nebo má sizeOfStack takovou hodnotu, že to pole je dostatečně velké.

Mimochodem, pop() máš špatně.

gna
C / C++ › Vyjmutí textu
17. 6. 2018   #221384

A celkem znamená co? :DDD I kdybys to měl po znacích projít a testovat, jestli jsi narazil na uvozovky, tak snad není problém to udělat.

std::string

gna
Pascal › Hexadecimal
15. 6. 2018   #221375

#3 Borisek
Když se ptáš na masku, tak předpokládám, že víš k čemu maskování je -- k "zakrývání a odkrývání" bitů. And vynuluje bity, které jsou v masce nulové a nechá beze změny bity, které jsou v masce jedničkové.

    10101010
and 00001111
  = 00001010

    10101010
and 11110000
  = 10100000
$aa and $01 = $00
$aa and $02 = $02
$aa and $04 = $00
$aa and $08 = $08
gna
Visual Basic › Jak zamíchat balík ?
14. 6. 2018   #221360

Ze zbytku jako z těch, cos ještě neprošel.

Jinak ještě to Randomize stačí jen jednou a .NET má šikovnou třídu Random.

gna
Visual Basic › Jak zamíchat balík ?
14. 6. 2018   #221359

Nejjednodušší možnost je vybrat dva náhodné prvky a prohodit je. A to "několikrát" opakovat.

Když nad tím budeš dumat, tak ono to tak nějak možná je a možná taky není pořádně zamíchané, a chtělo by to spíš něco jako sestavit nový balíček odebíráním náhodných karet z původního. U karet dobrý, ale je to problém u velkých polí.

Tak se to dá pěkně spojit tím, že ten balíček projdeš a každou kartu prohodíš náhodnou kartou ze zbytku.

Fisher–Yates shuffle

gna
Pascal › Hexadecimal
14. 6. 2018   #221358

Ano, můžeš maskovat operátorem and.

hodnota and maska

Pravděpodobně se ti bude hodit i bitový posun operátory shl a shr.

hodnota and (1 shl bit)
(hodnota shr bir) and 1
gna
Visual Basic › Morseovka - Jak na to?
12. 6. 2018   #221333

#4 Dumbo
Tak pokud je to VB.NET, tak tam jde string indexovat jako pole a taky projít pomocí for each.

For i = 0 To vstup.Length - 1
	... vstup(i)
Next

For Each znak As Char in vstup
    ...
Next
gna
Pascal › Lazarus - linux - BeginThread
11. 6. 2018   #221318

Když jsme u toho Googlení...

RunError 211 je volání abstraktní metody. Taky ho cthreads vyhodí explicitně pokud se inicializuje pozdě. A CloseThread se má volat až po skončení vlákna (i když na Windows a Linuxu se předčasným voláním asi nic nerozbije).

Jinak je na vlákna lepší použít TThread.

gna
Python › Ovladani rele s raspberry
11. 6. 2018   #221317

#8 Yenc 

print('Ted jsem tady a zkusim tohle')
gna
C / C++ › Codeblocks, cmake
11. 6. 2018   #221316

#2 MilanL
Taglib se distribuje ve formě zdrojáků. Pro kompilaci se používá cmake, který přímo nekompiluje, ale generuje "kompilační projekt" třeba pro make, nebo Visual Studio, nebo dokonce i Code::Blocks.

Zdá se, že už tam má problém a jak to přidat do svého projektu asi bude řešit až potom, co to zkompiluje.

gna
Python › Ovladani rele s raspberry
10. 6. 2018   #221294

Tohle 

device_file = device_folder + "/w1_slave"

má být list

device_file = [device_folder + "/w1_slave"]

Tohle

temp1 = read_temp

má být volání funkce 

temp1 = read_temp(0)

Tohle

try:
    ...

nemáš ukončené 

try:
    ...
except KeyboardInterrupt:
    GPIO.cleanup()
gna
Visual Basic › Morseovka - Jak na to?
9. 6. 2018   #221292

To je zase to VBA, že?

Tak ten řetězec projdeš, jednotlivé znaky dostaneš funkcí mid a pro výpočet indexu do pole můžeš použít funkci asc

for i = 1 to len(vstup)
	znak = mid(vstup, i, 1)
	index = asc(ucase(znak)) - asc("A")
	if index >= 0 and index < len(tabulka) then
		kod = tabulka(index)
	else
		kod = znak ' co neumime zkonvertovat, nechame byt
	end if
	vystup = vystup + kod
next i
gna
Java › Podmínka if
8. 6. 2018   #221272

Už z těch několika řádků nad tím je vidět, že řetězce se zapisují v uvozovkách.

A pak jedno rovnítko je pro přiřazení. Na test rovnosti je dvojité rovnítko (a == b).

Ale to by testovalo, jestli je na obou stranách operátoru ten samý objekt. Na porovnání řetězce podle obsahu je metoda equals. 

if (a.equals("ano"))
gna
Delphi › Sdílení a iniciace proměnné…
7. 6. 2018   #221246

Sender je vždycky objekt, kterého se událost týká.

Takže obsluze kliku na menuitem asi nebudeš přeposílat form! Jestlit to správně chápu, tak je to N9, takže to bude:

N9.Click;
// nebo
SelectUser1Click(N9);

Jen díky tomu, že se tam s tím parametrem nijak nepracuje nevadí, že tam cpeš nesmysl. Máš tam hromadu metod, ze kterých je vidět, jak to funguje. Dokonce jsi napsal pár vlastních, tak nad tím chvíli přemýšlej!

gna
Delphi › Sdílení a iniciace proměnné…
6. 6. 2018   #221244

Sender je vždycky objekt, kterého se událost týká. V tomhle případě to asi bude instance TMenuItem.

Taky se handlery nevolají přímo, ale bylo by to metodou Click, která vyvolá OnClick (který je asi v tomhle případě nastavený na ten SelectUser1Click) se správným parametrem.

A vzhledem k tomu, že OnCreate (FormCreate) se volá při vytváření objektu formu, tak bych nečekal, že v té době bude připravený na operace, které se v tom click handleru dělají. Možná to půjde při OnShow (FormShow).

gna
Delphi › funkce odkazující na položku…
3. 6. 2018   #221217

Máš tam 20 unit a 16 formulářů. I když odmítáš číst dokumentaci, tak snad není možné si nevšimnout, jak se s nimi pracuje.

V souboru uc_heb1.pas máš toto.

unit Uc_heb1;

interface

type
  TForm1 = class(TForm)
  ...

var
  Form1: TForm1;
  ...

implementation

...

Takže do souborů, kde potřebuješ znát definici toho typu a/nebo té proměnné, přidáš toto:

uses
  Uc_heb1, ...;

Samozřejmě by té funkci šlo předat menu/submenu/položky, se kterými má pracovat, ale to ty nikdy nepobereš, tak se k tomu prokousej přes Form1.

gna
C / C++ › Vytvoření knihovny
31. 5. 2018   #221201

Myslím, že na té ukázce je vidět, že se opakovaně provádějí příkazy v těle cyklu, dokud je splněna podmínka pro opakování.

Co chceš opakovat, to do něj dej.

gna
C / C++ › Vytvoření knihovny
31. 5. 2018   #221187

Myslím si, že tak jak to máš, to zadání splňuje. Nevidím důvod dávat ten switch do "knihovny". Jestli to do ní chceš hodit, tak je na tobě, jak se ti to líbí.

Na opakování jsou cykly.

gna
C / C++ › Vytvoření knihovny
31. 5. 2018   #221183

#3 normy101
A jak se ta chyba projevuje?

Jestli ti to při kompilaci hlásí neznámé funkce z té "knihovny", tak je potřeba tu knihovnu přidat do projektu. Jestli to kompiluješ ručně tak prostě uveď oba soubory (třeba gcc main.c knihovna.c -o program.exe). Jinak je to syntakticky správně, takže jiný problém by neměl být.

Co se týče fungování programu, tak jediný problém vidím v tom, že int je celočíselný typ. Pro desetinná čísla můžeš použít třeba typ double a formát pro scanf pak bude %lf a pro printf %f.

gna
Pascal › Piškvorky
31. 5. 2018   #221182

   

// FreePascal

var
  plocha: array of array of char;
  velikost: integer;
  i, j: integer;

begin
  velikost := 5;
  setlength(plocha, velikost, velikost);
  for i := 0 to velikost-1 do
    for j := 0 to velikost-1 do
      plocha[i,j] := '.';

  plocha[1,2] := 'X';
  plocha[2,2] := 'O';

  for i := 0 to velikost-1 do
  begin
    write('|');
    for j := 0 to velikost-1 do
      write(plocha[i,j]);
    writeln('|');
  end;
end.
gna
C / C++ › Podmínka pro celý soubor
30. 5. 2018   #221174

Na opakování se používají cykly - for, do, while. Třeba takhle:

int volba = -1;
while (volba != 0) {
	printf("1) aaa\n2) bbb\n0) Konec\n");
	printf("Vyber: ");
	scanf("%i", &volba);
}
gna
PHP › Aktualizace tabulky s relací…
25. 5. 2018   #221142

A ještě jsem zapomněl napsat proč je to pole.

Takovéhle přiřazení přidává položky do pole.

$vystrazniky[] = explode(', ', $vystrazniky_vyber);

Takže v poli $vystrazniky máš jednu položku, která je taky pole. Vyhoď ty závorky []. Celkově nevidím důvod to prohánět přes implode-explode.

gna
PHP › Aktualizace tabulky s relací…
25. 5. 2018   #221141

Tu konverzi pole na řetězec máš tady.

('$id', '$id_vystrazniku'[\"id_vystrazniku\"])

Kdyby jsi chtěl chtěl hodnotu z pole, tak by to šlo napsat jako

... '{$pole['klic']}' ...

Ale ty tam chceš $id_vystrazniku, tak to tak napiš.

... '$id_vystrazniku' ...

Z toho update vyhoď tu vazební tabulku. Nic tam nevážeš. Prostě uprav data přejezdu v jeho tabulce a doplň vazby v té vazební tabulce.

gna
PHP › Aktualizace tabulky s relací…
24. 5. 2018   #221124

#10 David
Tak tam, kde to píše asi děláš to, co se tam píše.

Pokud máš option takhle, tak by ti to mělo posílat ta čísla z value. Nechápu pak, co myslíš tím, že nechceš vkládat řetězce.

V tom selectu máš zase blbě uvozovky a method tam nemá co dělat. Podívej se na zdroják té stránky.

Typ výstražníku: <select name="vystrazniky[]" method="get"cislo" multiple />  <-- co to tam je?
gna
PHP › Aktualizace tabulky s relací…
24. 5. 2018   #221119

Dáváš do value id záznamu?

<option value="1">Metelesku</option>
<option value="2">Blesku</option>
gna
PHP › Aktualizace tabulky s relací…
24. 5. 2018   #221095

Tady na řádku 38 nic zajímavého není. Můžná u tebe je.

PREJEZDY_VYSTRAZNIKY je vazební tabulka, ne? Proč ji máš v tom prvním update? I kdyby jsi tam chtěl dvě tabulky, tak s jinou podmínkou a před WHERE máš nadbytečnou čárku.

V tom INSERTu máš [\"id_vystrazniku]\". Ty uvozovky jsou špatně a hlavně to tam vůbec nemá být.

Funkce mysql_error vrací popis chyby. A hlavně nestrkej data z GETu přímo do SQL.

gna
Visual Basic › Další úkol - Jak provedu výp…
21. 5. 2018   #221073

#11 Kit
Já jsem poslední velkou věc ve VBA dělal před 20 lety pro jeden okresní úřad a není na světě dost peněz, abych to podstoupil znova.

gna
Visual Basic › Další úkol - Jak provedu výp…
21. 5. 2018   #221070

Já jsem předpokládal, že jde o VB.NET. To asi budete dělat v tom Visual Studiu.

To v Excelu je VBA (Visual Basic for Applications) a je úplně na ho.no.

gna
Visual Basic › Další úkol - Jak provedu výp…
21. 5. 2018   #221067

Jinak teda pokud ten MsgBox používáš, protože je to konzolová aplikace a nevíš, jak jinak něco vypsat, tak je to 

Console.WriteLine("Ahoj")
gna
Visual Basic › Další úkol - Jak provedu výp…
21. 5. 2018   #221066

Protože vypis máš Long a pokoušíš se k němu přičítat string.

Mimochodem pokud je step 1, tak ho nemusíš psát a neco = neco + necojineho se dá napsat jako neco += necojineho. A to Chr(10) nahraď něčím srozumitelnějším. Myslím, že ještě pořád existuje předdefinovaná konstanta vbNewLine.

Dim i As Integer
Dim nahoda, soucet, prumer, rozdil As Double
Dim vypis As String

soucet = 0
For i = 1 To 20
    nahoda = Round(Rnd() * 40) + 10
    soucet += nahoda
    vypis += Str(nahoda) + vbNewLine
Next i
prumer = soucet / 20
rozdil = 30 - prumer

vypis += "prumer " + Str(prumer) + vbNewLine
vypis += "rozdil " + Str(rozdil) + vbNewLine

MsgBox vypis
gna
Visual Basic › Další úkol - Jak provedu výp…
21. 5. 2018   #221064

Copak něco brání tomu abys to v tom cyklu dělal obojí?

gna
C / C++ › Ukládání/načítání souboru C++
20. 5. 2018   #221056

No tak ho projdi a obsah ulož. Co ti na tom nejde?

gna
Visual Basic › Sinus - Dotaz na správnost
20. 5. 2018   #221055

Samozřejmě ta první varianta.

gna
C / C++ › Súčet všetkých podreťazcov r…
20. 5. 2018   #221053

To se dost špatně vysvětluje. Zkus ten výpočet rozložit a uvidíš to. První část je

(i+1) * numi

To je vidět hned 

1 + 2 + 3 + 4  +  12 + 23 + 34        +  123 + 234            +  1234
1 + 2 + 3 + 4  +  10+2 + 20+3 + 30+4  +  120+3 + 230+4        +  1230+4
1 + 2 + 3 + 4  +  10+2 + 20+3 + 30+4  +  100+20+3 + 200+30+4  +  1000+200+30+4
1              +  10 + 20 + 30        +  100+20 + 200+30      +  1000+200+30    +  2*2 + 3*3 + 4*4

Další část

10 * sumofdigit[i-1]

Když si s tím pohraješ, tak je vidět, že v každém kroku je řádový posun předchozího.

1   +   10 + 2*2   +   100 + 2*2*10 + 3*3   +   1000 + 2*2*100 + 3*3*10 + 4*4
1   +   10 + 2*2   +   (10+2*2)*10  + 3*3   +   ((10+2*2)*10 + 3*3)*10  + 4*4
gna
PHP › Mazání z databáze
16. 5. 2018   #220886

To říká, že skupina_id odkazuje na skupina.id a hlídá se, aby ten odkaz byl platný, takže nepůjde smazat skupina, ve které někdo je.

Web se na to bude tvářit tak, jak si ho napatláš.

gna
JavaScript, AJAX, jQuery › Pexeso jQuery
14. 5. 2018   #220859

Už ti peter napsal, kde ten test je. Uprav si to jak chceš.

if (imgopened != currentopened) {
// close again
...
} else {
// found
...
gna
Python › Shannon-fanovo kodovani
12. 5. 2018   #220839

Je to vidět na tom stromě. Těch hodnot s kratkým kódem musí být výrazně víc než těch s dlouhým, aby výsledná velikost byla menší.

U JPG je normální, že jednoduchým překódováním se nezmenší.

gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220827

Ano, přesně tak.

gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220825

Protože když to dělíš podle četnosti, tak se ti to svažuje doprava, častější hodnoty vlevo mají kratší kódy a ty méně časté zase delší. To je přece to o co jde. 

     *
    / \
   /   \
  *     *
 / \   / \
00 01 10 11


  *
 / \
0   *
   / \
  10  *
     / \
   110 111

Můžeš prostě tu délku kódů ukládat na víc bitů. (Teda mimo to, že je vůbec není potřeba ukládat.)

gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220822

Mně to ukazuje numBytes 1640623802. Jsou tam kódy delší než 8 bitů, takže se jejich délka nevejde do těch očekávaných 3 bitů a všechno se to posune.

gna
JavaScript, AJAX, jQuery › reg. vyraz - nahrazeni zname…
11. 5. 2018   #220821

Tady je $1 -- '[+\\-]+([+\\-])|[/*]+([/*])'

a tady $2 -- '[+\\-]+([+\\-])|[/*]+([/*])'

Když se matchne '[+\\-]+([+\\-])|[/*]+([/*])', tak $1 nic neobsahuje. Když to bude matchovat zprava, tak se posere zase ta první část.

U toho původního patternu ale můžeš zůstat s replace na "$1$2".

gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220814

Dej si tam výpis té hodnoty numBytes. Chybu tam nevidím (a nechápu co tam všude kutíš s tím +-1), ale možná to načetlo nějaké hausnumero.

A místo range tam dej xrange.

gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220813

Tak ukaž i ten soubor.

gna
JavaScript, AJAX, jQuery › reg. vyraz - nahrazeni zname…
11. 5. 2018   #220812

$1 je první skupina a $2 ta druhá, bez ohledu na to, která část se matchne.

patt = '[-+]+(?=[-+])|[/*]+(?=[/*])';
...
str.replace(reg,'');
gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220810
gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220807

Když opravím to chaotické odsazování, tak mi to funguje.

A máš to zbytečně šíleně složité.

gna
Python › Shannon-fanovo kodovani
11. 5. 2018   #220804

Bez kódu tu chybu nenajdeme.

gna
MS SQL › Hledání posledních záznamů p…
11. 5. 2018   #220803

1. To jsem tušil a myslím si, že jsem dost jasně napsal, že při sekupování musíš určit, kterou hodnotu chceš vybrat.

2. Taky si myslím, že bez toho to v MS SQL ani nejde, takže teď předpokládám MySQL.

3. Když se to pokušíš použít, jak jsem to napsal, tak nějak logicky.

SELECT * 
FROM   tabulka 
WHERE  ( osoba, datum ) IN (SELECT osoba, Max(datum) 
                            FROM   tabulka 
                            GROUP  BY osoba);
gna
Delphi › Dynamické přiřazení funkcí k…
10. 5. 2018   #220788

TMenuItem má vlastnost OnClick. Je to v dokumentaci.

A parametr Sender je ta kliknutá položka. To je taky v dokumentaci.

gna
MS SQL › Hledání posledních záznamů p…
9. 5. 2018   #220786

Při použití group by musíš v selectu říct, kterou hodnotu ze skupin vybrat. 

SELECT osoba, 
       Max(datum) AS datum 
FROM   tabulka 
WHERE  osoba IN ( ... ) 
       AND datum < ... 
GROUP  BY osoba
;
gna
Delphi › Vytvoření třídy
7. 5. 2018   #220757

Identifikátory se "hledají" z aktuální úrovně do vyšších.

Pokud tady chceš používat stejně pojmenovaný parametr i vlastnost objektu (nejsem si jistý, jestli to vůbec jde), tak přednostně to bude parametr a vlastnost musíš napsat jako Self.vlastnost. Pokud kolize není, tak rozlišovat nemusíš. Když se podíváš na konvence pojmenovávání, tak ke kolizím ani nedochází.

Pusť konečně z hlavy pokusy používat název třídy jinak než při určování typu nebo vytváření instance.

gna
Delphi › Funkce "najdi samohlásku"
7. 5. 2018   #220756

Není. Brání ti něco si ji napsat?

gna
PHP › Vkládání obrázků do databáze
7. 5. 2018   #220752

Na obrázky je tag IMG a data určuje jeho atribut SRC.

Takže v HTML budeš mít

<img src="kurvafix.jpg" />

Prohlížeč když to uvidí tak stáhne a zobrazí ten obrázek.

gna
Delphi › Vytvoření třídy
6. 5. 2018   #220712
gna
Delphi › Vytvoření třídy
5. 5. 2018   #220705

Možná se TForm automaticky pokouší načíst svůj formulář. Toto nevypadá na formulářovou třídu, tak není důvod dědit z TFormu.

TTesty = class(TObject)
gna
Delphi › Vytvoření třídy
4. 5. 2018   #220694

No a takovou tu drobnost tam máš?

TestyOrganizer := TTesty.Create;
gna
Delphi › Vytvoření třídy
4. 5. 2018   #220692

Konstruktor nic nedělá, na objekt se nedá dostat...

Tu proměnnou máš inicializovanou, že?

gna
Python › Augmentation Audio
4. 5. 2018   #220690

Napiš to i s těmi závorkami.

gna
PHP › Kde procvičovat?
4. 5. 2018   #220688
gna
Python › Augmentation Audio
4. 5. 2018   #220687

V PowerShellu, ne v klasickém příkazovém řádku.

gna
Python › Augmentation Audio
4. 5. 2018   #220686

To

Samples/*/*

nezpracovává ten skript, ale shell to před spuštěním programu nahradí seznamem souborů.

Tipuju, že to zkoušíš ve Windows. Tam to můžeš napsat tahle

(dir Samples/*/*)
gna
Delphi › Vytvoření třídy
3. 5. 2018   #220661

Kolikrát jsi psal něco := Třída.Create?

Chceš Form1, ne TForm1.

gna
Delphi › Vytvoření třídy
3. 5. 2018   #220654

A nechceš náhodou zapisovat ty booleany, do kterých to načítáš?

Odkaz na form nebo cokoliv jiného můžeš do objektu předat stejně jako kdykoliv cokoliv jiného. Jako parametr jeho metody, nebo nastavením jeho proměnné.

Nakonec je ten Form1 pravděpodobně globální proměnná, tak to můžeš prostě napsat jako Form1.něco.

 

 

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