Nikto nic ???
Příspěvky odeslané z IP adresy 87.244.219.–
Zdravim,
tymto by som sa chcel spytat vsetkych ci nemaju nejake skusenosti s prevadzanim Java anotacii na XML, resp. nejake postrehy, rady, varovania, mozno odkazy na internet...
Je to totizto predmetom mojej bakalarskej prace a rad by som ju spravil co mozno najlepsie...
Za vsetky rady dik moc...
Zmeny v ramci API, nie co sa tyka jazyka... Pre blizsie info hladaj changelog, pripadne whitepaper...
operátor @ by som nepoužil, pokial by som si nebol istý že ho použiť chcem. V prípade že si neskôr urobíš vlastný error handler tak aj keď v ňom budeš kontrolovať error reporting level každopádne dôjde ku spomaleniu. V tomto prípade to je jedno, ale ak by sa @ ocitol v nejakom cykle a vyhodil len 1000 notices, už by to bolo cítiť...
Pre mňa je jednoznačne isset jediné správne riešenie, ten operátor ako aj možnosť zníženia E_ALL na nižší level by mali zrušiť...
Odpoveď na otázku: www.php.net/intval
1. int(10) zožerie rovnako veľa pamäte ako int(1). Ide len o šírku stĺpca - o to, že na koľko pozícií sa má číslo vypísať, keď za zavolá.
2. celočíselné stĺpce majú vlastnosť zerofill, ktorú má tvoj stĺpec nastavenú na true - kôli tomu sa ti to číslo doplní nulami. zmeň ten stĺpec na zerofill=0 a máš po probléme,
3. tú funkciu intval použi aj tak (aj keď vykonáš bod 2) PHP totiž z databázy získané hodnoty chápe ako stringy, a niekedy je lepšie, keď mu to vysvetlíš ručne.
Ja to mám tiež na localhoste, teraz dokonca na windowse, a ide to...
Ak to chceš skúsiť takto, tak v .conf/cfg.language.php nastav $lang_setting_in_subdomain = false; - nastavíš tak, adresárovú verziu a zadaj url http://localhost/ malo by to spraviť redirect na http://localhost/en/ Nemám to otestované, no malo by to bežať aj takto.
Ak si to chceš ale poriadne otestovať - aj subdoménové nastavovanie jazyka - potrebuješ si "navirtualizovať" doménu...
1. na apache vytvor virtual host ktorý bude prijímať všetky requesty na (hocičo).multilang.com:
<VirtualHost *:80>
ServerName multilang.com
ServerAlias *.multilang.com
DocumentRoot /cesta/kam/si/uložíš/projekt/
</VirtualHost>
<Directory "/cesta/kam/si/uložíš/projekt/">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
2.1 do /cesta/kam/si/uložíš/projekt/ nakopíruj súbory
2.2 môžeš opraviť bug, ktorý som našiel v ctl.language_and_url.php na riadku 36 - doplň do podmienky && $lng[0]!=='.'
2.3 môžeš vymazať súbor .inc/.Untitled-1.marks -- je to bordel ktorý som si všimol len teraz - nechal to tam môj editor keď padol.
3. nadefinuj na svojom počítači preklad domény www.multilang.com na lokálnu adresu:
3.1. Nájdi súbor hosts
vo windowse: C:\WINDOWS\system32\drivers\etc\hosts
v linuxe: /etc/hosts
3.2. doplň do neho riadok:
127.0.0.1 multilang.com www.multilang.com cs.multilang.com sk.multilang.com en.multilang.com
Po uložení súboru by mal tvoj pc prekladať danú doménu na ip 127.0.01 - overiť to môžeš napr programom ping:ping cs.multilang.com
4. Naťukaj do prehliadača www.multilang.com a malo by to bežať.
Neošetril som existujuce cesty, ak zadáš do url cestu do adresára, alebo k nejakému súboru, ktorý fyzicky existuje, vyhodí to chybu (forbidden). Ak by si zadal iba http://localhost/ a v .conf/cfg.language.php nastavil $lang_setting_in_subdomain = false; - asi by to potom šlo. Pri subdoménovom móde je potrebné aby doména obsahovala aspoň jednu bodku (napr: localhost.localdomain), inak to naozaj bude vyhadzovať chybu na ktorú som nemyslel.spoustim localhost/content/index.html.php ale pisem mi to chybu
Do prehliadača ale nezadávaj cestu /content/index.html.php. To je vnútorná cesta, pod ktorou je script uložený. Ten sa naincluduje v súbore controller.php na 18 riadku. Zadaním akejkoľvek url sa spustí práve controller.php a ten si prečíta požadovanú cestu a naincluduje potrebný súbor.
Zadaj len niektorú z týchto ciest (je tam preddefinovaný - narýchlo zbúchaný príklad):
www.multilang.com/
www.multilang.com/my_projects/
www.multilang.com/my_projects/my_first_project.html
www.multilang.com/my_projects/my_other_project.html
www.multilang.com/about_me.html
Uff prave som si vsimol, ze tam mala byt ta metoda, takze oprava :
import java.util.Random;
public class Kostky {
public static void main (String[] args) {
Random random = new Random();
int konecneCislo = random.nextInt(11) + 2;
System.out.format("Konecne cislo bylo dosazeno %d hody.", pocetHodu(konecneCislo));
}
private static int pocetHodu(int konecneCislo) {
Random random = new Random();
int kostka1 = 0,
kostka2 = 0,
pocethodu = 1;
while (kostka1 + kostka2 != konecneCislo) {
kostka1 = random.nextInt(6) + 1;
kostka2 = random.nextInt(6) + 1;
pocethodu++;
}
return pocethodu;
}
}
Cauko, akoze nic v zlom, ale ked uz toto niekto nedokaze spravit, tak dost bieda... Inak cely ten zfrojak hovori o tom, ze sa snazis zrejme moc skoro sa naucit programovat, ale zakladne veci ti vobec niesu zrejme... Akoze predpokladam ze toto co si tu plastla, tak zrejme nejako zle sa skopirovalo, pretoze to je zdrojak uplne bez rozmyslu napisany...
mohlo bz to vyzerat napriklad takto :
import java.util.Random;
public class Kostky {
public static void main (String[] args) {
Random random = new Random();
int kostka1 = 0,
kostka2 = 0,
konecnecislo = random.nextInt(11) + 2,
pocethodu = 1;
while (kostka1 + kostka2 != konecnecislo) {
kostka1 = random.nextInt(6) + 1;
kostka2 = random.nextInt(6) + 1;
pocethodu++;
}
System.out.format("Konecne cislo bylo dosazeno %d hody.", pocethodu);
}
}
V jave sa vsetky primitivne datove typy prenasaju len pomocou hodnoty...
A referencne pomocou referencie...
Dlasia vec je, ze String nieje primitivny datovy typ, je len immutable, teda nemenny (nemozes ho menit, ale pri akomkolvek pokuse o zmenu sa vytvori novy objekt a ten sa priradi do premennej...)
Myslíme objektově v jazyce Java 5.0 = tato kniha je pisana velmi rozvlacne, polka knihy je dost o nicom, a taktiez dost brzdi cloveka BlueJ ako vyvojove prostredie... Od polky je celkom dobra na zaklady...
Návrhové vzory = o navrhovych vzoroch nemas moc na vyber... jedine zeby si este z dakade pozhanal knihu od GoF, akurat ze toto je zas pisane v C++, takze to moze byt dost nevyhoda, od Pecinovskeho je zas v JAVE
Java Programujeme profesionálně = pekna kniha zamerana dost na Swing ako taky
Ach jaj a takto to dopadne ked radi, kto ani sam nema sajnu...
Samozrejme ze argc udava pocet parametrov, lenze treba mysliet, ze 1. je vzdy to, ako sa program spusti... Cize v tomto chyba urcite nieje...
A inak ja som tento program vyssie spravil a mne ide v poho aj pod win a aj pod linuxami...
Zdravim,
napisal som jeden velmi jednoduchy program, co ma len mat 2 vnorene cykly a tie maju byt robene vyhradne cez LOOP, ale nejde a nechapem preco... zdrojak je tu :
.model SMALL
.stack 100H
.data
.code
start : MOV AX, @data
MOV DS, AX
MOV AX, 0
MOV CX, 10
vonkajsi : PUSH CX
MOV BX, CX
vnutorny : MOV CX, 10
INC AX
LOOP vnutorny
POP CX
LOOP vonkajsi
MOV AH, 02H
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
MOV DL, AL
INT 21H
MOV AX, 4C00H
INT 21H
END start
Mas to uplne cudne napisane, ta podmineka na Acko znamena, ci je Acko nula...
V cecku by to bolo nejak takto
while (1) {
scanf("%d", &cislo);
if (isdigit(cislo))
break;
else
printf("Neni cislo!!!");
}
Rado sa stalo
Mas to celkovo divne pisane...
1. kukni si jeden riadok, zrejme si tam chcel dat toto :
/* vytvořím cílovy soubor */
if((vystup=fopen(argv[2],"r")) != NULL) {
...
2. toto s tym osetrenim, ze len ked sa tam subor nenachadza mi pride velmi divne...
3. vobec nechapem na co je tam kus kodu ze :
if( pocet_slov != 2 ) {
slovo[znaky] = '\0';
fputs(slovo,vystup);
}
a taktiez na co je dobre
if (znaky>250)
znaky=250;
4. nasledovna vec nie je vobec nutne pisat ... slovo[0]='\0';
5. celkovo mas zle napisanu logiku, lebo ono ti to nemusi dobre pisat slova z toho dovodu, ze ked zadas napr. 3 slova, ale za poslednym nedas medzeru, tak ti vsetky tri vypise...
slova treba osetrovat na prazdne znaky a nie len na medzeru...
Taze upraveny program, inak funkcny nie len pod win ako tvoj je tu:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
FILE *vstup,
*vystup;
char c,
slovo[256];
int znaky=0,
pocet_slov=0,
slova;
/*overeni argumentu*/
if(argc != 3) {
printf("Chybny pocet argumentu !\n");
fflush(stdin);
getchar();
exit(1);
}
/* otevřu zdrojový soubor */
if((vstup=fopen(argv[1],"r"))==NULL) {
printf("Nepodarilo se otevrit zdrojovy soubor !\n");
fflush(stdin);
getchar();
exit(1);
}
/* vytvořím cílovy soubor */
if((vystup=fopen(argv[2],"r")) != NULL) {
printf("Cilovy soubor existuje, spustte program s jinym parametrem cilového souboru !\n");
fflush(stdin);
getchar();
exit(1);
}
else {
if((vystup=fopen(argv[2],"w"))==NULL) {
printf("Cilovy soubor se nepovedlo vytvorit !\n");
fflush(stdin);
getchar();
exit(1);
}
}
/* čtu soubor po znacích */
while((c=fgetc(vstup)) != EOF) {
/* když je to mezera */
if( c == ' ' || c == '\n' || c == '\t') {
if (slova == 1) {
pocet_slov++;
/* zapisuju slovo, pokud neni třetím */
if ((pocet_slov % 3) != 0) {
slovo[znaky] = ' ';
slovo[znaky+1]='\0';
fputs(slovo,vystup);
}
}
/* vynuluji délku znaku */
znaky = 0;
slova = 0;
}
else {
slovo[znaky] = c;
znaky++;
slova = 1;
}
}
/* uzavřu oba soubory */
fclose(vystup);
fclose(vstup);
fflush(stdin);
getchar();
return 0;
}
Popis lepsie o co ti ide, lebo z toho vobec nieje jasne, co chces urobit...
Ja praveze vobec nepouzivam double, ale potrebujem umocnovat, co robit cez pow, ktora vracia double...
Zdravim,
napisal som jeden program a fungoval fajn, az pri velkych cislach zacal hadzat zle vysledky, tak si mysim ze daco bude pretekat, tak som zvecsil rozsah z int na long int, ale chyba nebola v tom...
Tak som hodil debug a na co som neprisiel? nechapem preco to tak robi...
Mam kod...
kontrola = (long)pow((double) 10,(double) (3 * i)); pricom kontrola je typu long int
vsetko je pokne, do tretej iteracie, ked by mala mat kontrola hodnotu '1 000 000 000', co ale mat nebude a bude mat len '999 999 999'... Nechapem ale preco, ved je to long int, co ma ovela vecsiu presnost, zeby ale bolo double male? tiez ma ovela vecsiu presnost, tak neviem
Debugovane pod DevC++ a aj MinGW Developer studio a obidva hodilu tu istu hodnotu...
Teraz zase chyba zlib1.dll kniznica...
Ked uz tak tak system bude fungovat len pod winom...
Co ty fakt nevidis ten velmi podstatny prikaz fflush(stdin); na vymazanie vstupneho buffra?
Alebo ked to ani tak nepojde, tak tu hod rovno cely zdrojak...
musis predtym vysictit vstupny buffer
t.j. napises na konie programu
...
fflush(stdin);
getchar();
return 0;
}
To Gadael,
ono takto, dotyzny nenapisal ze nemoze pouzit uz naprogramovane funkcie...
A taketo veci ma mozno zmysel programovat len ked sa clovek uci, ako algorimus je ti to na nic a taktiez je lepsie pouzivat predom uz definovane funkcie, co su jednak rokmi overene, ze pracuju spravne, a jednak su najme rychlostne optimalizovane, takze urcite budu rychlejsie ako keby si si to sam napisal...
Neznalost standardnych funkcii je jasna pre tych co ti radili...
Na taketo veci samozrejme existuju funkcie v standarde jazyka C...
#include <string.h>
a funkcie strstr(str1, str2), ktora ti hlada str2 v str1 a strchr(str, char) ktora ti hlada znak char v retazci str ...
Akurat ze strstr s atrchr vracaju pointre, ktore ale ty vobec nepotrebujes pouzivat, takze v tom neni problem, ani ked s nimi nevies pracovat...
A este jedna vec, nevie uz presne, to musis vyskusat, ale sa mi zda, ze ked budes viac krat hladat ten isty retazec a znak v tom istom retazci, tak stale dostavas ten isty pointer, taze to zrejme bude treba osetrit takym sposobom, ze proste prepises v povodnom retazci znaky, ktore odpovedaju hladanemu znaku, alebo retazci nejakymi inaksimi znakmi, napr aj prazdnymy znakmi, teda medzerami... ' '