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
C / C++ › Jak otevřít soubor v C++ a n…
před 16 hodinami   #217576

Nemaž příspěvky. Vypadám, že se bavím sám se sebou :D

gna
C / C++ › Jak otevřít soubor v C++ a n…
před 16 hodinami   #217575

K tomu dalšímu -- C++ umí regulární výrazy až od C++11, pro starší verze budeš potřebovat externí knihovnu.

Pro to nahrazování budeš muset načíst celý obsah souboru do paměti a po úpravách ho zase celý zapsat, nebo postupně z jednoho souboru číst a do jiného zapisovat. (Kdybys to chtěl dělat postupně nad jedním souborem, tak bys musel různě posunovat následující data a to by bylo na zbláznění.)

gna
C / C++ › Jak otevřít soubor v C++ a n…
před 16 hodinami   #217574

Vyhoď ten open, ten konstruktor to otevře.

Nebo použij konstruktor bez parametru a otevře to až open.

gna
C / C++ › OpenGL - Snímání obrazovky
před 16 hodinami   #217573

#3 JerryM
Myslím si, že kdyby do programu v OpenGL chtěl přidat ukládání obsahu svého okna, tak by dotaz formuloval hodně jinak. Ale jinak jo, třeba tohle by do toho cizího procesu mohl injektovat.

gna
C / C++ › Jak otevřít soubor v C++ a n…
před 17 hodinami   #217571

Pokud nejsi v tom adresáři, který čteš, tak při před název souboru musíš přidat cestu.

Ten soubor otevíráš dvakrát (konstruktor a open), takže se nastaví failbit a neprojde good.

gna
.NET › Slova pozpátku
Včera   #217564

Jop, to čtení odzadu by asi bylo lepší.

gna
PHP › Javascript v IE a EDGE
Včera   #217563

#12 peter
Už jsem myslel, že dementní nesouvisející příhoda nebude :)

Z těch výpisů je jasné, že to je string nebo něco, co vrací string jako svoji hodnotu. Nic tam není vidět, ale konverze neprojde, tak by tam mohly být neviditelné znaky. Jako třeba to LRM, kdyby ta funkce intlDate.format čistě náhodou byla něco jako Intl.DateTimeFormat.format, která ho tam jen v IE mívá...

gna
.NET › Slova pozpátku
Včera   #217559

Kdbyby šlo jen o to nějak to vyplodit, tak je to na jeden řádek.

string veta = "Zase jsme vyhráli, tentokrát těsně.";
string pozpatku = string.Join("", Regex.Matches(veta, @"\w+|\W+").Cast<Match>().Reverse());

Ale o to pravděpodobně v návaznosti na předchozí úkol nejde. Asi to máš po znacích projít a rozlišit slova a interpunkci.

string token;
List<string> casti = new List<string>();
for (int i = 0; i < veta.Length; )
{
	for (token = ""; i < veta.Length && Char.IsLetter(veta[i]); i++)
		token += veta[i];
	if (token != "")
		casti.Add(token);
	for (token = ""; i < veta.Length && !Char.IsLetter(veta[i]); i++)
		token += veta[i];
	if (token != "")
		casti.Add(token);
}
casti.Reverse();
string pozpatku = string.Join("", casti);

Předpokládám, že to uděláš inteligentněji.

gna
C / C++ › OpenGL - Snímání obrazovky
Včera   #217541

Fraps a další fungují tak, že do procesu injektují vlastní kód a hookují vykreslovací funkce. Dnes je populární OBS, které je open source, tak se na to můžeš podívat. Jednoduchý multiplatformní způsob není.

gna
C / C++ › Kde mám stáhnout Qt ?
Včera   #217540
gna
PHP › Javascript v IE a EDGE
17. 8. 2017   #217528

   

>> a = new Intl.DateTimeFormat().format(new Date());
"8/17/2017"
>> a.replace(/(.)/g, "$1,");
",8,,/,,1,7,,/,,2,0,1,7,"
>> a.replace(/./g, val => val.charCodeAt(0) + ",");
"8206,56,8206,47,8206,49,55,8206,47,8206,50,48,49,55,"
gna
PHP › Javascript v IE a EDGE
16. 8. 2017   #217520

Pokud jsou to stringy, tak by to mělo fungovat. (špatně) 

var rozdel = "8:30".split(":");
var vysledek = rozdel[0] + (rozdel[1]/60);
// "8" + ("30"/60) => "8" + 0.5 => "80.5"

Nenapadá mě, jak by to zobrazovalo všechny hodnoty správně a padlo to až na tom výpočtu, ale problém bych hledal v té šílenosti s datem před tím.

gna
Pascal › exitcode 255 ve Freepascalu
16. 8. 2017   #217514

