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
Python › Python - 9. lekce - sort()
před 5 hodinami   #217957

   

def pocetObyvatel(mesto):
    print('pro tohle', mesto)
    print('   vracim', mesto[1])
    return mesto[1]
    
def serad_dva(seznam, key):
    polozka0 = seznam[0]
    polozka1 = seznam[1]

    # az tady se funkce zadana jako key podle potreby vola
    hodnota0 = key(polozka0)
    hodnota1 = key(polozka1)

    # a podle vracene hodnoty se polozky seradi
    if hodnota0 < hodnota1:
        return [polozka0, polozka1]
    else:
        return [polozka1, polozka0]

seznamMest=[['Praha', 1000000], ['Brno', 350000]]

print('== original', seznamMest)
print('=> serazeno', serad_dva(seznamMest, pocetObyvatel))
== original [['Praha', 1000000], ['Brno', 350000]]
pro tohle ['Praha', 1000000]
   vracim 1000000
pro tohle ['Brno', 350000]
   vracim 350000
=> serazeno [['Brno', 350000], ['Praha', 1000000]]
gna
Python › Python - 9. lekce - sort()
před 5 hodinami   #217956

Parametr key určuje funkci, která vrací hodnotu, která se má použít při porovnávání. Při tom řazení se pak ta funkce postupně volá pro jednotlivé položky a podle té hodnoty se ty položky seřadí.

Co víc k tomu napsat? Chceš, aby se použila funkce pocetObyvatel, tak tam dáš pocetObyvatel.

mesto[1] není funkce, ale hodnota ze seznamu mesto -- což by klidně mohla být funkce, ale není -- je to číslo. Co by ten sort měl s tímhle dělat?

seznamMest=[['Praha', 1000000], ...]
prvniMesto = seznamMest[0] # prvniMesto = ['Praha', 1000000]
seznamMest.sort(key=prvniMesto[1]) # key = 1000000
gna
Python › Python - 9. lekce - sort()
před 17 hodinami   #217953

Parametr key určuje funkci, která vrací hodnotu, která se má použít při porovnávání. Při tom řazení se pak ta funkce postupně volá pro jednotlivé položky a podle té hodnoty se ty položky seřadí.

Myslím, že je to dost jasné v tom článku i dokumentaci. Možná trochu srozumitelnější verze by bylo takto: 

def pocetObyvatel(mesto):
    return mesto[1]  # počet obyvatel

seznamMest=[['Praha', 1000000], ['Brno', 350000], ...]
seznamMest.sort(key=pocetObyvatel)  # serad podle klice (= funkce) "pocetObyvatel"

V té druhé variantě místo funkce dáváš přímo položku seznamu, se kterou to nic nenadělá.

gna
Pascal › Súradnice bodov na priamke
21. 9. 2017   #217914

Tak jsem to zkusil přes ty vektory s odebíráním bodů z pole. Moc si Pascal nepamatuju a líp to nevymyslím.

uses
  math;

type
  TPoint = record
    x, y: real;
  end;

  TList = array of TPoint;

function xround(value: real; places: integer): real;
var
  muldiv: real;
begin
  muldiv := power(10, places);
  xround := round(value * muldiv) / muldiv;
end;

function samevec(A, B, C: TPoint): boolean;
var
  bx, by: real; // vec A -> B
  cx, cy: real; // vec A -> C
  lb, lc: real; // len AB, len AC
begin
  bx := B.x - A.x;
  by := B.y - A.y;
  cx := C.x - A.x;
  cy := C.y - A.y;

  lb := sqrt(bx * bx + by * by);
  lc := sqrt(cx * cx + cy * cy);

  // normalize
  bx := xround(bx / lb, 3);
  by := xround(by / lb, 3);
  cx := xround(cx / lc, 3);
  cy := xround(cy / lc, 3);

  samevec := ((bx = cx) and (by = cy)) or ((bx = -cx) and (by = -cy));
end;

function remove(var list: TList; idx: integer): TPoint;
var
  i: integer;
begin
  remove.x := 0;
  remove.y := 0;
  if idx < length(list) then
    begin
      remove := list[idx];
      for i := idx to length(list) - 2 do
        list[i] := list[i + 1];
      setlength(list, length(list) - 1);
    end;
end;

var
  i, j, lines: integer;
  list, work: TList;
  A, B: TPoint;

