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
Mikrokontroléry › jak získat ukazatel na pole…
Včera   #216233

   

__code const char *p;

Kdybys chtěl "univerzální" pointer, tak to bude něco jako __far. Ten ale zase budeš muset "downgradovat" (zkopírovat data) pro funkce, které ho neberou (RTL), nebo můžeš změnit paměťový model celého programu (což bude asi nejjednodušší, ale pro pár řádků kódu zbytečné a přijdeš o spoustu optimalizací).

EW8051 neznám, ale hledej tímhle směrem.

gna
Příkazový řádek › bash stahovaní souboru wget
Včera   #216186

U té druhé varianty mám blbě uvozovky v tom řádku s wc. Buď escapni ty vnitřní, nebo vyhoď ty vnější

gna
Příkazový řádek › bash stahovaní souboru wget
Včera   #216185

wget sám by se měl při přerušení spojení pokusit soubor dotáhnout a výsledek stahování signalizuje návratovám kódem. Takže můžeš testovat ten návratový kód.

Teoreticky může dojít k situaci, že wget nepozná, že stahování není kompletní (když třeba server neohlásí délku dat) a pak teda můžeš otestovat ještě obsah toho souboru. To už si odzkoušej, jestli to potřebuješ. 

SOUBOR=soubor.txt
POCET_POKUSU=10

for ((i=0; i<$POCET_POKUSU; i++)); do
	# wget ... "$SOUBOR"

	# $? je navratovy kod posledniho prikazu
	# -eq testuje na rovnost (equal)
	if [ $? -eq 0 ]; then
		# bez chyby, ukoncit cyklus
		break
	fi

	# pockat 60 sekund
	sleep 60
done

nebo

for ((i=0; i<$POCET_POKUSU; i++)); do
	# wget ... "$SOUBOR"

	# $() zachyti vystup prikazu
	# wc -l pocita pocet radku (wc -c pocet znaku)
	POCET_RADKU="$(wc -l <"$SOUBOR" 2>/dev/null)"

	# $(()) vezme tu hodnotu jako cislo, prazdnou nebo neciselnou hodnotu jako 0
	# -ge testuje na vetsi-nebo-rovno (greater or equal)
	if [ $((POCET_RADKU)) -ge 1 ]; then
		# splneno, ukoncit cyklus
		break
	fi

	# pockat 60 sekund
	sleep 60
done
gna
C / C++ › Jak testovat zaplnění obrazo…
20. 5. 2017   #216134

S těmi COLUMNS a LINES jsem se seknul. V bashi existují, ale programu se nepředávají. To ioctl bude nejčistší.

gna
C / C++ › Jak testovat zaplnění obrazo…
19. 5. 2017   #216111

Podmínka vypadá dobře, ale máš v tom souboru ten znak, že by se měl načíst?

Nicméně tohle nemáš dělat. Tím textovým souborem se pravděpodobně rozumí soubor, ve kterém jediný speciální znak bude odřádkování. Takže máš počítat pozici, na kterou vypisuješ a po zaplnění obrazovky počkat na pokyn k výpisu další strany a opakovat to.

Klidně do toho zapracuj i další řídící znaky, jako třeba ten form-feed a další. Pak pozor na to, že na Linuxu jde terminál ovládat výpisem řídících sekvencí (změna pozice kurzoru, scrollování, atd.).

Rozměry terminálu nejsnáze zjistíš pomocí getenv COLUMNS a LINES, které samozřejmě nemusí být nastavené. Případně pomocí ioctl TIOCGWINSZ. Změnu velikosti můžeš detekovat chytáním signálu SIGWINCH. A výstup programu taky vůbec nemusí být na terminál.

Pokud si s tím budeš chtít pořádně vyhrát, tak máš na nějakou dobu co dělat :-) Ale ty pokročilé věci asi zatím vynech a řeš jen ten jednoduchý texťák a rozměry třeba natvrdo.

gna
Python › Najdi lichá čísla dělitelná…
19. 5. 2017   #216109

Můžeš přerušit cyklus příkazem break.

for i in seznam:
    if i < 0:
        break
    ...
gna
Sítě › Pathping výpis
17. 5. 2017   #216091

Některé routery neodpovídají na ping, to je v pořádku.

gna
Assembler › Přepis krátkého kodu v jave…
16. 5. 2017   #216075

#2 Jerry
Nevšiml jsem si, že ty bys sem někdy napsal něco jiného, než chujoviny.

gna
Sítě › Pathping výpis
16. 5. 2017   #216070

A čemu na tom nerozumíš?

gna
Python › graficke rozhranie pre android
15. 5. 2017   #216039

Z chyby v ideálním případě bývá vidět o jakou chybu jde. Obrázek nefachčí.

Máš Python s Tk pro Android? Já nevím o tom, že by existoval, ale nesleduji to.

gna
C / C++ › (C++) Převod const unsigned…
15. 5. 2017   #216038

   

string returnData[rowCount]                            // tohle je pole stringů,
 = {(const char*)(sqlite3_column_text(statement, i))}; // ve kterém inicializuješ první string hodnotou sloupce