Myslím, že bývá vidět, kde k té chybě došlo.

Pravděpodobně neplatný index.

gna
HTML / XHTML › IMAGE ZOOM + MAP AREA
12. 8. 2017   #217441

#4 Jerry
Jo, něco takového myslí a neví, jak mapu zoomovat spolu s obrázkem. Napsal to hned na začátku.   

gna
.NET › Custom where method
12. 8. 2017   #217435

Kolekce nad polem už existuje. Jmenuje se ArrayList. Prvky se procházejí normálním forem (nebo se vytváří Enumerator) jen do využité velikosti. [zdroják]

Enumerable jen vytváří Enumerator, který vrací prvky po jednom. Standardní Where pro Enumerable, tak načítá jednotlivé prvky a testuje je zadanou funkcí (predikátem).

Nechápu o co se snažíš :)

gna
Python › Název souboru jako proměnná
10. 8. 2017   #217407

Ten SyntaxError je proto, že mi tam chybí jedno +.

Problém s textem nechápu. Předpokládal jsem, že tam máš nějaké proměnné s číselnými hodnotami, se kterými nějak pracuješ. Z těch pak vygeneruješ název souboru jako string:

a = 45
b = 0.5
c = 0.52
d = 20
e = 0.51
f = 0.2
filename = "{}, {}, {}, {}, {}, {}.png".format(a,b,c,d,e,f)
...
im.save(folder + "/" + filename)
gna
C / C++ › čas v c++
10. 8. 2017   #217398

Tak si do toho cyklu dej. V čem je problém? Mimochodem clock nevrací reálný čas.

time_t start = time(NULL);
time_t end = start + 5;
for (time_t now = time(NULL); now < end; now = time(NULL))
{
	cout << "uplynulo " << now - start << "s, zbyva " << end - now << "s" << endl;
}
gna
Python › Název souboru jako proměnná
9. 8. 2017   #217394

Ty si tam samozřejmě nedáš takhle čísla, ale ty proměnné, ve kterých je máš.

gna
Python › Název souboru jako proměnná
9. 8. 2017   #217393

Obecně jde čísla převádět na stringy funkcí str, takže si ten název můžeš poskládat.

fname = str(1) + ", " str(2) + ".png"

Další možnost je funce str.format, která formátovací značky v řetězci nahradí hodnotami.

fname = "{}, {}.png".format(1, 2)
gna
C / C++ › nastavení pointeru
8. 8. 2017   #217373

Když k ukazateli na strukturu přičteš její velikost, tak dostaneš ukazatel ukazující ZA tu strukturu, ne někam dovnitř. Zároveň nedostaneš ukazatel posunutý o X bajtů, ale o X těch struktur. (jako X * sizeof).

V té funkci máš TABLES * table_types, takže ten sizeof ti bude pořád vracet sizeof TABLES. Až to opravíš podle toho, co tam opravdu dáváš (pole ukazatelů na TABLE_), tak z toho velikost těch polí zase nedostaneš. A zdá se, že to ani nepotřebuješ.

K členům struktury se dostaneš tak jako vždycky "vnořením" do ní.

TABLES t, *p;
sizeof(t.radiation_radiation)
sizeof(p->radiation_radiation)

Jinak je na zjištění offsetu makro offsetof.

offsetof(TABLES, radiation_radiation)

Ale určitě to nepotřebuješ a jen na to zase jdeš nesmyslně složitě. Kdyby bylo jasnější o co se pokoušíš, tak by se dalo radit více.

gna
C / C++ › Pointer na char array
6. 8. 2017   #217336

Takhle je jen to 's' ukazatel na char. Zbytek je char. Je potřeba přidat hvězdičku i k těm dalším proměnným.

char *s, *pEnd, *pStart...
gna
C / C++ › Vymazání bitů
6. 8. 2017   #217329

Máš tam logický and (&&), chceš bitový (&).

gna
C / C++ › unsigned char
6. 8. 2017   #217323

Všechny základní číselné typy jsou znaménkové. char je -128 .. 127. unsigned char je 0 .. 255.

Jestli s tím polem chceš různě operovat jako s textovým řetězcem i jako s polem bajtů, tak to můžeš podle potřeby vždycky přetypovat (pořád jsou to jen data v paměti, jen říkáš jak je interpretovat). Pokud to má být jen textový řetězec, tak prostě vyhoď to unsigned.

gna
Python › C++ >> Python
5. 8. 2017   #217311

Nebylo by od věci napsat datové typy architekturu. Nebo aspoň, co je to za algoritmus.

gna
JavaScript, AJAX, jQuery › algoritmus zapis pozic co ne…
3. 8. 2017   #217298