begin
  while not eof(input) do
    begin
      setlength(list, length(list) + 1);
      with list[length(list) - 1] do
        readln(x, y);
    end;

  if length(list) < 3 then
    begin
      writeln('ne');
      exit;
    end;

  lines := 0;

  for i := 1 to length(list) - 1 do
    begin
      work := copy(list, 0, length(list));

      lines := 1;

      B := remove(work, i);
      A := remove(work, 0);
      for j := length(work) - 1 downto 0 do
        if samevec(A, B, work[j]) then
          remove(work, j);
      if length(work) = 0 then
        break;

      lines := 2;

      A := remove(work, 0);
      B := remove(work, 0);
      for j := length(work) - 1 downto 0 do
        if samevec(A, B, work[j]) then
          remove(work, j);
      if length(work) = 0 then
        break;

      lines := 3; // or more
    end;

  if lines = 2 then
    writeln('ano')
  else
    writeln('ne');
end.
gna
Pascal › Súradnice bodov na priamke
21. 9. 2017   #217913

Těžko říct, kde je problém, když neukážeš kód. Při přepočtech může dojít k drobným odchylkám, tak konečné porovnání dělej s nějakou tolerancí.

gna
Visual Basic › VBA a ukazatele
20. 9. 2017   #217872

Ne, takový trik není a standardní prostředky, jak dostat z funkce data, stačí na úplně všechno.

gna
OS - GNU / Linux › Radeon rx 560 ovladače
16. 9. 2017   #217837

Když nejsou splněné závislosti, tak zjevně nejsou dobře nainstalované. Použil jsi update před upgrade? Můžeš zkusit ještě install -f, ale moc bych od toho nečekal. Odinstaluj ty ovladače a nainstaluj ty, co se ti nabízí v Software & Updates / Additional Drivers. Až v případě potřeby řeš novější z webu.

gna
XML / XSL(T) › Úprava xml pro import dat
14. 9. 2017   #217826

#8 Kit
Tak se omlouvám. V té druhé větvi je id ze selectu, tak to pak jo.

gna
XML / XSL(T) › Úprava xml pro import dat
14. 9. 2017   #217825

#8 Kit
Podívej se pořádně, všechno jde do insertu a updaty jsou nad insertnutými idčky. Takže tam něco řeší duplicity, nebo se data pořád jen přidávají.

gna
XML / XSL(T) › Úprava xml pro import dat
14. 9. 2017   #217823

Tohle jen přidává data.

Pokud to má být aktualizační import, tak je tam ještě něco, co řeší duplicity a problém je v tom.

gna
Pascal › Súradnice bodov na priamke
13. 9. 2017   #217812

Asi nejjednodušší je na to jít tak, že mezi všemi body na jedné přímce je stejný (nebo opačný) jednotkový vektor.

Takže vezmeš dva body určující jednu přímku a najdeš další body, které na ní leží. Pokud žádné body nezbyly, tak všechny leží na jediné přímce.
Podobně se zbytkem bodů (pokud nějaké zbyly) pro druhou přímku (když nebudou aspoň 2, tak i 1 znamená další přímku). Pokud teď žádné body nezbyly, tak máš jen dvě přímky. Jinak je jich více.

Takhle to vyzkoušíš pro různé počáteční přímky (stačí měnit jeden bod) a budeš hledat jestli ti někdy vyjdou 2 přímky.

gna
PHP › Class active na aktuálnej st…
10. 9. 2017   #217783

Tak můžeš tam všude přidat nějaký kód.

aa <?php if ($active == "aa") echo "active"; ?>
bb <?php if ($active == "bb") echo "active"; ?>

Nebo něco inteligentnějšího. A pokud tam není žádný kód, tak to můžeš nejdříve načíst a před vypsáním upravit. Od toho jsou generátory HTML a šablonovací systémy.

gna
PHP › Riešenie pre otvorenie txt s…
10. 9. 2017   #217782

Chápu to tak, že ten .txt stahuješ ze serveru přes HTTP. Jestli je to statický soubor nebo skript řeší server. Klientovi je to jedno.

Pokud ti skript vrací špatná data, tak je v něm chyba.

gna
C / C++ › Registr tříd pro herní engine
10. 9. 2017   #217773

Když uděláš ten destruktor virtuální, tak se zavolá ten správný (resp. oba).

gna
PHP › Riešenie pre otvorenie txt s…
10. 9. 2017   #217772

Nestahuj přímo ten texťák, ale PHP skript, který vrátí obsah toho souboru a pak ho vymaže.

Aby jsi nepřišel o data, pokud bude čtení a zápis probíhat ve stejnou chvíli, můžeš použít flock.

gna
PHP › Nasepkavanie pri vyhladavani…
8. 9. 2017   #217760

Ano, ten AJAX pošle na server samostatný požadavek a jeho výsledek se zpracuje v JavaScriptu.

Jak je v tom příkladu statický soubor "html-elements.json", tak místo toho by byl PHP skript. Nezáleží na tom, jestli to bude samostatný skript, nebo to přidáš do existujícího a nějakým parametrem určíš co má dělat.