cout <<
        returnData[rowCount]                           // tímhle získáš string z pole
                                                       //   teda vlastně ne, když je ten index mimo rozsah toho pole
                            [columnCount]              // a tímhle znak z toho stringu
                                                       //   teda kdyby to byl platný index v platném stringu.
                                          << "\n";

Věci, které jsi dělal už stokrát! Nečaruj, přemýšlej. 

for (int i = 0; i < columnCount; i++) {
	cout << sqlite3_column_text(statement, i) << "\n";
}
gna
Java › Problém s načítáním do ze so…
13. 5. 2017   #216021

#6 Honza
A přesně proto se to dělá jedním readem, jak jsi to měl předtím.

gna
Pascal › Úprava programu
13. 5. 2017   #216014

Jsou to bodová svítidla, takže záleží jen na vzdálenosti, na úhlu nezáleží.

Kdybys do toho chtěla nějak zapojit strop, tak potřebuješ vzdálenost svítidel od stropu. A stejně jako pro podlahu spočítáš osvětlení pro strop. Definuješ nějakou světelnou odrazivost toho stropu a vzniknou ti tak další svítidla. Pak bys teda ještě mohla zapojit odraz od stolu a stěn a ... nevymýšlej kraviny.

A už minule ti Milan psal, že při zjišťování minima a maxima stolu porovnáváš hodnoty místnosti.

gna
Visual Basic › Visual Basic - Hledání v textu
13. 5. 2017   #216013
gna
Java › Java UDP Audio
12. 5. 2017   #216009

Takže jsi tam jen přidal pomalé zapisování a teď některá data propásneš. V čem bude problém? :-)

gna
C / C++ › Geometrický průměr v C++
12. 5. 2017   #216008

V tom výpisu procházíš jednotlivé řádky a jejich hodnoty. V čem se to tolik liší od toho jednorozměrného pole, se kterým to umíš?

A proč najednou indexuješ od 1 a kontrolujuješ hodnoty až dodatečně? Jsi to od někoho obšlehl, viď? :-)

gna
Pascal › Příklad v pascalu
10. 5. 2017   #215937

#12 Lolo24
Já to nemám na čem vyzkoušet, ale viděl bych to takhle: 

vykreslit prvni

readln; { pockat na enter }
ClearDvice; { smazat obrazovku }

vykreslit druhy

readln; { pockat na enter }
CloseGraph;
gna
Pascal › Příklad v pascalu
9. 5. 2017   #215933

Když smažeš načítání vstupu a smazání obrazovky, tak to nečeká na vstup a nesmaže obrazovku. Co jiného by to mělo udělat než vykreslit oba grafy hned a přes sebe? To je snad jasné.
(A nevím, jestli clrscr v grafickém režimu maže obrazovku. Spíš bych to viděl na clearviewport, nebo tak něco)

Netuším, co znamená, že to druhou část nepřečte.
Máš tam readln (načtení řádku, tedy všeho do enteru) a readkey (načtení jedné libovolné klávesy). Není možné, že jsi prostě něco z toho nezadala?

gna
Pascal › Příklad v pascalu
9. 5. 2017   #215930

jak mám zapsat výsledek, aby byly desetinné tečky pod sebou?

Zarovnání těch hodnot určují ta čísla za nimi

xs:15:3
ys:12:3
gna
Oracle › ako rozjet vlastnú databázu
8. 5. 2017   #215907

Ne, návodů na Oracle tolik není, protože to není hračka pro děti. Když tam ta data nemáš, tak jsi je nenaimportoval. Netuším co znamená, že se ti to otevře, ale Oracle Database není MySQL. Nainstaluj si MySQL a můžeš jet podle jejich turotiálů.

gna
C / C++ › C++ náhodné generování binár…
6. 5. 2017   #215904

Tak si to prokrokuj, nebo přidej výpisy.

Když jsi vyhodil ten srand, tak by se ti to mělo zanořit a jako count_nodes být x.

gna
Webové servery (Apache, IIS...), .htaccess › HTTPS na HTTP cez .htaccess…
5. 5. 2017   #215901

Když HTTPS přesměruješ na HTTP, které se zase přesměruje na HTTPS, tak si asi nepomůžeš.

Pokud to neumožňují vypnout, tak to nevypneš.

gna
C / C++ › (C++) Prvky pole do společné…
5. 5. 2017   #215896

#3 richard.zavodny
A připadá ti, že by taková věc měla mít problém s pamětí? Zkus si to v čistém programu.

Buď opravdu není volná paměť, což není moc pravděpodobné. Nebo jsi něco rozmrdal, což je mnohem pravděpodobnější, když si pořád hraješ s polema a nechápeš ani základní příkazy.

gna
MS SQL › Převod času na desetinné číslo
5. 5. 2017   #215894

#3 v24
Tak to mě nějak nenapadlo.. v sekci MS SQL :)

gna
Pascal › excel?
5. 5. 2017   #215879

A všimli jste si, že to všechno už Mircosoft napsal, že jo?

Nevím, co řešíte. Python:

import sys, collections, itertools, operator

data = []
for line in sys.stdin:
	data.append([int(i) for i in line.strip().split(",")])