Takže máš 255 různých čísel v rozsahu 0-254 a nějak tě napadlo, že to zhustíš na 2/3? :)

Takhle ušetříš jen pár (desítek) bajtů. Můžeš zvětšit ten blok tak, aby tam bylo dostatek opakovaných sekvencí pro klasickou kompresi, nebo data analyzovat a mít několik kódování pro různé typy sekvencí (řada hodnot s deltou na X bitů a tak).

gna
Python › python program
1. 8. 2017   #217277

V názvu té první funkce ti chybí i - __init__

gna
C / C++ › Dá se bitový posun použít na…
1. 8. 2017   #217276

#14 Radek Chalupa

Nevím co je to "příkaz v readfiles",

To by mohl být ten příkaz v té funkci hned na tím.

ale operátor sizeof použitý na jakýkoliv ukazatel ti vrátí...

To už mu hlucheucho napsal.

...dostaneš různé hodnoty právě podle sestavení aplikace, takže asi proto ty různé hodnoty.

Nebo proto, že je to někde pole a jinde jen ten ukazatel?

Hlavně nezapomenout reklamu, snad aspoň plní účel.

gna
C / C++ › Jak rozjet funkci na export…
28. 7. 2017   #217245

   

foreach (double (*soe)[10], DaysEarthSun) {
	... (*soe)[0]
}
gna
Python › android linux python
28. 7. 2017   #217240

No ten TkInter je právě jen na vytváření grafického rozhraní - okna, tlačítka a tak. V těch linuxových apkách by i TkInter měl fungovat.

gna
Python › android linux python
28. 7. 2017   #217229

TkInter pro Android není a asi nikdy nebude. Na učení Pythonu nemusíš tvořit grafické aplikace, ale pokud hodně chceš, tak můžeš zkusit třeba Kivy.

Úplně nahradit Android nějakou klasickou linuxovou distribucí by teoreticky šlo, ale rozhodně bych to nedělal, pokud přesně nevíš, co děláš. Na těch aplikacích jako Debian noroot, Linux Deploy, atd. není nic špatného, nejsou to jen napodobeniny, ale reálný userspace.

gna
C / C++ › Dokončování programu - neprá…
26. 7. 2017   #217216

   

&i
gna
C / C++ › Jak dostat data z csv do C h…
26. 7. 2017   #217214

To makro překvapivě funguje jako makro. Tam kde ho napíšeš je to jako bys napsal jeho obsah. Nevím k čemu by ti to tady bylo. Normálně z toho udělej to pole, jak psal Milouš.

gna
C / C++ › Dokončování programu - neprá…
25. 7. 2017   #217195

Ten stupeň bude tím kódováním, ale ve zbytku máš prostě rozbité stringy. Asi jsi dovrtal ten sprintf z předchozího dotazu.

gna
JavaScript, AJAX, jQuery › progresbar xml
24. 7. 2017   #217165
gna
JavaScript, AJAX, jQuery › progresbar xml
24. 7. 2017   #217164

#2 peter
Ptal se na animaci.

gna
C / C++ › Pole a struktury?
22. 7. 2017   #217142

#3 KIIV
To mě napadlo, ale na čemkoliv rozůmném by tady k zarovnávání nemělo dojít.

gna
C / C++ › Pole a struktury?
22. 7. 2017   #217140

Pole struktur není problém a samotný ukazatel je jen adresa a můžeš si ho přetypovávat jak potřebuješ.

Ten hw, nebo překladač může mít nějaká specifika, ale v principu by to vždycky mělo jít. 

struct {
	byte a, b, c;
} pole[5];

pole[3].c = ...;

... (byte*) &pole ...
gna
PHP › SimpleXML zobrazení atributů
19. 7. 2017   #217113

Kdyby se to zobrazovalo samo, tak bych ti neradil atributy vytahovat sám.

function rdump($root, $level=0)
{
	foreach ($root as $k => $v) {
		echo str_repeat(" ", $level) . "$k " . trim($v) . "\n";
		rdump($v->attributes(), $level + 2);
		rdump($v, $level + 4);
	}
}

rdump($detail);
gna
C / C++ › Ukazatele v C?
19. 7. 2017   #217109

Protože to je jen ukazatel. Ještě musí někam ukazovat, než přes něj budeš přistupovat k datům.

unsigned char *data = neco;
gna
C / C++ › Prázdná podmínka if(true)?
19. 7. 2017   #217107

Instance se inicializuje v místě definice a ruší na konci bloku, ve kterém je definovaná.

Někdy se takhle kód dává do bloku právě pro to omezení platnosti/viditelnosti. A aby tam ten blok jen tak nevisel, tak ještě třeba do toho ifu.

