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

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

 

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

gna
Delphi › Vzhled položek menu
před 6 hodinami   #221413
gna
C / C++ › C++ Stack implementation
Včera   #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.

gna
C / C++ › Hashovací tabulka se separát…
3. 5. 2018   #220652

   

struct Table
{
	Table(size_t m)
	{
		size = m;
		lists = new List[size];
	}

	~Table()
	{
		delete[] lists;
	}

	void Insert(char *str)
	{
		unsigned int hashKey = DJBHash(str, strlen(str)) % size;
		lists[hashKey].Insert(str);
	}

	bool Search(char *str)
	{
		unsigned int hashKey = DJBHash(str, strlen(str)) % size;
		return lists[hashKey].Search(str);
	}

	size_t MaxKeyUse()
	{
		size_t max = 0;
		for (size_t i = 0; i < size; i++)
			if (lists[i].size > max)
				max = lists[i].size;
		return max;
	}

private:
	List* lists;
	size_t size;
};
gna
C / C++ › Hashovací tabulka se separát…
3. 5. 2018   #220651

Klidně tam udělej klasické pole, na tom nezáleží.

gna
Flash › Action Script - Socket Clien…
3. 5. 2018   #220649

Jako odpověď na ten policy request odešleš obsah policy file (ukončený nulovým bajtem). Povolení všeho vypadá takhle:

<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
gna
C / C++ › Hashovací tabulka se separát…
3. 5. 2018   #220648

Tím se asi myslí maximum a průměr délek těch seznamů.

Takže si třeba do Listu přidej počitadlo vložených prvků.

Pak ještě tomu Listu doplň destruktor, ve kterém uvolníš alokovanou paměť (taky by bylo dobré pořešit kopírování). Z DJBHash vyhoď to modulo M, když zjevě používáš 2 různé hodnoty. A vykopej ty funkce InserHash/SearchHash a globální proměnné.

struct Table
{
	Table(size_t m)
	{
		lists.resize(m);
	}

	void Insert(char *str)
	{
		unsigned int hashKey = DJBHash(str, strlen(str)) % lists.size();
		lists[hashKey].Insert(str);
	}

	bool Search(char *str)
	{
		unsigned int hashKey = DJBHash(str, strlen(str)) % lists.size();
		return lists[hashKey].Search(str);
	}

	size_t MaxKeyUse()
	{
		size_t max = 0;
		for (List& list : lists)
			max = std::max(max, list.size);
		return max;
	}

private:
	std::vector<List> lists;
};

Table table1(M);
Table table2(M2);

table1.Insert(strdup("hrcprc"));
table1.MaxKeyUse();
gna
Delphi › nastavení projektu (Borland…
3. 5. 2018   #220628

Předpokládám, že ten hlavní form jde vybrat, tak ho vyber. Jinak je to form, který se vytváří jako první a myslím, že se to nikde extra neukládá, tak by mohlo stačit ten řádek s Form1 přesunout na začátek.

Available forms jsou pravděpodobně všechny formuláře v projektu. Auto-Create forms jsou ty, které se tady automaticky vytváří tím CreateForm.

T/Fhledani to nevidí, protože to asi není v unitách, které máš v uses. Kde je to definované můžeš najít třeba tak, že ten název prostě dáš vyhledat ve všech souborech :)

BPL/DCP adresáře se použijí asi jen pokud vytváříš/používáš externí knihovny. Asi to nastavovat nemusíš, nebo se podívej co tam je, když vytvoříš nový projekt.

gna
Python › malá rada o PyQT5?
2. 5. 2018   #220623

#1 lesna bodka vevericka zavinac gmail bodka com
Ten widget má metodu pos, takže pro svoji proměnnou použij jiný název.
Operátor is testuje identitu objektu. To co jsi asi chtěl udělat by bylo isinstance.
Ten pokus o vytažení x a y je úplný nesmysl.

def __init__(self):
    self._click_pos = None
    ...

def mousePressEvent(self,event):
    self._click_pos = event.pos()
    ...

def drawPoints(self,qp):
    ...
    if self._click_pos is not None:
        #takhle bys ty souradnice mohl vytahnout
        #qp.drawPoint(self._click_pos.x(), self._click_pos.y())
        #ale nemusis...
        qp.drawPoint(self._click_pos)