Stejně tak je na tobě, v jakém formátu ta data vrátíš a co s nimi pak v JS uděláš. V tom příkladu je to pole řetězců v JSONu, ale klidně vracej HTML, jestli ti to víc vyhovuje.

gna
PHP › Nasepkavanie pri vyhladavani…
7. 9. 2017   #217757

Tak si některý z těch tutoriálů přečti a pak napiš, co ti není jasné.

gna
.NET › Vláda
5. 9. 2017   #217731

Víte, že na takové věci jsou weby jako pastebin.com ?

gna
Matematika › parametr rovnice ve jmenovat…
3. 9. 2017   #217712

Jo, normálně to tam napiš, nikdo na to nemůže nic říct a naopak by se našel rejpal, kterému by to chybělo.

pro
p = 0 => rovnice nemá smysl
p \ne 0 => něco

gna
Matematika › Finanční matematika - hodnot…
25. 8. 2017   #217671

To je první fáze a bude za ty 3 roky. K tomu se přičítá druhá fáze, která se počítá z pokračující hodnoty. Tomu nerozumím, ale ty snad budeš vědět.

gna
C / C++ › C++ problém s vyhodnocením p…
25. 8. 2017   #217670

V C++ je pro řetězce třída string, která věci dost zjednodušuje.

string slovo;                                                                   
cin >> slovo;                                                                   
if (slovo == "ano")                                                             
	cout << "tak se svlikni" << endl;
gna
.NET › Windows Service - nejjednodu…
25. 8. 2017   #217657

Přidat parametry můžeš, hodnota pro ImagePath je v Context.Parameters["assemblyPath"]. Ale nedával bych tam DisplayName, ale ServiceName.

gna
.NET › Windows Service - nejjednodu…
24. 8. 2017   #217656

Jaké jméno procesu? Najdi svůj proces v seznamu služeb.

string name = new ManagementObjectSearcher("SELECT * FROM Win32_Service where ProcessId = " + Process.GetCurrentProcess().Id).Get().Cast<ManagementObject>().First()["Name"].ToString();
gna
.NET › Windows Service - nejjednodu…
23. 8. 2017   #217628

To je klíč, kde Windows mají informace o službách. Ne kam si služby mají ukládat svoje data.

Můžeš najít službu s tvým ProcessId a zjistit její jméno. Nejjednodušeji přes WMI (ManamegentObject). Jestli ji instaluješ pod jiným jménem, než pod kterým běží a nikam ho neukládáš, tak holt asi budeš muset ty klíče projít a ten svůj nějak identifikovat.

Nebo to prostě neprasit :-)

gna
Java › Získání DOM kódu z webu
23. 8. 2017   #217627

jsoup je jen parser. Potřebuješ něco co chová jako kompletní prohlížeč jako HtmlUnit, nebo Selenium.

gna
Delphi › přístup k property vnořených…
23. 8. 2017   #217621

   

A := report.Cells[X]; // TReport read Cells
report.Cells[X] := A; // TReport write Cells

B := report.Cells[X].Y;
// je jako
// tmp := report.Cells[X]; // TReport read Cells
// B := tmp.Y;             // TCellProperty read Y

report.Cells[X].Y := B;
// je jako
// tmp := report.Cells[X]; // TReport read Cells
// tmp.Y := B;             // TCellProperty write Y

Netuším, jak jsi ten getter napsal, ale když to jde přímo, tak to musí jít i přes něj.

gna
Delphi › přístup k property vnořených…
22. 8. 2017   #217612

Řešíš jen to "Cells[X]". Další operace pak jdou přes vrácený objekt.

property Cells[index: integer]: TCellProperty read GetCell write SetCell;

function GetCell(index: integer): TCellProperty;
pricedure SetCell(index: integer; value: TCellProperty);
gna
Visual Basic › Makro pro Word: Jak zjistit…
22. 8. 2017   #217608

Jako, že to nemáš v tom seznamu dostupných referencí? Tak dej procházet a přidej přímo soubor FM20.dll.

gna
C / C++ › Jak otevřít soubor v C++ a n…
20. 8. 2017   #217589

   

size_t beg = neco.find(':', 3);
size_t end = (beg != string::npos) ? neco.find(' ', beg + 1) : string::npos;
if (beg != string::npos && end != string::npos)
	string sub = neco.substr(beg + 1, end - beg - 1);
gna
C / C++ › Jak otevřít soubor v C++ a n…
19. 8. 2017   #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…
19. 8. 2017   #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…
19. 8. 2017   #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
19. 8. 2017   #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…
19. 8. 2017   #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
18. 8. 2017   #217564

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

gna
PHP › Javascript v IE a EDGE
18. 8. 2017   #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
18. 8. 2017   #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
18. 8. 2017   #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 ?
18. 8. 2017   #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.

 

 

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