Jinak máš pravdu, takhle jak to je, to tam je k ničemu.

gna
PHP › SimpleXML zobrazení atributů
19. 7. 2017   #217105

Teď mi došlo, že to asi nechceš jen dumpnout. Pak je teda ještě možnost element[atribut].

gna
PHP › SimpleXML zobrazení atributů
19. 7. 2017   #217103
gna
Assembler › inline ASM ve VS - Jumptable
19. 7. 2017   #217099

Dělení intervalu i jump table překladač umí a podle efektivity použije. MSC je špičkový překladač a všechno, co tě napadne, už hodně chytří lidé řešili před tebou :)

Dneska jde hlavně o předvídatelnost a paralelizovatelnost kódu a data v cache. Bez toho jsou dnešní rychlé procesory ve skutečnosti trapně pomalé. Takže algoritmy a struktury. Tady nic moc nevymyslíš.

gna
Assembler › inline ASM ve VS - Jumptable
18. 7. 2017   #217094

V inline assembleru ve VC nejde použít DW a spol.

Nebude to rychlejší, klidně to napiš v céčku.

gna
C / C++ › WinApi - Nastavení kořenovéh…
17. 7. 2017   #217087

Ale nevím, jestli se použije i pro vyhledání toho exáče, asi budeš muset celou cestu.

gna
C / C++ › WinApi - Nastavení kořenovéh…
16. 7. 2017   #217086

8. parametr - lpCurrentDirectory.

gna
XML / XSL(T) › TinyXML2 jak na extrahování…
15. 7. 2017   #217077

Mimochodem Firebird nedrží celou databázi v paměti a už vůbec ne jakési výstupní soubory. I kdyby ano, tak nevím, jak ti od toho pomůže import/export XML, (které stejně při velkém počtu záznamů bude větší), když nakonec pořád pracuješ s tou databází.

Jako přenositelný formát fajn, cokoliv jiného je nesmysl.

gna
XML / XSL(T) › TinyXML2 jak na extrahování…
15. 7. 2017   #217076

   

int data[2][2] = { {1,2}, {3,4} };

XMLDocument doc;
XMLElement *table, *row, *cell;

table = doc.NewElement("tabulka");
doc.InsertFirstChild(table);

for (int r = 0; r < 2; r++) {
	row = doc.NewElement("radek");
	table->InsertEndChild(row);

	for (int c = 0; c < 2; c++) {
		cell = doc.NewElement("bunka");
		cell->SetText(data[r][c]);
		row->InsertEndChild(cell);
	}
}

doc.SaveFile("test.xml");

table = doc.FirstChildElement();
for (row = table->FirstChildElement(); row; row = row->NextSiblingElement()) {
	for (cell = row->FirstChildElement(); cell; cell = cell->NextSiblingElement())
		cout << cell->GetText() << " ";
	cout << endl;
}
<tabulka>
    <radek>
        <bunka>1</bunka>
        <bunka>2</bunka>
    </radek>
    <radek>
        <bunka>3</bunka>
        <bunka>4</bunka>
    </radek>
</tabulka>
gna
C / C++ › Ako prepisať for cyklus aby…
13. 7. 2017   #217061

#3 Melamber777
Nic se neoznačuje samo sebou (WTF?) a k ničemu nepotřebuje další proměnnou a už vůbec ne ukazatele.

gna
Python › Flask - Spouštění procesů, s…
11. 7. 2017   #217033

Každý proces bude mít vlastní roury a každá roura vlastní buffer. To je v pohodě. Communicate načte všechna data z stdout/err a počká na skončení procesu.

Problém je v tom, že zápis do roury se blokne, pokud v ní není místo. Jestli čekáš na nějaký signál o skončení toho zapisujícího procesu a až potom voláš communicate, tak se ho nedočkáš, protože bude viset v zápisu do roury, ze které nikdo nečte.

Nejjednodušší mi přijde prostě výstup přesměrovat do souboru.

gna
Python › Flask, uprava souboru
10. 7. 2017   #217011

Ukládá se to od aktuální pozice, takže když ten stream celý načteš, nebo přepíšeš, tak jsi na konci a už není co ukládat. Nevím, jestli Flask zaručuje, že ten stream bude writable a seekable. Pokud ano, tak se můžeš posunout zpátky na začátek pomocí funkce seek. Raději bych to testoval nebo editoval až po uložení.

gna
C / C++ › Spustitelný výstupní soubor
8. 7. 2017   #216991

#22 ondra.holub
Ve Windows tam taky může být cokoliv, ale to je tady úplně jedno.

gna
C / C++ › Spustitelný výstupní soubor
8. 7. 2017   #216983