gna
Delphi › ExtractStrings a TStrings
2. 5. 2018   #220622

#27 oxidián
První znak má index 1.

gna
Visual Basic › Visual basic - program
2. 5. 2018   #220617

Nevím, jak si to přesně vyložit, ale dejme tomu, že by šlo o okenní aplikaci ve VB.NET.

Na formulář hodíš 6 textboxů a tlačítko. Do prvních 3 se budou zadávat ty hloubky a po stisknutí tlačítka se další 3 vyplní seřazenými hodnotami. Poklepeš na to tlačítko a vygeneruje se ti zhruba takováhle prázdná metoda: 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
End Sub

K obsahu textboxu se dostaneš přes jeho vlastnost Text. To je textový řetězec, takže ho bude potřeba zkonvertovat na číslo, protože budeme chtít porovnávat číselné hodnoty. Dejme tomu, že půjde o celá čísla, tak na to můžeš použít funkci Integer.TryParse, která indikuje jestli se konverze povedla. (Ve vlastnostech textboxu asi jde nastavit, aby do něj šlo zadat jen číselný text, ale pořád je to text)

Existuje metoda Array.Sort pro seřazení pole, takže ty hodnoty můžeš uložit do pole a to jednoduše seřadit.

Nakonec seřazené pole čísel převedeš zase na texty metodou ToString a vložíš do výsledných textboxů.

Nic těžkého, celé by to mohlo vypadat takhle:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim cisla(2) As Integer

    If Not Integer.TryParse(Textbox1.Text, cisla(0)) _
    Or Not Integer.TryParse(Textbox2.Text, cisla(1)) _
    Or Not Integer.TryParse(Textbox3.Text, cisla(2)) Then
        MessageBox.Show("Zadej celociselne hodnoty!")
        Exit Sub
    End If

    Array.Sort(cisla)

    Textbox4.Text = cisla(2).ToString()
    Textbox5.Text = cisla(1).ToString()
    Textbox6.Text = cisla(0).ToString()
End Sub

Nevím, jestli to funguje, ve VB nedělám, ale jako nástřel by to mělo stačit.

gna
Python › malá rada o PyQT5?
2. 5. 2018   #220615

Je to rozbitý.

gna
Delphi › Procházení adresáře
2. 5. 2018   #220614

1. Takhle ti to asi vrátí jen záznam pro ten jeden adresář. Jestli chceš jeho obsah, tak asi bude potřeba přídat za to ještě masku.

2. Už FindFirstDalší v případě úspěchu naplní ten SearchRecord. Takhle ho přeskakuješ.

3. V Attr asi může být více flagů. Netestoval bych rovnost.

if FindFirst(TestyDir + '\*', faDirectory, SearchRecord) = 0 then
begin
  repeat
    if (SearchRecord.Attr and faDirectory) = faDirectory
      ..
  until FindNext(searchResult) <> 0;
  FindClose(SearchRecord);
end;
gna
Visual Basic › Visual basic - program
2. 5. 2018   #220611

Tak napiš s čím konkrétně máš problem a třeba ti někdo poradí.

gna
Flash › Action Script - Socket Clien…
2. 5. 2018   #220610

Nejsem si jistý na co se ptáš. V první řadě na cílovém serveru musí běžet policy-file server. Před spojením se Flash nejdříve podíva na policy file, jestli server to spojení dovoluje.

gna
Delphi › ExtractStrings a TStrings
1. 5. 2018   #220597

#21 oxidián
Je to někde ve vlastnostech projektu, nebo to můžeš napsat přímo do zdrojáku.

gna
Delphi › ExtractStrings a TStrings
1. 5. 2018   #220594

To pole je automaticky naplněné prázdnými stringy. Spíš bych tipnul, že máš index 11, ale počítáno od 0 je to 12. položka, takže mimo pole. Samozřejmě můžeš použít Length, resp. Low/High pro testování platnosti indexu.

Se zapnutými "range checks" {$R+} by to mělo hodit vyjímku, ale jinak to klidně vezme neplatnou hodnotu jako string a klekne to až na Access Violation když s ním něco děláš. Takže alespoň pro ladění to doporučuji zapnout.

gna
Delphi › ExtractStrings a TStrings
1. 5. 2018   #220582