counter = collections.defaultdict(int)
for row in data:
	for comb in itertools.combinations(row, 3):
		counter[comb] += 1

counter = sorted(counter.items(), key=operator.itemgetter(1), reverse=True)
print(counter[:3])
gna
MS SQL › Převod času na desetinné číslo
5. 5. 2017   #215877

   

datediff(second, 0, cas) / 60.0
gna
C / C++ › Funkcia for - oprava dvomi s…
4. 5. 2017   #215874

Pokud ti jde o to, aby to prošlo větším počtem iterací, tak je jedno, na které straně ten interval zvětšíš.

Na to se musíš ptát?

gna
Java › Vzdialenosť vrcholov v strome
4. 5. 2017   #215872

Taky nevím, kde se tam ta čísla berou.

gna
C / C++ › Serializace binárního stromu
4. 5. 2017   #215871

#1 nickan 

ifstream is("in.txt");
if (!is.is_open())
	chyba
if (!(is >> val))
	chyba
is.close();

ofstream os("out.txt");
if (!os.is_open())
	chyba
if (!(os << val << " "))
	chyba
os.close()

Do funkcí ty streamy předávej jako referenci.

gna
C / C++ › Serializace binárního stromu
4. 5. 2017   #215870

#4 Jerry
Je to ten strom, na který odkazuje. A VŮBEC NA TOM NEZÁLEŽÍ.

gna
C / C++ › Čas doby zápisu do souboru
4. 5. 2017   #215868

Když znáš time(), tak vyjeb ten clock(), který neměří uplynulý čas.

Jako ZAČÁTEK vypisuješ výsledek funkce DATUM(), která zjišťuje AKTUÁLNÍ čas a voláš ji na KONCI programu.

gna
PHP › Převod SRT na VTT titulky
4. 5. 2017   #215867

Pomocí preg_replace jde nahrazovat text podle regulárního výrazu.

Takže můžeš jednoduše udělat jakoby:

z  [00:00:08] , [550 --> 00:00:14] , [300]
na [^^^^^^^^] . [^^^^^^^^^^^^^^^^] . [^^^]

Co nejvíc tak, aby to nechytlo i něco jiného, třeba nějak takhle:

$SRT = "00:00:08,550 --> 00:00:14,300\ntady ne 00:00:08,550 --> 00:00:14,300\n\n00:00:08,550 --> 00:00:14,300";
$VTT = preg_replace('/^([\d:]{8}),(\d{3} --> [\d:]{8}),(\d{3})$/m', '$1.$2.$3', $SRT);
echo "WEBVTT\n\n$VTT";

Nebo udělat inteligentnější parser.

gna
Python › hledám programátora
4. 5. 2017   #215865

Už jsem na to předběžně koukal, ale teď na to nemám čas. Možná bude potřeba upravit ten ZBar a to bude náročnější (ale je napsaný hezky, půjde to). Pokud to někde nepřevezme, tak se vám během několika dní ozvu.

gna
C / C++ › Čas doby zápisu do souboru
4. 5. 2017   #215843

A kde v tom jde vyčíst, co přesně děláš?

gna
C / C++ › Úprava jednoduché hry v céčku
3. 5. 2017   #215838

Klávesy W a S jsou od začátku prohozené, protože jsem to napsal špatně. Prohoď to zpátky a nekopíruj, ale studuj.

Všude máš pole[R][S], ale ten zavináč testuješ na [S][R], takže jinde. Taky ho testuješ mimo ten blok pro pohyb, takže dokud budeš na @ tak se ti bude chaos pořád přehazovat.

Pokud neumíš používat krokování, tak si tam prostě přidej nějaké výpisy hodnot.

gna
JavaScript, AJAX, jQuery › JS problem content replace
3. 5. 2017   #215826

V podstatě to nahrazuje poslední "slovo" třemi tečkami dokud se to nevejde do požadované výšky.

Přestalo fungovat a nepomohlo je na hovno. Napiš co přesně to dělá a co je na tom špatně.

gna
Java › Vzdialenosť vrcholov v strome
2. 5. 2017   #215818

Pak bych ty vazby ještě od rootu pročistil ať jsou jednosměrné. Další práce pak bude jednodušší.

gna
Java › Vzdialenosť vrcholov v strome
2. 5. 2017   #215817

Pro každý uzel potřebuješ jeho vazby, takže třeba...

class Node
{
	List<Node> links = new ArrayList<Node>();
	
	public Node() {}
}

Pak je načteš a provážeš...

HashMap<Integer,Node> map = new HashMap<Integer,Node>();

while (sc.hasNext()) {
	int a = ...nextInt
	int b = ...nextInt

	Node nodeA = map.get(a);
	Node nodeB = map.get(b);
	
	if (nodeA == null) { nodeA = new Node(); map.put(a, nodeA); }
	if (nodeB == null) { nodeB = new Node(); map.put(b, nodeB); }
	
	nodeA.links.add(nodeB);
	nodeB.links.add(nodeA);
}
gna
Python › moze mi niekot vysvetlit ako…
2. 5. 2017   #215814