A jako čekáš, že se ti to nějak udělá samo? Čtyři dny ti píšu, že ta asociace souboru je příkaz, který spustí ten tvůj program s parametrem určujícím soubor, přes který jsi ho spustil.

Ten můj příklad v OnInitCmdLine přidá nepovinný vícenásobný textový parametr (na tom názvu "document-file" nezáleží), takže o něm parser ví a nezařve a v OnCmdLineParsed se ten parametr uloží do vektoru m_filesFromCmdLine.

Pak někde dále v programu si ten vektor projdi a soubor(-y) otevři, jak potřebuješ.

Takže někde, kde už máš všechno inicializované (jo, možná na konci wxApp::OnInit) vem ten název souboru a když ho umíš uložit, tak ho musíš umět i načíst.

gna
C / C++ › Spustitelný výstupní soubor
8. 7. 2017   #216980

Ten soubor se nespouští. Spouští se program. V argv[0] je cesta k programu. Na dalších indexech jsou další parametry, jako třeba cesta k souboru, kterou jsi v open\command definoval, že tam chceš předat.

gna
C / C++ › Spustitelný výstupní soubor
8. 7. 2017   #216978

Windows jen spustí program s požadovanými parametry. Ve tvém případě dostaneš parametr s cestou k souboru. Nic víc. Je na programu, jak s parametry naloží.

wxApp ve wxWidgets parametry automaticky parsuje. V OnInitCmdLine se parametry definují a po úspěšném rozparsování se zavolá OnCmdLineParsed. (Nebo se při chybě v OnCmdLineError vypíše to "usage..." a program skončí)

Ten můj příklad v OnInitCmdLine přidá nepovinný vícenásobný textový parametr (na tom názvu "document-file" nezáleží), takže o něm parser ví a nezařve a v OnCmdLineParsed se ten parametr uloží do vektoru m_filesFromCmdLine.

Pak někde dále v programu si ten vektor projdi a soubor(-y) otevři, jak potřebuješ.

gna
C / C++ › Spustitelný výstupní soubor
6. 7. 2017   #216946

Ta funkce vrací složku, ve které je exáč. Jestli to potřebuješ jinak, tak si to uprav.

V těch chybových hlášeních vidíš, jakou cestu to generuje.

gna
C / C++ › Spustitelný výstupní soubor
5. 7. 2017   #216943

   

wxString icons = wxStandardPaths::Get().GetResourcesDir() + wxT("/icons/");
wxImage newDB(icons + wxT("document-new-5.png"), wxBITMAP_TYPE_PNG);
gna
C / C++ › Spustitelný výstupní soubor
5. 7. 2017   #216939

To je zase jen klíč v registrech, který Průzkumníkovi definuje ikonu toho souboru. Na funkci programu to nemá vliv.

Při spouštění dvojklikem je pracovní složka programu tam, odkud jsi ho spustil (kde je ten soubor, ne exáč). Takže tipuju, že problém bude v tom, že používáš relativní cesty k těm ikonám. Můžeš změnit pracovní složku, nebo používat absolutní cesty.

wxSetWorkingDirectory(...)
wxStandardPaths::Get().GetResourcesDir() + ...
gna
C / C++ › Spustitelný výstupní soubor
5. 7. 2017   #216936

Ještě jsem koukal, že v tom setupu máš namíchaný .fbmr a .fmbr. To .fbm ti asi funguje jen náhodou jako pozůstatek nějakých pokusů.

gna
C / C++ › Spustitelný výstupní soubor
5. 7. 2017   #216935

CreateProcess a ShellExecute spouští jiné programy, s tímhle to nemá co dělat. Při poklepání se nespouští žádný baťák, v tom setupu přece definuješ jako open\command ten tvůj program s parametrem "%1", který se nahradí cestou k tomu souboru.

Ve vxWidgets jsou podle dokumentace parametry programu ve wxApp::argc (počet) a wxApp::argv (data), ale ještě je tam parser parametrů, který ti háže tu chybu. Podle příkladů by řešení vypadalo nějak takhle:

void MyApp::OnInitCmdLine(wxCmdLineParser& parser)
{
    wxApp::OnInitCmdLine(parser);

    parser.AddParam("document-file",
                    wxCMD_LINE_VAL_STRING,
                    wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_PARAM_OPTIONAL);
}

bool MyApp::OnCmdLineParsed(wxCmdLineParser& parser)
{
    for ( size_t i = 0; i != parser.GetParamCount(); ++i )
        m_filesFromCmdLine.push_back(parser.GetParam(i));

    return wxApp::OnCmdLineParsed(parser);
}
gna
MySQL › Zobrazení jako dalšího sloupce
5. 7. 2017   #216934

