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

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

 

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

zlz
Java › porovnaní proměnné a proměné…
12. 9. 2013   #181291

   

ButtonName.equals(word1)
zlz
OS - GNU / Linux › Obecné znalosti k Linuxu
15. 8. 2013   #180403

Matěje ignoruj.

Pravděpodobně máš v systému man, info a howtos. Já jsem tak začínal a na hooodně dlouho jsem měl co studovat. Pak samozřejmě TLDP.

Tu knihu od Jelínka mám - vyhozené peníze. Jestli si ji chceš přečíst, tak si ji jen někde půjč. Ke kernelu a lowlevel věcem vede poměrně dlouhá cesta.

zlz
Java › Obměňování obrázků v JLabel
14. 8. 2013   #180345

null to normálně bere, ale nechápu proč bys ho tam cpal

if (plocha == null) {
    plocha = new JLabel(new ImageIcon(obr)); // on by teda ten label asi uz mel davno existovat a byt nekde umisteny, ale budiz...
} else {
    plocha.setIcon(new ImageIcon(obr));
}
zlz
C / C++ › openGL a Bezierovy křivky
10. 8. 2013   #180186

Větší mapu poskládáš z menších kousků. Ta funkce zůstane tak, jak je.

zlz
PHP › image resource identifier ja…
8. 8. 2013   #180103

Takže jsi chtěl získat a zakódovat obrazová data toho obrázku. Stačilo to napsat rovnou ;-)

zlz
PHP › image resource identifier ja…
8. 8. 2013   #180101

Ve skriptu, ve kterém s tím obrázkem pracuješ, není důvod ten identifikátor kódovat. A ten identifikátor je platný jen po dobu běhu toho skriptu, jestli ho chceš předávat někam dál k pozdějšímu použití, tak je to k ničemu.

zlz
PHP › Jak detekovat, jake znaky ob…
5. 8. 2013   #179903

Můžeš zkusit imagettfbbox, nebo imagettftext. Jinak mě žádná funkce PHP nenapadá.

Možná budeš muset obsah toho fontu sám zkontrolovat. Není to až tak složité, zajímá tě asi jen tabulka cmap.

zlz
PHP › úprava stránky
23. 7. 2013   #179454

./upravit_stranku.php?stranka=<?php echo $idecko_stranky; ?>
$idecko_stranky = @$_GET["id"]

zlz
Java › Opětovné volání konstruktoru
5. 7. 2013   #178853

   

public class Neco {
    public Neco() {
        hrcprc();
    }

    public void hrcprc() {
        //proc bys to psal dvakrat?
    }
}
zlz
C / C++ › Combobox (Dropdown) - nastev…
28. 6. 2013   #178519
zlz
C / C++ › Win32 API reakce menu - nere…
23. 6. 2013   #178366

   

#define IDM_EXIT /* bez hodnoty? */
zlz
C / C++ › int main - int _tmain
21. 6. 2013   #178324

První je vždy tak jak je 

int main()

Druhá používá Microsoftí rozšíření umožňující jedním kódem napsat zároveň Unicode a SBCS/MBCS verzi programu. Pro Unicode build bude výsledek

int wmain(int argc, wchar_t* argv[])

a jinak

int main(int argc, char* argv[])

Můžeš se podívat do hlavičkových souborů na definice. Myslím, že je to všechno v tchar.h.

zlz
.NET › Zastavenie a znovu spustenie…
19. 6. 2013   #178245

Pokud to hlásí, že je zaneprázdněný, tak možná opravdu bude zaneprázdněný. Ukaž kód.

zlz
Assembler › Disassembling - stringy
12. 6. 2013   #177859

Zdrojáky FreeDOSu jsou dostupné - proč to disassembluješ?
Ty FS jsou zdokumentované - proč je studuješ z kódu?

zlz
Offtopic › Posloupnost příkazů v UNIXu
11. 6. 2013   #177854

A ještě teda asi -F a -x (nebo -w).

zlz
Offtopic › Posloupnost příkazů v UNIXu
11. 6. 2013   #177853

Pravděpodobně to půjde i jednodušeji, ale třeba takto:

grep ^[[:upper:]] slov.txt >velka
grep ^[[:lower:]] slov.txt >mala
grep -i -v -f mala velka
zlz
Java › Key Pressed nefunguje
9. 6. 2013   #177680
zlz
Java › Key Pressed nefunguje
9. 6. 2013   #177615

Podle initComponents() tipuju, že na tom frame máš nějaké komponenty a stisky kláves jdou některé z nich. Jinak mě nic nenapadá.

zlz
.NET › Update programu
2. 4. 2013   #174263

#18 sitemap
To jak přesně se ti chová ten nefunkční skript jsi teda nikde neuvedl. Jestli v něm máš právě a jen to, co jsi sem postnul, tak to pochopitelně nefunguje.

zlz
Delphi › promazani dvou Memo s hodne…
1. 4. 2013   #174254

Nevím, jak je implementovaný ten objekt Lines, ale pokud není úplně dementní, tak zbytečné zpomalení navíc asi udělá hlavně překreslování toho Mema. To by snad mělo jít potlačit přidáním Lines.BeginUpdate a EndUpdate kolem toho cyklu.

zlz
.NET › Update programu
1. 4. 2013   #174250

A když se na ten php soubor podíváš v prohlížeči sám, tak vidíš co?

PHP kód se uzavírá mezi tagy <?php ... ?> a hlavičky se posílají před obsahem.