#6 oxidián
A má ten ptest správnou hodnotu?

pc^ = 'L', (pc+1)^ = 'a', (pc+2)^ = 't' ?

gna
Delphi › ExtractStrings a TStrings
1. 5. 2018   #220580

A pořád všude try blok. Jestli to háže vyjímku, tak je asi něco blbě.

gna
Delphi › Otevření obrázku ze souboru
1. 5. 2018   #220579
gna
Delphi › ExtractStrings a TStrings
1. 5. 2018   #220577

#3 oxidián
Zkus se ještě podívat, co ti vrací ten PChar. Myslím si, že v D7 je všechno AnsiString, takže by neměl být problém, ale nic jiného mě nenapadá.

Jinak u vyšších verzí jsou i zdrojáky, tak se můžeš podívat na čem to klekne. Našel jsem třeba tady.

gna
Delphi › ExtractStrings a TStrings
1. 5. 2018   #220573

Já bych očekával to samé. Jseš si jistý, že je prázdný?

gna
Delphi › Otevření obrázku ze souboru
1. 5. 2018   #220571

RAD Studio je balík obsahující různé produkty včetně Delphi.

Nejstarší verze helpu je tam pro RS2007 a v ní jsem našel tu samou funkci. Takže to asi bude to co hledáš.

RAD StudioVCL IndexExtractStrings.

Jestli máš originálku, tak bys měl mít kompletní help nainstalovaný (nebo na CD). Jinak jsem ho našel třeba tady. Jestli ho máš a jen ti nefunguje, tak je potřeba doinstalovat winhlp32.

gna
Delphi › Otevření obrázku ze souboru
30. 4. 2018   #220568
gna
PHP › PHP - skládání stránek a vkl…
29. 4. 2018   #220563

Klient (prohlížeč) požádá server o data na nějaké adrese. Server vidí, že na té adrese je skript, tak ho spustí a výstup skriptu pošle klientovi.

V databázi můžeš mít, co chceš a dělat si s tím, co chceš. Nikoho nezajímá, jak ten skript ta data vypotí.

gna
C / C++ › Serio-paralelní zapojení rez…
28. 4. 2018   #220556

Nějaký cyklus a podmínky tam určitě budou. A problém máš teda s čím?

gna
C / C++ › Serio-paralelní zapojení rez…
28. 4. 2018   #220554

C nebo C++ a s čím konkrétně si nevíš rady?

Struktura řádků je jasná. S hodnotami provedeš operaci podle operátoru. Hodnota je buď číslo, nebo identifikátor jiné větve, kterou musíš vyřešit předtím.

gna
PHP › Úprava INFO tagu v AVI
27. 4. 2018   #220540

Hele, už ten popis je zmatený. Je to prostě hromada chunků FOURCC id, LE32 delkadat, data...

Podle id poznáš formát dat. Pro RIFF jsou data FOURCC fileid, CHUNK..., pro LIST jsou data FOURCC listid, CHUNK..., pro ty IXXX jsou to nulou ukončené řetězce, atd.

Chunky jsou zarovnané na 2 byty, ty tam natvrdo přidáváš jeden byte bez ohledu na velikost.

fgets načítá textový řádek (do zadané velikosti nebo odřádkování) ne libovolná data.

Test jestli za tím listem je JUNK chunk, který můžeš posunout by měla být optimalizace, abys nemusel překopat celý soubor, ne nutnost bez které to nejde.

Když to rozparsuješ pořádně, tak to pak budeš schopný i zeditovat.

gna
PHP › Problém s headerom po prihla…
27. 4. 2018   #220537

#8 Martin
Jaké ale? Přesně to ti tady říká každá odpověd.

gna
PHP › Problém s headerom po prihla…
26. 4. 2018   #220534

Napsal jsi, že za doctype máš session_start(). Předpokládám, že to je ještě před tím kódem, co jsi ukázal.

Hlavičky se odesílají před tělem dokumentu. Takže se pokoušíš nastavit hlavičku až potom, co jsi začal odesílat dokument a proto se ta hlavička nepošle a přesměrování neprovede.

Exitem se ukončí skript, takže se neprovede další kód, pokud pod tím ještě něco máš. Na funkčnosti přesměrování to samozřejmě nic nezmění.