Ta moje verze po každé odpovědi napíše, jestli byla správně něbo špatně. Nevím, jak jsi to předělal.

gna
C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215813

#18 ORION206
Samozřejmě bys to mohl udělat i s tím tvým původním načítáním, že bys testoval hodnotu a/nebo počet těch tokenů a podle toho pokračoval.

gna
C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215812

#18 ORION206
operator>> načítá data ze streamu. operator! testuje stav streamu. příkaz continue přejde na další iteraci cyklu.

Takže když se z toho stringstreamu (řádku) nepodaří načíst těch 7 hodnot (kvůli množství nebo formátu dat), tak se zbytek těla cyklu přeskočí (čte se další řádek).

gna
C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215808

Nebo ještě jednodušeji prostě ignorovat všechno, co není datový řádek. Bez píčovin.

while (std::getline(ifs, line))
{
	std::istringstream ss(line);
	radek soucasnejRadek;

	if (!(ss
	         >> soucasnejRadek.x >> soucasnejRadek.y >> soucasnejRadek.z
	         >> soucasnejRadek.odrazivost
	         >> soucasnejRadek.r >> soucasnejRadek.g >> soucasnejRadek.b))
	{
		continue;
	}

	if (odrazivost[0] <= ...
gna
C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215806

Pokud je na prvním řádku jen jedna hodnota, tak je to počet řádků a chce ho přeskočit.

Je těžké to zapsat do ifu?

gna
C / C++ › Úprava jednoduché hry v céčku
2. 5. 2017   #215779

   

int zmenar = 0, zmenas = 0;

switch(znak) {
  case 'w': zmenar++; break;
  case 's': zmenar--; break;
  case 'd': zmenas++; break;
  case 'a': zmenas--; break;
}

if (chaos) {
  zmenar = -zmenar;
  zmenas = -zmenas;
}

int nover = pozicer + zmenar, noves = pozices + zmenas;

if (nover < 0 || nover >= MAX ||
    noves < 0 || noves >= MAX ||
    pole[nover][noves] == '#') {
  trestnebody++;
} else {
  pozicer = nover;
  pozices = noves;
}
gna
Python › Selenium - zjištění přítomno…
2. 5. 2017   #215778

   

try:
	driver.find...
except NoSuchElementException:
	...nenasel
gna
Python › moze mi niekot vysvetlit ako…
2. 5. 2017   #215777

input vrací textový řetězec, který konvertuju na int. Když v tom řetězci nebude číslo, tak ta konverze hodí chybu.

gna
C / C++ › Úprava jednoduché hry v céčku
2. 5. 2017   #215776

Ten zavináč testuješ mimo ten cyklus a testuješ hodnotu souřadnic místo obsahu pole.

A nepiš stejný kód 8krát, když se liší jen v jednom příkazu.

gna
Python › moze mi niekot vysvetlit ako…
1. 5. 2017   #215771

Na generování pseudonáhoných čísel můžeš použít modul random.

Zbytek už asi zvládneš, není moc co vysvětlovat.

import random

while True:
	a = random.randint(1,9)
	b = random.randint(1,9)
	vysledek = a * b
	spravne = False
	while not spravne:
		odpoved = int(input("%d * %d = " % (a,b)))
		spravne = odpoved == vysledek
		print("spravne" if spravne else "spatne")

Přidej tam ošetření nečíselné odpovědi a možnost ukončení a máš to.

gna
Java › Logika počítače
30. 4. 2017   #215767

Aha, já jsem myslel, že to máš ze školy a k tomuhle jste se nějak dopracovali.

Tak se v tom nejdříve zorientuj a pak bude navíc jen to, že ten tah neudělá hráč, ale program. Jak inteligentně už je na tobě, pro začátek bude stačit ten pseudonáhodný.

gna
Python › Pytho while tru, turtle
30. 4. 2017   #215764

   

while True:
    ...
    if podminka:
        zelva.color(barva)
    ...
gna
Java › Logika počítače
30. 4. 2017   #215763

Pomohl jako, že udělal za tebe? Máš tam všechno, co potřebuješ a zjevně tam není ani řádek od tebe. S čím přesně si nevíš rady?

Tak třeba náhodně vybírej minci a zkoušej ji posunout o náhodný počet polí, dokud nenajdeš platný tah. Random.nextInt

gna
Pascal › Program padá po spustení .ex…
27. 4. 2017   #215738

Na CD nejde normálně zapisovat.

gna
Pascal › Program padá po spustení .ex…
26. 4. 2017   #215735

Takže asi nekontroluješ, jestli se ten soubor podařilo otevřít. A nepovede se to asi proto, že se ho to pokouší otevřít i pro zápis.  

{$I-}
Assign(F, Name);
FileMode := fmOpenRead;
Reset(F);
{$I+}
if IOResult <> 0 then chyba...
gna
Pascal › Program padá po spustení .ex…
26. 4. 2017   #215732

Tak asi někde něco nekontroluješ a sletí to.

Typicky se runtime chyby vypisují na standardní výstup, takže když konzolovou aplikaci spustíš z konzole (příkazového řádku), aby se ti po skončení programu hned nezavřela, tak bys tam mohl něco vidět.

gna
Java › Java FX prosím o pomoc
26. 4. 2017   #215730

Když to přidáš do kódu, který máš u minulého dotazu, tak to bude vypadat nějak takhle:

...
public void aktualizujLabel() {
    LocalDate datum = zadavacDatumu.getValue();
    long pocet = getDaysToBirthDay(datum);
    label.setText("Narozky za: " + pocet);
}

private static long getDaysToBirthDay(LocalDate birthday) {
    ...
}
...
gna
Java › Java FX prosím o pomoc
26. 4. 2017   #215727

No někam si tam hoď tu funkci a pak ji použij, kde potřebuješ.

pocet = getDaysToBirthDay(datum);
gna
Java › Java FX prosím o pomoc
26. 4. 2017   #215719

V předchozím dotazu už nastavování textu Labelu máš. S čím si nevíš rady?

label.setText(...)

gna
MySQL › UPDATE SET - Aktualizace záz…
25. 4. 2017   #215701

   

UPDATE tabulka T1 
       JOIN tabulka T2 
         ON T1.opakovani_vliv = T2.id 
SET    T1.jmeno = T2.jmeno 
WHERE  T1.opakovani = 'ANO' 
       AND T2.opakovani = 'NE'; 
gna
Příkazový řádek › BASH shell: Jak změnit název…
21. 4. 2017   #215684

   

[[ $name == *text* ]] && name=$name.txt
gna
Python › Python třídění podle QR
17. 4. 2017   #215654

Děkuji, ale to není potřeba. Možná až budete mít někdy něco většího.

gna
Python › Python třídění podle QR
17. 4. 2017   #215652

   

a.png   -> 1\a.png       # kod 1
b.png   -> 2\b.png       # kod 2
cd.png  -> 3\cd.png      # kody 3,4
        -> 4\cd.png
efg.png -> 5\efg.png     # kody 5,6,7
        -> 6\efg.png
        -> 7\efg.png
a.png   -> 1\a (1).png   # kod 1
a.png   -> 1\a (2).png   # kod 1
gna
Python › Python třídění podle QR
17. 4. 2017   #215650

Takže takhle? 

import subprocess, os, re, locale, glob, shutil

encoding = locale.getdefaultlocale()[1]
zbarimg = "zbarimg"

def get_codes(filename):
	try:
		output = subprocess.check_output([zbarimg, "-q", filename])
		lines = output.strip().split(b'\n')
		lines = [line.decode(encoding) for line in lines]
		codes = [line.split(':',1)[1].strip() for line in lines]
		return codes if len(codes) else ["unreadable_code"]
	except:
		return ["unreadable_code"]

def make_path(code, filename):
	safecode = re.sub("[:/\\\\]", "_", code)
	fullpath = os.path.join(safecode, filename)

	if os.path.exists(fullpath):
		dirname = os.path.dirname(fullpath)
		filename,fileext = os.path.splitext(os.path.basename(fullpath))

		i = 0
		while os.path.exists(fullpath):
			i += 1
			fullpath = os.path.join(dirname, "%s (%d)%s" % (filename, i, fileext))

	return fullpath

image_files = glob.glob('*.JPG') + glob.glob('*.png')
print(image_files)

for image in image_files:
	print("======")
	print("file:", image)
	codes = get_codes(image)
	for code in codes:
		print("code:", code)
		dest = make_path(code, image)
		print("dest:", dest)
		os.makedirs(os.path.dirname(dest), exist_ok=True)
		shutil.copyfile(image, dest)
	os.remove(image)
gna
Python › Python třídění podle QR
17. 4. 2017   #215647

Tak nějak by to mělo fungovat.

Podle kódu to vytvoří složku a do ní přesune ten obrázek. Když je kódů víc než jeden, tak to vytváří podsložky. A pokud cílový soubor už existuje, tak se do názvu přidá unikátní číslo.

a.png   -> 1\a.png       # kod 1
b.png   -> 2\b.png       # kod 2
cd.png  -> 3\4\cd.png    # kody 3,4
efg.png -> 5\6\7\efg.png # kody 5,6,7
a.png   -> 1\a (1).png   # kod 1
a.png   -> 1\a (2).png   # kod 1
gna
.NET › Visual Basic
17. 4. 2017   #215644

Když v půlce dubna nedáš ani tu devítku (J = J * 2), tak nepotřebuješ poradit, ale prostě na to kašleš. Na vysvětlování všeho od začátku, nebo dělání cizích úkolů musí být sakra správná nálada.

Zkus sekci Inzerce a nabídnout odměnu.

gna
Python › Python třídění podle QR
17. 4. 2017   #215642

Do toho zbarimg si zase dej tu cestu k programu jak byla.

gna
Python › Python třídění podle QR
17. 4. 2017   #215641

   

import subprocess
import os
import re
import locale
import glob

encoding = locale.getdefaultlocale()[1]
zbarimg = "zbarimg"

def get_codes(filename):
	try:
		output = subprocess.check_output([zbarimg, "-q", filename])
		lines = output.strip().split(b'\n')
		lines = [line.decode(encoding) for line in lines]
		codes = [line.split(':',1)[1].strip() for line in lines]
		return codes if len(codes) else ["unreadable_code"]
	except:
		return ["unreadable_code"]

def make_path(codes, filename):
	safe_codes = [re.sub("[:/\\\\]", "_", code) for code in codes]
	fullpath = os.path.join(*safe_codes, filename)

	if os.path.exists(fullpath):
		dirname = os.path.dirname(fullpath)
		filename,fileext = os.path.splitext(os.path.basename(fullpath))

		i = 0
		while os.path.exists(fullpath):
			i += 1
			fullpath = os.path.join(dirname, "%s (%d)%s" % (filename, i, fileext))

	return fullpath

image_files = glob.glob('*.JPG') + glob.glob('*.png')
print(image_files)

for image in image_files:
	print("======")
	print("file:", image)
	codes = get_codes(image)
	print("codes:", codes)
	dest = make_path(codes, image)
	print("dest:", dest)
	os.makedirs(os.path.dirname(dest), exist_ok=True)
	os.rename(image, dest)
gna
C / C++ › ARP scanner pomocí raw BSD s…
17. 4. 2017   #215639

htons(ETH_P_ALL)

gna
C / C++ › ARP scanner pomocí raw BSD s…
17. 4. 2017   #215638

Řekl bych, že to vidíš dvakrát, protože ten odeslaný broadcast pak přijde i tobě.

Při vytváření socketu dej ETH_P_ALL nebo ETH_P_ARP místo IPPROTO_RAW.

gna
C / C++ › [VS 2015 C++] Resource Manag…
16. 4. 2017   #215628

To je C++/CLI. Jestli to chceš psát v .NETu, tak použij C#. A na takovou ptákovinu přece nepotřebuješ resources.

gna
MS SQL › Založení nového uživatele a…
16. 4. 2017   #215626

A jakou chybu?

Nevím proč ti nefunguje přidání do PATH, ale ještě se můžeš do toho adresáře přesunout:

> cd "C:\Program Files\MySQL\MySQL Server 5.7\bin\"
> mysql ...

Nebo to spouštět s celou cestou: 

"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" ...
gna
MS SQL › Založení nového uživatele a…
15. 4. 2017   #215620

Jo, ty chceš teprve psát ten příkaz pro spuštění? Ten napiš do příkazového řádku, nebo run dialogu, nebo parametrů zástupce, nebo kamkoliv jdou ty parametry zadat.

gna
MS SQL › Založení nového uživatele a…
15. 4. 2017   #215619

Těmi parametry říkáš, že se chceš připojit jako uživatel Kačka a na heslo, že se to má zeptat. Tak se to na něj ptá.

gna
MS SQL › Založení nového uživatele a…
15. 4. 2017   #215616

mysql -u Kačka -p

že ono mi to na začátku ani nenabídne se přihlásit na jiného uživatele

A to -u Kačka je tam asi na co?

gna
C / C++ › C - math.h (Unix) : kde jsou…
15. 4. 2017   #215611

A tuhle chybu by mělo vyřešit přesunutí libek (-l...) na konec.

gna
C / C++ › C - math.h (Unix) : kde jsou…
15. 4. 2017   #215610

Pokud ti to nehlásí chybu při kompilaci (implicitní deklarace), tak tu deklaraci naincludovanou máš.

gna
C / C++ › Načtení konkrétních dat ze s…
12. 4. 2017   #215575

Píšeš, že ho máš u exáče. Ten bývá v podadresáři projektu (nejspíš Debug).

Pokud zadáváš celou cestu, tak nezapoměň zdvojit zpětná lomítka.

gna
PHP › if pre obsah poľa
12. 4. 2017   #215574

Není k tomu potřeba nic, co bys tam už neměl... 

if(isset($_POST['odoslat'], $_POST['username'], $_POST['password'])) {
  //odkud jsi tu silenost opsal?
  $username = mysqli_real_escape_string($con, $_POST['username']);
  $username = trim( $username );
  $username = htmlspecialchars( $username, ENT_QUOTES );
   
  $password = mysqli_real_escape_string($con, $_POST['password']);
  $password = trim( $password );
  $password = htmlspecialchars( $password, ENT_QUOTES );  

  //takove skladani sql je na prd
  //kazdopadne muzes vsechny potrebne sloupce nacist najednou
  $query = mysqli_query($con,"SELECT `id`, `activated`, `privileges` FROM `user` WHERE `username`='$username' AND `password`='".sha1($front_salt.$password.$back_salt)."'") or die (mysqli_error($con));

  if(mysqli_num_rows($query) == 0){
    echo $lang['ECHO_BAD_COMBINATION'];
  }else{
    $user = mysqli_fetch_assoc($query);

    if($user['activated'] == 0){
      echo $lang['ECHO_NOT_ACTIVATED'];
    }else{
      $_SESSION['uid'] = $user['id'];

      if ($user['privileges'] == 'admin') {
        header("Location: administration.php");
      } else {
        header("Location: game/main.php");
      }

      //taky hruza
      $t = file_get_contents("game/logs/prihlasenia.txt");
      $today = date("Y-m-d H:i:s");
      $t .= $today." Používateľ ".$username." "."sa prihlásil!"."\r\n";
      file_put_contents("game/logs/prihlasenia.txt",$t);
    }       
  }
}
gna
C / C++ › Načtení konkrétních dat ze s…
12. 4. 2017   #215572

Zjevně jsi s C++ teprve začal, tak v práci řekni, že ještě několik měsíců nic slušného nevyplodíš.

Chybějící PDB systémových knihoven jsou v pořádku.

Pracovní adresář programu ve VS je adresář projektu. Můžeš to změnit v nastavení, nebo ten soubor přesunout, nebo program spustit mimo VS.

gna
C / C++ › C++ malý script
12. 4. 2017   #215568

#3 pacient
No, tak to ještě budeš muset vysvětlit, co podle tebe jako je "syntaktický příkaz" a to "převzetí plochy".

gna
C / C++ › Načtení konkrétních dat ze s…
12. 4. 2017   #215566

   

int linesize = 10, firstline = 234, linecount = 5;

std::ifstream is("test.txt", std::ifstream::binary);

if (!is.seekg(firstline * linesize))
	jetorozbity;

char linedata[linesize];

for (int i = 0; is && i < linecount; ++i)
{
	if (!is.read(linedata, linesize))
		jetorozbity;
	...
}
gna
C / C++ › Načtení konkrétních dat ze s…
12. 4. 2017   #215565

Můžu, ale nevím, které části nerozumíš.

soubor.seekg(cisloradku * delkaradku);
gna
C / C++ › Načtení konkrétních dat ze s…
12. 4. 2017   #215563

Pokud mají ty řádky všechny stejnou délku, tak můžeš použít istream::seekg pro posun na požadovanou pozici. Jinak prostě ten soubor musíš projít.

gna
C / C++ › Potřebuju poradit
10. 4. 2017   #215540

JJ, to mi ujelo. Ne "při kladném", ale "při sudém."

gna
Python › Python obrázek
9. 4. 2017   #215534

Potřebuješ ho opravdu vytvořit? Nebylo by lepší načíst externí obrázek ze souboru?

gna
C / C++ › Potřebuju poradit
9. 4. 2017   #215532

Ale jo. S čim si nevíš rady?

Aritmetický průměr je součet vydělený počtem.

Takže si uděláš proměnnou pro součet a pro počet.
Pak budeš načítat/procházet ta čísla a při kladném čísle ho přičteš k součtu a inkrementuješ počet.
Nakonec teda máš celkový součet a počet a vydělíš to.

Někde poblíž je podobný dotaz...

gna
MS SQL › Pomoc s kodem
9. 4. 2017   #215531

#1 Shockwave

1. co se děje na prvním řádku, to SUM  , COUNT

SUM vrací součet hodnot, COUNT vrací počet hodnot. 

select * from t;
a | b
--+--
0 | 1
0 | 1
1 | 1
1 | 2
2 | 3
2 | 4

select count(a), sum(b) from t;
count(a) | sum(b)
---------+-------
6        | 12

2. group by o.partnum - to bude asi řazení do skupin podle partnum v tabulce o, že

Ano, podle té hodnoty se záznamy seskupí. Agregační funkce pak pracují s těmi skupinami. 

select a, count(a), sum(b) from t group by a;
a | count(a) | sum(b)
--+----------+-------
0 | 2        | 2
1 | 2        | 3
2 | 2        | 7

3. ale pak už se v tom uplně ztrácím, co se děje na řádku HAVING

HAVING určuje podmínku, podlé které se to filtruje. Jakoby WHERE pro agregace. 

select a, count(a), sum(b) from t group by a having sum(b) > 2;
a | count(a) | sum(b)
--+----------+-------
1 | 2        | 3
2 | 2        | 7

Tady se chce, aby ta suma byla větší než nějaká hodnota -- hodnota zjištěná poddotazem.

4. proč si najednou označili o1  p1

Je to korelovaný poddotaz, tzn. že
- se spouští pro každý záznam vnějšího dotazu
- používá hodnotu z vnějšího dotazu

Takže se asi docela hodí, když ty názvy nekolidují, že?

a proč a na posledním řádku je podmínka

WHERE p1.partnum=o1.partnum

Podle toho se ti ty tabulky sloučí.

AND  p1.partnum=o.partnum

A podle toho se ti vybere to co hledáš -- pro ten vnější záznam.

tohle už nikde nikdo neřeší

Co na tom nechápeš?

Myslím si, že učebnice za 800, zvláště pro začátečníka by mohla být popsána podrobněji.

Myslím si, že to tam všechno je. Pořád se ptáš na primitivní věci, základy. Tak se prostě vrať kousek zpátky. Bude hůř :-)

gna
Python › Čtení stdin včetně CRLF
4. 4. 2017   #215470

sys.stdin.buffer. Aby ti to fungovalo stejně, jako máš teď čtení ze souboru, tak asi takhle:

if filename:
        with open(filename, mode = "rb") as f:
                raw = f.read()
else:
        raw = sys.stdin.buffer.read()

text = raw.decode("utf-8")
gna
C / C++ › Domaca_uloha
4. 4. 2017   #215469

#7 ivan18
Máš udělat tu hru, tak jak je na té stránce popsaná.

gna
Python › Vyhledávání rekurzně ze stro…
3. 4. 2017   #215437

To nalezeno se ti nastavuje jen v tom nodu, kde se najde. Nevidim duvod ten vysledek nekde v tom strome drzet -- nech to "probublat nahoru".

''' mas to cele spatne :-) '''
def porovnej(self, hodnota):
    if self.node != None:
        klic = self.node.key
        nazev = self.node.nazev
    
        if klic == hodnota:
            print("Nalezena shoda: " + str(klic) + " = " + str(hodnota))
            return True # <---
            
        if klic > hodnota:
            print("Pruchod")
            return self.node.left.porovnej(hodnota) # <---
            
        if klic < hodnota:
            print("Pruchod")
            return self.node.right.porovnej(hodnota) # <---

    return False # <---

...
vysledek = inst.porovnej(...)
gna
MS SQL › Dotaz na syntaxi
30. 3. 2017   #215398

Všechny sloupce.

gna
MS SQL › Chybějící data v tabulce
29. 3. 2017   #215382

Jaké neúplné údaje? U každého letu máš kód letadla, podle kterého záznamy seskupíš a dobu letu, kterou sečteš.

Jen to joineš s těmi letadly a omezíš to podle těch sedadel a nalítaných hodin (a možná i data letu).

gna
Python › Nahrazení slova jiným slovem
27. 3. 2017   #215332

Ten řetězec je správně, takhle ho jen zobrazí interaktivní Python. Když ho dáš do printu, tak by měl být správně.

>>> time.strftime("%A")
'pond\xecl\xed'
>>> print time.strftime("%A")
pondělí

PS: Hned jsem nepostřehl, že používáš Python 2. Raději to k dotazům vždy piš.

gna
Python › Nahrazení slova jiným slovem
26. 3. 2017   #215315

Záleží na tom, co s tím datem chceš dělat. V tomhle případě by mělo stačit místo LC_TIME nastavit LC_ALL.

gna
Python › Nahrazení slova jiným slovem
26. 3. 2017   #215311

 Time respektuje locale (místní nastavení)

>>> import time, locale
>>> time.strftime("%A")
'Sunday'
>>> locale.setlocale(locale.LC_TIME, "cs_CZ.utf8")
'cs_CZ.utf8'
>>> time.strftime("%A")
'Neděle'

Pozor na to, že to je systémová záležitost. Nenastavíš locale na něco, co systém nezná (nemá nainstalované).
Taky se ten název locale může lišit. (Asi jen Windows nedodržuje tento formát. Mělo by tam fungovat třeba "czech"). Pokud zadáš prázdný řetězec, tak se použije systémové locale (respektive to, se kterým byl program spuštěn).

gna
MS SQL › Vhodné SQL řešení - doporučí…
23. 3. 2017   #215299

#2 Repík D.
Pokud máte toto zapotřebí, tak za mě - nedoporučuji.

gna
Příkazový řádek › Vypnutí PC v síti
23. 3. 2017   #215298

#14 Tom
A ty si děláš srandu?

gna
Python › Smycka v Tkintru
16. 3. 2017   #215249

Nevím na co se ptáš. Jak to skrytí udělat?

canvas.create_neco(..., tags=<tag>)
...
canvas.itemconfig(<tag>, state="hidden") # normal, disabled, hidden
gna
JavaScript, AJAX, jQuery › Forever
13. 3. 2017   #215237

Nevím, co myslíš tím "zapisovat věci a aby se to projevovalo".

Výstup té aplikace je přesměrovaný do toho logu, takže její standardní výstup půjde do něj.

Pokud chceš do toho logu něco přidávat z jiné aplikace, tak jakoukolí funkcí pro zápis do souboru. Nebo pomocí shellu přesměrovat její výstup, tak jak píše peter. Jen bych teda použil přidávání na konec (místo > bude >>). Akorát pak ten log může být rozsypaný, když do něj zapisují dva programy.

gna
Python › Smycka v Tkintru
11. 3. 2017   #215216

V Tkinteru jde naplánovat spuštění funkce pomocí after(). Pokud je to samotné měření blokující a pomalé, možeš ho spustit v samostatném vlákně. Předávání dat se pak typicky řeší přes frontu. Může to vypadat nějak takhle:

import threading, Queue

queue = Queue.Queue()                                                           
                                                                                
def update():                                                                   
	while queue.qsize():                                                    
		i = queue.get(0)                                                
		print("get %d" % i)                                             
	hlavni.after(100, update)                                               
                                                                                
def worker():                                                                   
	for i in range(20):                                                     
		time.sleep(1)                                                   
		print("put %d" % i)                                             
		queue.put(i)                                                    
                                                                                
def start():                                                                    
	hlavni.after(100, update)                                               
	t = threading.Thread(target=worker)                                     
	t.daemon = True                                                         
	t.start()
gna
C / C++ › Čo má byť v zátvorkách? nejd…
10. 3. 2017   #215213

V k.c dej ty parametry stejně stejně jako jsou v k.h.

 

 

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