zlz
C / C++ › Načítání znaků ze souboru (j…
1. 4. 2013   #174249

Nevím, proč to načítá mezeru, ale když ten soubor celý načítáš 2x, tak by asi bylo dobré se mezitím přesunout zase na začátek - funkce rewind.

Mimo to tam ten počet řádků zjišťovat nepotřebuješ, to i++ máš v hlavičcce i těle foru a ten test na konec řádku by asi měl být dokud není konec řádku ani konec souboru.

zlz
C / C++ › Vyhledavani v retezcich
3. 3. 2013   #172275

Cyklus se opakuje, pokud je podmínka splněna. Ty ho chceš opakovat dokud NEJSI na konci řetězce.

A samozřejmě bys to měl napsat tak, aby to správně fungovalo vždycky. I pro prázdný řetězec.

zlz
C / C++ › Vyhledavani v retezcich
3. 3. 2013   #172267

z nejakeho kouzlneho duvodu mi cyklus s podminkou na konci probehne pouze 1x i když podmínk nemuže splnit

do
{
}
while (text[n]=='\0');

Cyklus s podmínkou na konci proběhne vždy alespoň jednou, protože se ta podmínka testuje až na konci... A tu podmínku máš špatně. Celé to máš jaksi nešťastné.

zlz
PHP › Progress bar do PHP uploadu
2. 3. 2013   #172265

Prostě to jen zobrazuje běh času mezi nějakým počátečním a koncovým časem. Není co nastavovat.

Někde jsi to našel a nerozumíš ani řádku, viď? Najdi si něco, co je přímo na upload.

zlz
Java › vytvorenie arkádovej hry
2. 3. 2013   #172256
zlz
Pascal › skontrolovanie programu
27. 2. 2013   #172138

Píše to, že byl očekáván ";" a místo toho byl nalezen "case".

Před tím case asi taky máš příkaz, který není ukončený středníkem.

A netvrď, že se ti to jen nespustí, když se to evidentně ani nezkompiluje.

zlz
C / C++ › 2d hry direct2d vs opengl vs…
26. 2. 2013   #172089

SDL, BEZ DEBAT

zlz
C / C++ › Pekne prosim o pomoc, char d…
23. 2. 2013   #171845

#8 Ondra
Použil jsem tvůj kód, ale proti němu nic nemám. Je řeč o situaci, kdy formátovací řetezec není literál, ale proměnná dost možná obsahující nekontrolovanou hodnotu.

zlz
C / C++ › Pekne prosim o pomoc, char d…
23. 2. 2013   #171832

   

char *neco = "aby sis nezvykl to prasit a jednou ti tam nevlezlo prekvapeni od uzivatele... %p%p%s%s%n\n";
printf(neco);
sprintf(buffer, neco);
zlz
C / C++ › Jak vypsat ukazatel na pole…
17. 2. 2013   #171607

Na WinAPI se nikdo neptal.

#1 Didika
Šetři čas a nervy a na C++/CLI se vykašli. Jestli chceš používat .NET, tak přejdi na C#.

char c = 'A';
label1->Text = gcnew String(c, 1);
label2->Text = Char::ToString(c);
label3->Text = String::Concat(label1->Text, label2->Text);
zlz
Visual Basic › Znak vo VB6?
12. 2. 2013   #171461

Myslím si, že je to backspace. A místo vkládání přímo toho znaku můžeš použít Chr(8) nebo vbKeyBack.

Kde to musíš podmínkovat?

zlz
C / C++ › "Messenger" - status
10. 2. 2013   #171366

Funkcí ioctlsocket můžeš na tom socketu zapnout neblokující režim a po connect (který se tedy neblokne a nebude čekat na výsledek) pak funkcí select otestovat výsledek pokusu o připojení. Můžeš si tak nastavit vlastní timeout, ale hlavně můžeš bez zdržování udělat několik connectů a pak jen čekat na výsledky.

A chybí ti tam zavření socketu a na zjištění délky řetezce je funkce strlen a v C++ je taková pěkná třídička string.

zlz
.NET › C# opakování programu
10. 2. 2013   #171365

   

bool opakovat;
do
{
    to_co_tam_mas;
    opakovat = chcete_zadat_dalsi();
} while (opakovat);
zlz
Java › Návod na GUI kalkulačku.
10. 2. 2013   #171356

Jasně...

zlz
.NET › Dependency injection
10. 2. 2013   #171355

To bylo tak rychle, že jsi ani nestihl ten příklad :)

DI spočívá jen v tom, že věci, na kterých je nějaký objekt závislý, se dodávají zvenku, aby je ten dotyčný objekt nemusel řešit a snadno se nahrazovaly.

Volba implementace a řešení složitějších závislostí apod. je přímo související, ale jiná věc.

zlz
Python › Jak na cyklus
6. 2. 2013   #171183

   

for n in range(2,11):
        x = math.cos(n) - math.cos(n-1)
        print x
zlz
PHP › HEREDOC generuje špatně uvoz…
6. 2. 2013   #171182

Nevím o tom, že by heredoc přidával uvozovky. Natož ještě, že by na každý konec přidával jinou. Co myslíš tím generováním a jak výsledný text prohlížíš?

zlz
.NET › C# regulární výraz - nahraze…
6. 2. 2013   #171181

Tak?

Regex.Replace(text, @"\[SMAZAT\].*\[/SMAZAT\]", "", RegexOptions.Singleline)
zlz
C / C++ › copy may be unsafe
6. 2. 2013   #171180

Není v tom varování i jeho kód a zmínka o _CRT_SECURE_NO_WARNINGS ?

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

Doporučil bych ten define a rovnou pro celý projekt. Ve vlastnostech projektu přidej do "Preprocessor / Preprocessor Definitions" hodnotu "_CRT_SECURE_NO_WARNINGS".