gna
PHP › Problém s headerom po prihla…
26. 4. 2018   #220532

A taky ta hlavička nepřeruší provádění skriptu, takže za tím přesměrováním asi ještě budeš chtít exit.

gna
PHP › Problém s headerom po prihla…
26. 4. 2018   #220531

Jakmile začneš vypisovat tělo dokumentu, tak už nejde přidat hlavičky.

gna
Pascal › Pomos s podprogramem
21. 4. 2018   #220478

   

type
    TMatice = array of array of integer;

function vygeneruj(vyska, sirka: integer): TMatice;
var
    matice: TMatice;
    radek, sloupec: integer;
begin
    setlength(matice, vyska, sirka);
    for radek := low(matice) to high(matice) do
        for sloupec := low(matice[radek]) to high(matice[radek]) do
            matice[radek,sloupec] := random(5) + 1;
    vygeneruj := matice;
end;

function secti_sloupec(matice: TMatice; sloupec: integer): integer;
var
    radek, soucet: integer;
begin
    soucet := 0;
    for radek := low(matice) to high(matice) do
        soucet := soucet + matice[radek,sloupec];
    secti_sloupec := soucet;
end;

procedure vypis(matice: TMatice);
var
    radek, sloupec: integer;
begin
    for radek := low(matice) to high(matice) do
        begin
            for sloupec := low(matice[radek]) to high(matice[radek]) do
                write(matice[radek,sloupec]:3);
            writeln;
        end;
end;

var
    matice: TMatice;
    prvni, posledni: integer;

begin
    matice := vygeneruj(4, 5);
    vypis(matice);

    prvni    := secti_sloupec(matice, low(matice[0]));
    posledni := secti_sloupec(matice, high(matice[0]));
    writeln('prvni    ', prvni);
    writeln('posledni ', posledni);
end.
gna
Pascal › Matice pascal
21. 4. 2018   #220474

Třeba tak, že projdeš hodnoty toho sloupce a postupně je přičteš k nějaké proměnné. Na průchod můžeš použít cyklus; třeba for.

gna
Pascal › pascal easy úlohha
20. 4. 2018   #220472

#13 ondřej
Hodnoty řádku můžeš postupně vypsat pomocí write a na konci vypsat odřádkování pomocí writeln, tak jak jsem to udělal v té první ukázce.

gna
Pascal › pascal easy úlohha
19. 4. 2018   #220458

A je to potřeba udělat u obou těch cyklů.

A pak tu proceduru volej jen jednou. Když ji spustíš podruhé, tak se ti znova spočítá součet a přičte se k původnímu výsledku (to by šlo opravit tím, že prostě r a s nejdříve vynuluješ), ale hlavně se ti vygeneruje nová matice a spočítá jiný součet.

gna
Pascal › pascal easy úlohha
19. 4. 2018   #220457

Takhle to bude fungovat (příkaz pro for bude ten begin...end), ale za begin nemusíš mít ten středník. To zase bude prázdný příkaz (který ale tady nevadí). Prostě jen z toho původního kódu umaž ten středník. Teď je to jako bys to měl takhle: 

for i:=1 to m do
	for j:=1 to n do
	begin
		; // zbtecny prazdny prikaz
		a[i,j]:=random(99)+1;
	end;
gna
Pascal › pascal easy úlohha
19. 4. 2018   #220455

za tím for...do umaž ten středník. Takhle ten středník (prázdný příkaz) znamená příkaz, který se v tom cyklu má dělat (takže to nedělá nic) a ten blok begin...end za ním se provede až potom a jen jednou.

randomize vyhoď před ten cyklus, jinak ti random bude vracet pořád stejnou hodnotu.

a nakonec v hlavním programu musíš tu svoji proceduru spustit (...readln...; radek; ...writeln...)

gna
Pascal › pascal easy úlohha
19. 4. 2018   #220451

Ve Free Pascalu by to mělo fungovat. Ta úloha nejspíš vychází z toho, co bys měl znát, takže toto asi není potřeba vysvětlovat a jen si to podle potřeby upravíš. Když napíšeš, co konkrétně nevíš nebo nechápeš, tak dostaneš konkrétní radu.

Náhodné číslo můžeš získat funkcí random a lichost čísla zjistit funkcí odd (nebo i tím operátorem mod atd.)

 

 

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