To jsem se toho dozvěděl...

gna
MySQL › Zobrazení jako dalšího sloupce
4. 7. 2017   #216927

   

SELECT * FROM tabulka;

id  priznak datum
1   2       aa
2   2       bb
3   4       cc
4   4       dd
5   6       ee
6   6       ff

SELECT A.id,
       A.priznak,
       B.datum,
       A.datum
FROM   tabulka A,
       tabulka B
WHERE  A.priznak = B.priznak
       AND A.id = A.priznak
       AND B.id <> B.priznak;

id  priznak datum   datum
2   2       aa      bb
4   4       cc      dd
6   6       ee      ff
gna
MySQL › Zobrazení jako dalšího sloupce
4. 7. 2017   #216926

Další řádky budou

3  4
4  4
5  6
6  6

?

gna
Pascal › Inno Setup - asociace výstup…
4. 7. 2017   #216925

V tom setupu asi problém není. Vytvořil jsi asociaci, která při tom poklepání na soubor spustí ten program a jako parametr mu dá cestu k tomu souboru. (jako bys v cmd napsal "cestakprogramu" "cestaksouboru")

A až ten tvůj program pak křičí, že takovému parametru nerozumí a jaké parametry podporuje. A podle toho to nevypadá, že mu takto jde zadat soubor k otevření. Takže buď to jde jinak, nebo to nejde, ale každopádně je to záležitost toho rozpočtu.

gna
C / C++ › Jak vypnout optimalizaci u i…
27. 6. 2017   #216818

A teď koukám, že tu funkci nemusíš psát externě, ale ještě to umí embedded assembler, že celá funkce bude v assembleru a ten se nebude optimalizovat.

__asm return-type function-name(parameter-list)
{    
  // ARM/Thumb assembly code
  instruction{;comment is optional} 
  ... 
  instruction
}
// return musis napsat explicitnem a k parametrum nemuzes pres jmeno
gna
C / C++ › Jak vypnout optimalizaci u i…
27. 6. 2017   #216817

#4 Ovrscout
Minule psat, že je to armc v 5.04. Takže asi armcc z ARM Compiler 5.

#3 Jonáš
Jestli je to tenhle překladač, tak to vypadá, že vkládaný assembler je jakýsi "virtuální". Instrukce se můžou nahradit, registry jsou implicitně deklarované lokální proměnné a tak. Jako by __asm jen přepnul syntaxi, ale vlastně nepíšeš přímo stroják a optimalizuje se to pohromadě.

Úplně vypnout optimalizace asi nebude žádoucí, tak bych tu funkci napsat externě čistě v asm. A armasm by ti to neměl překopat.

gna
C / C++ › Jak vypnout optimalizaci u i…
26. 6. 2017   #216812

Vkládaný assembler není součástí Céčka. Vždycky je to specifické rozšíření konkrétního překladače, tak se podívej do dokumentace ke svému překladači.

V GCC je na to volatile.

gna
C / C++ › Hledání minimálního počtu uz…
24. 6. 2017   #216806

   