zlz
C / C++ › Porovnávanie reťazcov
31. 1. 2013   #170946

O tom přece mluvím. Ty máš pravděpodobně ze jména zjistit číslo a pro to číslo pak zjistit známky. A nespoléhat na to, že jméno a známky budou na stejném řádku, i kdyby byly.

Martin 1
David 2
Kent 3

1 123
2 445
3 555
Martin 1
David 2
Kent 3

1 123
3 555
Martin 1
Kent 3
David 2

1 123
2 445
3 555
Martin 1
Kent 3
David 2

2 445
3 555
1 123

zlz
Java › MySQL connect - wedos
31. 1. 2013   #170941

Někde v tom chybovém výpisu nejspíš bude vidět i to, že se vůbec nepodařilo připojit.

http://hosting.wedos.com/cs/webhosting/mysql.html

databáze přístupná pouze z webhostingu, z bezpečnostních důvodů se k ní nelze připojovat zvenku (nelze ani individuálně, dočasně či za příplatek, nelze to ani z virtuálních či dedikovaných serverů u nás)

zlz
C / C++ › Porovnávanie reťazcov
31. 1. 2013   #170889

Na co tam pak je to číslo a proč ho testuješ? Obávám se, že po odevzdání a ohodnocení budeš nemile překvapený.

zlz
C / C++ › Porovnávanie reťazcov
30. 1. 2013   #170882

načteš jeden řádek ze seznamu a jeden ze známek a porovnáváš je. co když budou ty záznamy v jiném pořadí?
co když v seznamu bude méně záznamu? budeš porovnávat nenačtenou hodnotu.
co když v něm bude více záznamů? nikdy ten poslední nenačteš a zacyklí se ti to.
pokaždé vypisuješ, že jméno je nebo není v seznamu. jak to víš, když jsi ho ještě neprošel celý?

hovno ide :) kdyby byl problém jen v tom returnu, tak bych nic nepsal a čekal, že si to zkusíš spustit a všimneš si toho sám.

zlz
C / C++ › Porovnávanie reťazcov
30. 1. 2013   #170869

Vždyť ti to ani nefunguje. A zkus si představit (nebo přidat výpisy), jak ten program probíhá, máš tam nesmysly.

Jednoduše najdi to jméno a pak známky.

{
	FILE *fzoznam, *fznamky;
	char hladanemeno[100], meno[100], znamky[100];
	int hladanecislo = -1, cislo, pocetznamok = 0, sucetznamok = 0;

	printf("zadaj meno: ");
	scanf("%s", hladanemeno);

	fzoznam = fopen("zoznam.txt", "r");
	while (fscanf(fzoznam, "%s %d", meno, &cislo) == 2)
	{
		if (strcmp(meno, hladanemeno) == 0)
		{
			hladanecislo = cislo;
			break;
		}
	}
	fclose(fzoznam);

	if (hladanecislo == -1)
	{
		printf("meno {%s} nie je v zozname\n", hladanemeno);
		return EXIT_FAILURE;
	}

	fznamky = fopen("znamky.txt", "r");
	while (fscanf(fznamky, "%d %s", &cislo, znamky) == 2)
	{
		if (cislo == hladanecislo)
		{
			pocetznamok = strlen(znamky);
			for (int i = 0; i < pocetznamok; i++)
			{
				char znamka[2] = { znamky[i], '\0' };
				sucetznamok += atoi(znamka);
			}
			break;
		}
	}
	fclose(fznamky);

	if (pocetznamok == 0)
	{
		printf("pre meno {%s} nie je zadana zadna znamka\n", hladanemeno);
		return EXIT_FAILURE;
	}

	printf("priemer znamok je %.2f\n", (double)sucetznamok / pocetznamok);
	return EXIT_SUCCESS;
}

+ ošetření chyb

zlz
Java › Nefunkční applet
28. 1. 2013   #170740

Pokud se ti nezobrazuje Java konzole, tak ji v Java Control Panelu (normálně v ovládacích panelech, nebo javacpl ve složce s JRE) zapni. Pravděpodobně v ní pak uvidíš výpis nějakých vyjímek.

zlz
C / C++ › Dll injection pro OpenGL
23. 1. 2013   #170595

V Inject alokuješ jen místo pro řetězec s cestou k dllce. Pak v cílovém procesu spustíš LoadLibrary a jako parametr dáš ten řetězec. Uvolněním paměti pro ten řetězec samozřejmě dllku neunloadneš. Na to zase musíš v cílovém procesu zavolat FreeLibrary s handlem té dllky. A není důvod, aby funkce Inject byla v samostatné dllce.

Takže máš dllku injectnutou v požadovaném procesu a v něm chceš nainstalovat hook. Přes SetWindowsHookEx ale instaluješ hook do všech procesů (a pravděpodobně se ve všech zase provede dll attach...).

Hook se spouští v tom hooknutém procesu (SetWindowsHookEx injectne tu dllku, takže samostatný Inject ani nepotřebuješ). Ve své aplikaci nezpracuješ nic (pokud jí teda ta data z hooku nebudeš sám nějak přeposílat, což bude kurevsky pomalé). Ten hook sice (snad ještě pořád) může být přímo v tom exáči (protože mezi dll a exe prakticky není rozdíl), ale i tak bude natažený do toho cílového procesu a v něm poběží.

Jinak nevím, proč se ti ten hook nespouští. Spíš si myslím, že jen nevidíš, že se spouští, nebo něco hodí chybu.

zlz
C / C++ › Algoritmus pro substituci
20. 1. 2013   #170417

To nevím. Nemáš tam něco jinak? Třeba to >= 2 ?

A tykej...

zlz
Java › Kombinace prvků polí
20. 1. 2013   #170407

Potřebuješ nějaký konkrétní způsob řešení, nebo stačí, když to bude fungovat?

String[] pole1 = { "slon", "kočka", "pes", "prase", "mamut" };
String[] pole2 = { "chodí", "žere", "prdí", "vylučuje" };
String[] pole3 = { "olovo", "trávu", "oves", "seno" };

for (String w1: pole1) {
    for (String w2: pole2) {
        for (String w3: pole3) {
            System.out.println(w1 + " " + w2 + " " + w3);
        }
    }
}
zlz
C / C++ › Algoritmus pro substituci
20. 1. 2013   #170405
  • test konce tokenů tam je, to N nepotřebuješ
  • strtok vrací ukazatel uvnitř původního řetězce, takže do něj taky vkládá ukončovač tokenu
  • shoda je poslední shodný index - počítaný od 0 - při výpisu přičti 1
  • testuje se všechno se vším, asi tam budeš chtít přidat ještě nějakou logiku, co s čím testovat. Např. netestovat token se sebou samým (pokud tam nebudou duplicity, tak stačí porovnat obsah), nebo já nevím co...
for (token_b...
{
    strcpy(working_buffer, buffer);
    for (token_c...
    {
        if (!strcmp(token_b, token_c))
            continue;

        int shoda = 0;
        for (int i = 2/*0*/; token_b[i] && token_c[i] && token_b[i] == token_c[i]; i++)
        {
            shoda = i;
        }
        if (shoda >= 2)
        {
            printf("{%s}{%s}{%d}\n", token_b, token_c, shoda + 1);
        }
    }
}
{A:bxc}{A:bxzd}{4}
{A:yc}{A:yzd}{3}
{A:bxzd}{A:bxc}{4}
{A:yzd}{A:yc}{3}

zlz
C / C++ › Algoritmus pro substituci
20. 1. 2013   #170397

Já nevím, ty jsi psal o nějakém N  

zlz
C / C++ › Algoritmus pro substituci
20. 1. 2013   #170375

To "do N" bude další cyklus. Nevím, jestli to bude dělat přesně to, co chceš, ale zhruba takhle:

int N = ?;

for (token_b...
{
    for (token_c...
    {
        int shoda = 0;
        for (int i = 2/*0*/; i < N-1 && token_b[i] && token_c[i] && token_b[i] == token_c[i]; i++)
        {
            shoda = i;
        }
        if (shoda > 2)
        {
            printf("{%s}{%s}{%d}\n", token_b, token_c, shoda);
        }
    }
}
zlz
Pascal › zjednodužšení algoritmu
16. 1. 2013   #170253

Když už ten text umazáváš, tak stačí hlídat, jestli jsi smazal všechno. A při tom přidávání si můžeš pamatovat poslední prvek a nemusíš procházet celý seznam.

function Ukol(A: String; B: Char): UkSeznam;
var
  p: integer;
  tok: string;
  prvni, posledni, pom: UkSeznam;
begin
  prvni := nil;

  while length(a) > 0 do begin
    p := pos(b, a);
    if p = 0 then p := length(a) + 1;
    tok := copy(a, 1, p - 1);
    delete(a, 1, p);

    new(pom);
    pom^.data := tok;
    pom^.dalsi := nil;

    if prvni = nil then prvni := pom
    else posledni^.dalsi := pom;
    posledni := pom;
  end;

  Ukol := prvni;
end;
zlz
C / C++ › Pomoc s návrhem algoritmu
16. 1. 2013   #170229

for (a;b;c) { d; } funguje jako a; while (b) { d; c; }. Výhoda je v tom, že to a,b,c máš pohromadě.

Ano, ukazatel jde indexovat jako pole. On vlastně mezi polem a ukazatelem není rozdíl (teda někdy je, a docela zásadní) a proto ti to kopírování funguje.

zlz
C / C++ › Pomoc s návrhem algoritmu
16. 1. 2013   #170227

A ono je to vlastně celkem jedno, podmínky si můžeš upravit.

void fce (char *input)
{
    int size = strlen(input)+1;
    char *token, *next_token;
    char working_input[size];

    strcpy(working_input, input);
    for (token = strtok_r(working_input, " ", &next_token); token; token = strtok_r(NULL, " ", &next_token))
    {
        if (islower(token[2]))
        {
            char *token_a, *next_token_a;
            char current_input[size];

            int counter = 0;
            strcpy(current_input, input);
            for (token_a = strtok_r(current_input, " ", &next_token_a); token_a && counter < 2; token_a = strtok_r(NULL, " ", &next_token_a))
            {
                if (token_a[2] == token[2])
                    counter++;
            }

            if (counter > 1)
                printf("%s\n", token);
        }
    }
}
zlz
C / C++ › Pomoc s návrhem algoritmu
16. 1. 2013   #170226

Můžeš to zadání upřesnit? Proč bude výsledek S:aS a S:a? Protože obě slova mají na třetí pozici a, někde ve slově mají a, začínají stejně, obsahují stejné znaky, ... ? Z popisu v kombinaci s tím kódem to nechápu.

zlz
Pascal › Char v binární podobě
14. 1. 2013   #170180

   

i: integer;
c: char;

i := ord(c);
c := chr(i);
zlz
Java › Komponenta pro vkládání obrá…
14. 1. 2013   #170179

   

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Image image = (Image)clipboard.getData(DataFlavor.imageFlavor);
zlz
Visual Basic › Grafika
13. 1. 2013   #170136

On je slušnej. Ty konečně napiš s čím konkrétně si nevíš rady.

zlz
C / C++ › Kolize čtverců
13. 1. 2013   #170135

Mám zmatek v tom, jak to má fungovat, ale každopádně se mi nezdá, že bys chtěl testovat, jestli se čtverec srazil sám se sebou.

float pos_x = PocetNepratel[i].x; // <-- i
float pos_y = PocetNepratel[i].y;

if(( PocetNepratel[i].x > pos_x - 20) && // <-- i
zlz
C / C++ › Kolize čtverců
12. 1. 2013   #170124

No, ono to vlastně funguje správně. Problém by byl, kdyby to nebyly čtverce (u každé souřadnice počítáš s šířkou i výškou), nebo byly různě velké.

zlz
C / C++ › Kolize čtverců
12. 1. 2013   #170119

V každém průběhu nastavíš colision na nějakou hodnotu, takže nakonec tam máš tu poslední. Pravděpodobně chceš jen otestovat jestli vůbec k nějaké kolizi došlo (nastavovat jen true) a zároveň je ti jedno s čím (není potřeba testovat dál, break). Takže takhle:

colision = false;
for (...)
{
    if (...)
    {
        colision = true;
        break;
    }
}

A samotný test kolize máš taky špatně, nakresli si ty čtverce na papír.

zlz
C / C++ › Matice jako vstupní parametr…
9. 1. 2013   #170032

Jak se ti taková krávovina povedla, když jsem ti řešení už napsal?

char number = matrix[x_coordinate][y_coordinate];
char help[] = { number, 0 };
int i = atoi(help);

int j = number - '0';
zlz
C / C++ › Matice jako vstupní parametr…
8. 1. 2013   #169977

Aha, to jsi tam asi měl a to házelo ten warning. Takže matrix je char[X][5].

Tak funkce bude takhle

void funct (char matrix[X][5], int a, int b);
void funct (char matrix[][5], int a, int b);

zlz
C / C++ › Matice jako vstupní parametr…
8. 1. 2013   #169968

Podle předchozích dotazů předpokládám, že matrix je pole ukazatelů (resp. dvourozměrné pole v obou rozměrech dynamicky alokované, nebo jak to popsat). Pak to bude třeba takhle:

void funct (char *matrix[], int a, int b);
//void funct (char **matrix, int a, int b);
zlz
Java › učení - package = problém
4. 1. 2013   #169746

Musíš dodržet adresářovou strukturu a kompilovat to z místa (to asi není úplně nutné, ale je to jednodušší), kde je všechno viditelné.

c:\lukec\test1>dir /b /s *.java
c:\lukec\test1\beings\Animal.java
c:\lukec\test1\objects\Main.java

c:\lukec\test1>javac objects/Main.java

c:\lukec\test1>dir /b /s *.class
c:\lukec\test1\beings\Animal.class
c:\lukec\test1\objects\Main2.class

c:\lukec\test1>java objects/Main2
Ja jsem pes a delam haf haf
Ja jsem kocka a delam mnaaaauuu

Zbytečně si to komplikuješ, zkus nějaké IDE. V tom článku to vypadá, že používá NetBeans.

zlz
C / C++ › Implementacia vlastnych rur…
4. 1. 2013   #169744

Mně se to takhle špatně čte, nevidím chybu. A nevím, co tam máš teď. Toto mi funguje (na linuxu)

void sprav(char *proglist[])
{
        int i, j, pocet = 0;

        for (i = 0; proglist[i]; i++)
                pocet++;

        if (pocet < 1)
                error(1, 0, "pocet %d", pocet);

        int pipecnt = pocet - 1;
        int pipes[pipecnt * 2];

        for (i = 0; i < pipecnt; i++) {
                if (pipe(pipes + i * 2) < 0)
                        error(1, errno, "pipe #%d", i);
        }

        for (i = 0; i < pocet; i++) {
                char *prog = proglist[i];
                printf("starting prog #%d [%s]\n", i, prog);
                pid_t pid = fork();

                if (pid < 0) {
                        error(1, errno, "fork #%d", i);
                } else if (pid == 0) {
                        int *currpip = &pipes[i * 2];
                        int *prevpip = currpip - 2;

                        if (i > 0) {
                                if (dup2(prevpip[0], 0) < 0)
                                        error(1, errno, "dup2 0 #%d", i);
                        }
                        if (i < pocet-1) {
                                if (dup2(currpip[1], 1) < 0)
                                        error(1, errno, "dup2 1 #%d", i);
                        }

                        for (j = 0; j < pipecnt * 2; j++) {
                                close(pipes[j]);
                        }

                        //execlp(prog, prog, NULL);
                        //error(1, errno, "prog #%d [%s]", i, prog);

                        exit(system(prog));
                }
        }

        for (i = 0; i < pipecnt * 2; i++) {
                close(pipes[i]);
        }

        for (i = 0; i < pocet; i++)
                wait(NULL);
}

...

sprav((char*[]){ "ls -l", "grep rwx", NULL });
zlz
C / C++ › Implementacia vlastnych rur…
3. 1. 2013   #169723

Přidej si tam nějaké výpisy stavu a hodnot ať vydíš, co se tam děje. Pak při kompilaci použij parametr -Wall a rozhodni se, jestli proces je char*, char**, nebo char*** a podle toho s ním pracuj.

Když na nic nepřijdeš, tak to zjednoduš a přeformátuj tak ať se v tom vyzná i někdo jiný než ty a vkládej kód pomocí funkce pro vložení zdrojového kódu (<?).

zlz
.NET › Jak ukladat do appdata/roami…
2. 1. 2013   #169682

Máš snad na disku takové složky? Je v dokumentaci použitých funkcí napsáno, že nahrazují ty proměnné?

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Environment.ExpandEnvironmentVariables("%appdata%")
zlz
C / C++ › Problém s funkcí strtok()
30. 12. 2012   #169559

Pokud první cyklus načte všechny tokeny, tak ten druhý samozřejmě nemá, co by dál načítal.

zlz
C / C++ › stuktura
30. 12. 2012   #169557

   

int main()
{
     FILE *fr;
     fr = fopen("text.txt","r");

     if(!fr)
          puts("soubor nenalezen");
          /*
           * a nic vic?
           */

     typedef struct slova {
       int pocet;
       char slovo[50];
     } slova;

     int counter = 0;
     int pocet_slov = 0;
     char c;
     while((c = fgetc(fr)) != EOF){
          counter ++;
          if(c == ' ' || c == '\n')
               pocet_slov ++;
     }; // strednik na co?

     rewind (fr);

     /*
      * to je na co?
      */
     char *obsah;
     obsah = (char *) malloc(counter + 1);
     printf("hnuj\n"); // rozhodne ;)
     int f = 0;
     char q;
     while((q = fgetc(fr)) != EOF){
          obsah[f] = q;
          f++;
     }; // strednik na co?

     slova seznam[30];

     int p = 0;

     /*
      * to je na co?
      */
     int znak = 0;

     /*
      * to je na co?
      */
     seznam[p].slovo[0] = '\0';

     char pole[20];

     /*
      * to je na co?
      */
     pole[0] = '\0';

     /*
      * jsi na konci souboru
      */
     while((fscanf(fr,"%s" , pole)) != EOF){

          /*
           * proc -1?
           */
          for(int w = -1; w < p; w++)
               if(strcmp(seznam[w].slovo,pole) == 0){
                    seznam[w].pocet++;

                    /*
                     * return ukoncuje funkci
                     */
                    return 0;}

               /*
                * proc je tohle v cyklu?
                */
               else{
                    strcpy(seznam[p].slovo,pole);

                    /*
                     * jakou hodnotu zvysujes?
                     */
                    seznam[p].pocet++;
               }

          p++;

          /*
           * to jsi nikde nealokoval
           */
          free(pole);
     }; // strednik na co?

     /*
      * proc 20?
      */
     for(int z = 0; z < 20; z++)
          printf("%s\n",seznam[z].slovo);
     return 0;
}
zlz
C / C++ › system("cls");
28. 12. 2012   #169493

Nebo Sleep().

zlz
C / C++ › system("cls");
28. 12. 2012   #169492

Jak odpočítalo? Jestli chceš program na tu dobu "pozastavit", tak můžeš použít funkci sleep().

zlz
C / C++ › IF A ELSE - podmínka
28. 12. 2012   #169491

V zadání máš uvedeno, co to má vypisovat. A Kent tě upozornil na to, že a taky může být menší než b.

Mně to jako dokončený program nepřipadá, když nesplňuje zadání.

zlz
C / C++ › Funkce strstr()
27. 12. 2012   #169393

Funkce strstr v řetezci hledá podřetězec ("R"). Na hledání znaku je strchr ('R').

zlz
C / C++ › Odstranění znaků z pole
26. 12. 2012   #169391

No, chtěl jsi odstranit mezery. Pokud tam budou jen mezery, tak se tam nic "nevloží", to je přece žádoucí.

Pokud chceš jiný filtr, tak si tu podmínku nějak uprav.

if (isalpha(pole[i])) ...
if (isupper(pole[i])) ...
if (strchr("povoleneznaky", pole[i])) ...
zlz
Java › Uložení a načtení tabulky
26. 12. 2012   #169371

Oddělovací znak tam přece máš. Můžeš použít treba String.split().

String radek = ...
String[] hodnoty = radek.split("\t");
zlz
Pascal › Výpis, absolute
26. 12. 2012   #169370

xa je pole bytů. v xa[-2] je 2 a v xa[-1] je 1.
xb je dvoubytová proměnná na adrese xa[-2].
hodnota xb je 258 (0x0102).

Mělo by to fungovat, tak jak čekáš. V čem to spouštíš?

zlz
Java › Ukončení hry
26. 12. 2012   #169344

Nějak si musíš nadefinovat odkud se kam dá jít a kde jsi a podle toho se rozhodnout. A pravděpodobně toho bude více, než jen možnosti postupu. Můžeš to udělat nějak takhle (hodně zjednodušeno):

class Lokace {
	//popis ...
	//predmety ...
	Map<String,Lokace> cesty = new HashMap<String,Lokace>();
}
...
Lokace namesti = new Lokace();
Lokace les = new Lokace();
Lokace bazina = new Lokace();

namesti.cesty.put("les", les);
les.cesty.put("namesti", namesti);
les.cesty.put("bazina", bazina);
bazina.cesty.put("les", les);

Lokace lokace = namesti;
System.out.println("Lokace: namesti");

while (!(vstup = in.readLine()).equals("konec")) {
	String[] slova = vstup.split(" ");
	if (slova[0].equals("jdi")) {
		if (slova.length < 2) {
			System.out.println("Kam?");
		} else {
			if (!lokace.cesty.containsKey(slova[1])) {
				System.out.println("Tam se odtud neda jit.");
			} else {
				lokace = lokace.cesty.get(slova[1]);
				System.out.println("Lokace: " + slova[1]);
				//System.out.println(lokace.popis);
			}
		}
	} else {
		System.out.println("Neznamy prikaz.");
	}
}
zlz
C / C++ › Odstranění znaků z pole
26. 12. 2012   #169343

 Standardní funkce na to není. Můžeš to udělat třeba nějak takhle, snad je to samovysvětlující.

int pocetprvku = neco, novypocetprvku = 0;

for (int i = 0; i < pocetprvku; i++)
{
	if (pole[i] != ' ')
		pole[novypocetprvku++] = pole[i];
}
zlz
C / C++ › Chybné znaky v poli
26. 12. 2012   #169342

To i máš o jednu pozici napřed. Přidej -1 i při vkládání \0. (nebo začni s i = 0 a nic neodečítej)

zlz
C / C++ › Moc velké pole
24. 12. 2012   #169292

Neošidíš nic. Buď to na zásobníku nemáš, nebo máš a pak ho zase vyčerpáš.

Řešení je zvětšení zásobníku, nebo umístění mimo zásobník - statickou alokací(rezervací) použitím globálního pole nebo statického lokálního pole, nebo dynamickou alokací na haldě.

A pro zajištění teoretického rychlejšího přístupu v podmínkách, které stejně nenastanou, bys musel udělat víc, než jen vrazit 4MB na zásobník.

zlz
C / C++ › volitelne id zlozene z viace…
24. 12. 2012   #169264

Není to dobře. Name se ti vždycky vytvoří a zruší (a key je nepoužitelný). A do toho na něm vytváříš a rušíš další string. Překvapuje mě, že to funguje. Neřve to už při překladu, že máš string v unionu?

V Boost je Variant a Any, ale to je tady asi zbytečné, prostě tam vraz ukazatel.

zlz
C / C++ › Debug error po free()
23. 12. 2012   #169237

Tak jinak, buď do knihy vkládáš víc dat, nebo do seznamu vkládáš víc knih, než se tam vejde. Možná obojí. To ale takhle nepoznáme.

zlz
Java › 3D projekce - Z-buffer
16. 12. 2012   #169017

V Z-bufferu je vzdálenost jednotlivých pixelů (resp. odpovídajících bodů na povrchu objektů v prostoru). A jak postupně vykresluješ jednotlivé pixely objektů, tak skutečně vykreslíš jen ty, které jsou blíže, než to co tam bylo původně a aktualizuješ hodnotu v Z-bufferu (vzdálenost bodu).

Objekt máš definovaný trojúhelníky o třech vrcholech. Pro každý vrchol máš definován normálový vektor. Při vykreslování jednotlivých pixelů interpoluješ normály definujících vrcholů, získáváš normálu bodu/pixelu, podle které aplikuješ světlo na podkladovou barvu a dostaneš výslednou barvu pixelu.

S difůzním povrchem a kolmou projekcí celkem není co řešit. Netvrď, že při takovém úkolu za sebou nemáš dostatek teorie, abys měl představu, jak to řešit. S čím konkrétně si nevíš rady?

zlz
C / C++ › Prehladavanie adresarovej st…
15. 12. 2012   #168978

Celá cesta je stejná ať jde o soubor, který jen vypíšeš, nebo adresář, do kterého vstoupíš. Takže nepotřebuješ dva stringy a rozhodně nebudou mít úplně jiný obsah. A 100 znaků nemusí stačit, měl bys alokovat tolik, kolik opravdu potřebuješ.

A ten readdir můžeš dát rovnou do podmínky while, ať to uvnitř nemusíš hlídat (před tím continue a na konci bloku).

while ((polozka_adresara = readdir(adresar)) != NULL)
zlz
C / C++ › Libovolný soubor + koncovka…
15. 12. 2012   #168969

Ano, třeba scanf, pokud ti vyhovuje, nebo fgets, nebo něco.

To, co jsi napsal, je pole ukazatelů, vyhoď tu hvězdičku. A nemusíš to alokovat dynamicky.

char nazev[100];
printf("zadej nazev: ");
scanf("%99s", nazev);
f = fopen(nazev, "w");
zlz
C / C++ › Libovolný soubor + koncovka…
15. 12. 2012   #168964

Tak ho necháš zadat název a ten dáš do toho fopen.

zlz
C / C++ › Prehladavanie adresarovej st…
15. 12. 2012   #168941

Když se nepovede opendir, tak dál pracuješ s neplatným adr.

Položku z prvního readdir vůbec nezpracuješ, protože hned na začátku cyklu máš další readdir.

Místo vyhledávání podřetězce (strstr) "..", použij porovnání celého řetezce (strcmp). A to pro "." i "..".

Ten controll vůbec nepotřebuješ a tak jak máš ten if-else napsaný ti to vypíše chybu ať už selže stat, nebo není nastavený controll. To asi nechceš.

Řetězec, do kterého skládáš celou cestu, alokuješ jen podle d_name. Celá cesta se ti do něj nevejde. A chybí ti tam oddělovač.

zlz
Java › Zápis do souboru a výpis ze…
14. 12. 2012   #168818

#8 Buco
Ta podmienka v if by mala vyzerat

Neměla. Chce vypsat pátý řádek a přesně to taky dělá.

zlz
C / C++ › Semaforove procesy v C
11. 12. 2012   #168600

Já tomu nějak nerozumím. Jednoduše by to šlo třeba takhle (bez kontrol chyb):

#define ASZ(x) (sizeof (x) / sizeof (x)[0])

void proc(char id, sem_t *waitsem[], sem_t *postsem[])
{
        int i;

        for (i = 0; waitsem[i]; i++) sem_wait(waitsem[i]);

        for (i = 0; i < 5; i++) {
                printf("%c", id); fflush(stdout);
                sleep(1);
        }

        for (i = 0; postsem[i]; i++) sem_post(postsem[i]);
}

pid_t start(char id, char *wait, char *post)
{
        pid_t pid;

        if ((pid = fork()) == 0) {
                int i;
                char *tok, *saveptr;
                sem_t *wsem[5] = {0}, *psem[5] = {0};

                wait = strdup(wait); post = strdup(post);
                for (i = 0, tok = strtok_r(wait, ",", &saveptr); tok; tok = strt
                        wsem[i] = sem_open(tok, 0);
                for (i = 0, tok = strtok_r(post, ",", &saveptr); tok; tok = strt
                        psem[i] = sem_open(tok, 0);

                proc(id, wsem, psem);

                for (i = 0; wsem[i]; i++) sem_close(wsem[i]);
                for (i = 0; psem[i]; i++) sem_close(psem[i]);

                exit(0);
        }

        return pid;
}

int main(int argc, char *argv[])
{
    struct { char *name; sem_t *sem; } semlist[] = {
        { "/xx01", NULL },
        { "/xx12", NULL },
        { "/xx23", NULL },
        { "/xx35", NULL },
        { "/xx14", NULL },
        { "/xx45", NULL }
    };

    struct { pid_t pid; char *wait, *post; } proclist[] = {
        /*P1*/ { -1, "/xx01", "/xx12,/xx14" },
        /*P2*/ { -1, "/xx12", "/xx23" },
        /*P3*/ { -1, "/xx23", "/xx35" },
        /*P4*/ { -1, "/xx14", "/xx45" },
        /*P5*/ { -1, "/xx35,/xx45", ""}
    };

    int i;

    for (i = 0; i < ASZ(semlist); i++)
        semlist[i].sem = sem_open(semlist[i].name, O_CREAT|O_EXCL, 0777, 0);

    for (i = 0; i < ASZ(proclist); i++)
        proclist[i].pid = start('1'+i, proclist[i].wait, proclist[i].post);

    sem_post(semlist[0].sem);

    for (i = 0; i < ASZ(proclist); i++)
        waitpid(proclist[i].pid, NULL, 0);

    for (i = 0; i < ASZ(semlist); i++) {
        sem_close(semlist[i].sem);
        sem_unlink(semlist[i].name);
    }

    return 0;
}
zlz
C / C++ › Semaforove procesy v C
10. 12. 2012   #168595

Takže ty klienty spouštíš přes nějaký exec*() ? Tak třeba každému můžeš dát název semaforu/ů do argv

execl("./klient", "./klient", "mujsem1", NULL);
...
zlz
C / C++ › Semaforove procesy v C
10. 12. 2012   #168584

Jaké nic? Nepiš si o radu, když na to dlabeš a rovnou to dej do inzerce.

zlz
C / C++ › Bílé znaky v souboru
9. 12. 2012   #168514

Tak třeba takhle, ať to nemáte moc podobné. Porovnávání s předchozím znakem.

char c, old = ' ';
while (!feof(soubor1))
{
	fscanf(soubor1, "%c", &c);

	if (!isspace(c))
	{
		fprintf(soubor2, "%c", c);
		if (c == '.')
			fprintf(soubor2, "\n");
	}
	else //isspace
	{
		if (old != '.' && !isspace(old))
			fprintf(soubor2, " ");
	}

	old = c;
}
zlz
C / C++ › Bílé znaky v souboru
9. 12. 2012   #168513

To počitadlo bych nuloval až ta řada whitespace skončí, v tom bloku !isspace.

Co se týče nahrazení, tak to můžeš udělat na začátku řady (isspace) - zapsat mezeru při whiteSpace == 1 a další ignorovat; nebo na konci řady (!isspace) - vypsat mezeru pokud je whiteSpace > 0.

Snad to dává smysl, už mi to moc nemyslí. Nakonec je jedno, kolik těch mezer bylo, ale s tím počitadlem to budeš mít originální. Tady jsme to řešili nedávno:

http://programujte.com/forum/vlakno/22771-formatovani-textu-ze-souboru-do-souboru/

zlz
C / C++ › Načítání čísel ze vstupu
9. 12. 2012   #168499

To je vpořádku. ^Z funguje jako konec vstupu jen na začátku řádku, jinak je součástí vstupu.

Pokud to nutně chceš, tak to stačí přidat do toho testu důvodu přerušení načítání:

if (!feof(f) && fgetc(f) != 26/*^Z*/)
zlz
Java › výstup do souboru
9. 12. 2012   #168489

To true je druhý parametr pro PrintWriter, dej ho tomu FileWriter.

zlz
C / C++ › Bílé znaky v souboru
9. 12. 2012   #168481

Tak předtím byl_whiteSpace měl pořád hodnotu 1, takže podmínka nebyla splněna nikdy. Teď má pořád hodnotu 0, takže je ta podmínka splněna vždy.

Musíš tam dodělat tu logiku, že z každé řady whitespace se první vypíše jako mezera a další v řadě se ignorují. Tzn. ten byl_whiteSpace podle potřeby přepínat. Nebo to řešit jinak.

zlz
C / C++ › Bílé znaky v souboru
9. 12. 2012   #168465

Vypisuješ mezeru, když byl_whiteSpace==0, ale nikdy se nenastaví na 0.

zlz
Java › objekt nemá nastavené getry
8. 12. 2012   #168426

getPredmet() vrací List<PredmetDTO> a getId() je metoda.

Takže místo

login.getPredmet().getId

by mohlo být třeba

login.getPredmet().get(0).getId()

Ale nevím, jestli to bude dělat to, co zamýšlíš.

 

 

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