#include <map>
#include <sstream>
...
// treba string -> int
map<string, int> cache;
...
int deleni(int x1, int x2, int y1, int y2) {
	...
	stringstream ss;
	ss << x1 << "," << x2 << "," << y1 << "," << y2;
	string key = ss.str();

	// pokud klic v mape neni, tak se timhle ctenim i vytvori
	// v nasem pripade to nevadi, protoze ho tam stejne budeme vkladat
	vysledek = cache[key];
	
	// pokud byl klic vytvoren, tak s vychozi hodnotu
	// v nasem pripade intu tedy 0, kterou tam jinak nevkladame
	// takze nenulova hodnota je drive explicitne vlozena hodnota
	if (vysledek)
		return vysledek;

	vysledek = vypocet...

	cache[key] = vysledek;
gna
C / C++ › Hledání minimálního počtu uz…
24. 6. 2017   #216803

A s čím chceš poradit? Máš to správně, jen doplň tu optimalizaci.

gna
C / C++ › NULL
24. 6. 2017   #216798

#19 Radek Chalupa
Ne, v tom je právě problém, na který Staon poukázal. NULLem se myslí nulový ukazatel a ne int.

gna
C / C++ › Hledání minimálního počtu uz…
23. 6. 2017   #216796

Tak ne, to dělení uvnitř je blbost.

gna
C / C++ › Hledání minimálního počtu uz…
23. 6. 2017   #216795

Nechce se mi nad tím přemýšlet, ale myslím si, že do toho prvního cyklu pro dělění podle Y můžeš rovnou hodit ještě dělení podle X a budeš to mít bez opakování.

Jinak na to ukládání předchozích výsledků je pohodlné použít std::map (ale myslím si, že to teda nepotřebuješ).

gna
C / C++ › ASM v gcc a C99:?
19. 6. 2017   #216749

gcc a vc nejsou kompatibilní. armc neznám.

gna
C / C++ › ASM v gcc a C99:?
19. 6. 2017   #216745

Tak to bych si tipnul, že to chceš pro MSVC. To by bylo dobré zmínit.

int i, x;

__asm
{
	mov eax, x
	mov i, eax
}
gna
C / C++ › ASM v gcc a C99:?
18. 6. 2017   #216742

Uvedením standardu pro kompilaci jen přijdeš o nestandardní rozšíření. Jinak asm, __asm, __asm__ fungují stejně. Správně je třetí varianta, která by měla fungovat vždycky.

gna
Python › Problém s funkcí
18. 6. 2017   #216741

Chyba je jasná, ale nevím o co se pokoušíš. Co od tohodle čekáš? 

x = list(anyth)

Z toho kódu netuším, co chceš aby to dělalo, tak to nedokážu opravit. Celkově z toho mám pocit, že to půjde o hodně jednodušeji. Co je to za algoritmus?

gna
Java › Chyba glassfish server
11. 6. 2017   #216707

Asi by nebylo težké podívat se, která z těch proměnných je null. Třeba getParameter vrací null, pokud parametr neexistuje.

gna
Java › Pořadí prováděných metod
9. 6. 2017   #216692

#4 Honza228
Pokud ty metody voláš někde, kde to blokuje překreslování okna, tak se překreslí až potom. Zmínil jsi nějaké hlavní vlákno a netuším, co jsi čekal od sleepu, ale jestli toto běží v samostatném vlákně, tak něco děláš špatně. (A když sis myslel, že se ty metody nevolají postupně, tak nejspíš všechno.)

gna
C / C++ › Max počet zobrazených řádek…
9. 6. 2017   #216672

Konzole ve Windows má standadrně výšků 25 řádků a buffer 300 řádků.

Jde to změnit v nastavení okna - levé myšítko na ikonu vlevo nahoře, nebo pravé myšítko kdekoli na záhlaví okna.

Nebo příkazem mode:

mode con lines=...

Taky můžeš výstup programu přesměrovat do souboru:

mujprogram >soubor
gna
C / C++ › Visual Studio 2015 nezná get…
8. 6. 2017   #216632

Je tam verze se dvěmi a třemi parametry. Ty dáváš jen jeden.

První parametr má být ukazatel na pole znaků, do kterého se má načítat. Ty máš v prvním volání ipAddress, což sice je ukazatel, ale nikam neukazuje. V druhém volání máš filePathName, což je jen znak, ne ukazatel.

Na té stránce je i příklad. 

char name[256];
std::cin.getline (name,256);

Spousta začátečníků řetězcům jako ukazatelům na pole znaků nerozumí. To nevadí, protože je k ničemu nepotřebuješ.

std::string name;
std::getline(std::cin, name);
gna
C / C++ › Nefunguje ReadFile() pri čít…
7. 6. 2017   #216619

O bufferu to nic neví. Může testovat jestli je [buffer, buffer+velikost) v zapisovatelné paměti. Tam problém asi nebude. Taky to nenačte více, než o kolik sis řekl, takže to nikam jinam nic nezapíše a ani v tom problém nebude (pokud teda nezkoušíš více než těch 1000, co ten buffer teď má).

Ale jinak to "povědomí" má. Přesně zná velikosti reportu a musíš ho načíst celý, jinak to nevrátí nic.

Čtení v timeru je taky super na ladění :)

Jak píše hu, zkus nějakou hotovou knihovnu. A ten C# taky není težký.

gna
C / C++ › Nefunguje ReadFile() pri čít…
7. 6. 2017   #216601

#6 iridium
Buffer je pravděpodobně platný, problém bude v uvedené délce.

Ale jestli tam máš ještě španě CRC, tak nevím, jestli něco načteš.

gna
Příkazový řádek › Sestavení regulárního výrazu
6. 6. 2017   #216598

Čekal jsem, že vim trochu znáš.

aktualni radek   :.!awk 'BEGIN{FS=OFS=";"} {print $4,$2,$3,$1}'
oznaceny vyber   :'<,'>!awk 'BEGIN{FS=OFS=";"} {print $4,$2,$3,$1}'
neprazdne radky  :g/./ .!awk 'BEGIN{FS=OFS=";"} {print $4,$2,$3,$1}'

nebo vsechno a osetrit to v awku
:%!awk 'BEGIN{FS=OFS=";"} /./{print $4,$2,$3,$1; next} {print}'
gna
C / C++ › NULL
6. 6. 2017   #216596

Systémové includy se normálně píšou do pičatých závorek #include <stdlib.h>.

Program se nepíše do stdafx.cpp. Při použití předkompilovaných knihoven v MSVC musí každý .cpp soubor začínat includem "stdafx.h".

Ten nullptr znamená, že místo NULL budeš psát nullptr.

gna
C / C++ › Nefunguje ReadFile() pri čít…
6. 6. 2017   #216594

Při chybě ReadFile je zjistit kód chyby pomocí GetLastError.

gna
Příkazový řádek › Sestavení regulárního výrazu
6. 6. 2017   #216577

Nemám moc představu, co to má dělat, ale na jednoduché prohození bych to prohnal awkem: 

a;b;c;d
:%!awk 'BEGIN{FS=OFS=";"} {print $4,$2,$3,$1}'
d;b;c;a
gna
C / C++ › Generovaní náhodných čísel v C
6. 6. 2017   #216576

#3 Kenvelo

To je snad ještě blbější, než originál.

Funkce rand generuje pseudonáhodné hodnoty a ten generátor jde inicializovat funkcí srand. Aby nebyly generované hodnoty při každém spuštění programu stejné, tak se při každém spuštění programu rand inicializuje funkcí srand pokaždé s jinou hodnotou. Jen jednou, při spuštění programu, a typicky aktuálním časem.

Takže jediné co je tady potřeba udělat pro oddebilněni, je hodit jeden srand na začátek programu a z tohodle ty srand-y vycházet. Původní autor nejspíš jen nepochopil něčí doporučení před randem použít srand. Jak už KIIV napsal...

gna
C / C++ › OpenGL 3 Indexování a UV koo…
30. 5. 2017   #216459

Nevím, jestli by přebindování za běhu nějak šlo, ale "normální" řešení je prostě ten vertex nesdílet a mít ho několikrát s různými atributy.

gna
C / C++ › Algortimus funkce cos(x)
28. 5. 2017   #216410

#7 Kit
Pěkný.

gna
C / C++ › Algortimus funkce cos(x)
28. 5. 2017   #216402

O hlavu jí to neomlátí, protože to nejspíš je přesně to, co chtěl. Využití předchozích hodnot se samo nabízí a zase je to věc, nad kterou není potřeba přemýšlet. 

double mycos(double x)
{
	unsigned long f = 1;
	double sum = 0.0, p = 1.0;
	for(int i = 2, s = 1; i <= max2; i += 2, s = -s)
	{
		p *= x * x;
		f *= i * (i-1);
		sum += s * p / f;
	}
	return 1.0 - sum;
}
gna
Java › Programy, hry v jave
28. 5. 2017   #216395
gna
C / C++ › Algortimus funkce cos(x)
28. 5. 2017   #216394

Teda x^0 / 0! = 1 / 1.

gna
C / C++ › Algortimus funkce cos(x)
28. 5. 2017   #216393

Neumíš napsat cyklus na násobky dvou a otáčení znaménka?

Jinak teda i tu první jedničku můžeš napsat jako další kroky, pokud půjdeš od nuly: 0^0 / 0! = 1 / 1.
To otáčení znaménka můžeš udělat násobením 1 nebo -1 a to zase můžeš spočítat podle kroku cyklu.

Takže úplně obecně takhle:

sum = 0;
for (i = 0; i <= max; i++)
    sum += (pow(-1, i) * pow(x, i * 2)) / fac(i * 2);

Milionkrát řešená věc, kterou by nějak měl zvládnout každý.

gna
Mikrokontroléry › jak získat ukazatel na pole…
25. 5. 2017   #216304

#12 Jerry
Dokonce aj v tom k překladači, o kterém je řeč!   

gna
Pascal › excel?
25. 5. 2017   #216300

#19 ma ka
ahoj, má někdo vytvořený ten program?

To co jsem napsal je kompletní program. Data to čte ze standarního vstupu jako řádky čísel oddělených čárkou. Dělat to v Excelu je ptákovina. 

data.txt:
1,2,3,...
4,5,6,...
...

 

python3 program.py <data.txt
gna
Python › Python script exploit
25. 5. 2017   #216282

Pro více adres to stačí opakovaně spouštět. 

./generujadresy | while read IP; do ./skript "$IP"; done

Na timeout můžeš použít socket.settimeout, nebo select.select.

gna
Mikrokontroléry › jak získat ukazatel na pole…
25. 5. 2017   #216281

   

const char __code *p = pole;
gna
Mikrokontroléry › jak získat ukazatel na pole…
23. 5. 2017   #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
23. 5. 2017   #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
23. 5. 2017   #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

 

 

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