C nacitani pres fgetwc
Hele, nemuzu prijit na to co delam spatne ...
chary to nacita, ale pri vypisu se nic neobjevi :( vidim to tak, ze blbe pracuju s tema stringama, ale konkretni problem nikde nevidim :cry
[code]
FILE *file;
file = fopen(soubor, "r");
if (file == NULL)
return FAIL;
wchar_t *polozka = malloc(sizeof(wchar_t));
if (polozka == NULL)
return FAIL;
wchar_t *tmp;
wint_t znak;
int chread = 0;
while ((znak = fgetwc(file)) != WEOF)
{
chread++;
if(znak == L'\n')
{
polozka[chread] = L'\0';
wprintf(L"%ls\n", polozka); // tady patri "insertlast(list, polozka, chread);" ale zatim primy vypis
free(polozka);
chread = 0;
polozka = malloc(sizeof(wchar_t));
if (polozka == NULL)
return FAIL;
}
else{
tmp = malloc((chread+1) * sizeof(wchar_t));
if (tmp == NULL)
return FAIL;
wcscpy(tmp, polozka);
free(polozka);
polozka = tmp;
polozka[chread] = znak;
}
}
if (fclose(file) != 0) return FAIL;
return EXIT_SUCCESS;
[/code]
Ze souboru to ma po radcich nacitat jmena /stringy s predem neurcenou velikosti
chary to nacita, ale pri vypisu se nic neobjevi :( vidim to tak, ze blbe pracuju s tema stringama, ale konkretni problem nikde nevidim :cry
[code]
FILE *file;
file = fopen(soubor, "r");
if (file == NULL)
return FAIL;
wchar_t *polozka = malloc(sizeof(wchar_t));
if (polozka == NULL)
return FAIL;
wchar_t *tmp;
wint_t znak;
int chread = 0;
while ((znak = fgetwc(file)) != WEOF)
{
chread++;
if(znak == L'\n')
{
polozka[chread] = L'\0';
wprintf(L"%ls\n", polozka); // tady patri "insertlast(list, polozka, chread);" ale zatim primy vypis
free(polozka);
chread = 0;
polozka = malloc(sizeof(wchar_t));
if (polozka == NULL)
return FAIL;
}
else{
tmp = malloc((chread+1) * sizeof(wchar_t));
if (tmp == NULL)
return FAIL;
wcscpy(tmp, polozka);
free(polozka);
polozka = tmp;
polozka[chread] = znak;
}
}
if (fclose(file) != 0) return FAIL;
return EXIT_SUCCESS;
[/code]
Ze souboru to ma po radcich nacitat jmena /stringy s predem neurcenou velikosti
Mi to zafungovalo i s výpisem, pokud jsem provedl opravy označené znaky *********:
[quote=Salamander;485909]Hele, nemuzu prijit na to co delam spatne ...
int chread = 0; *********************************opravit: int chread = -1;
while ((znak = fgetwc(file)) != WEOF)
{
wprintf(L"%ls\n", polozka); // tady patri "insertlast(list, polozka, chread);" ale zatim primy vypis
free(polozka);
chread = 0; *********************opravit: chread = -1;
}
else{
return FAIL;
wcscpy(tmp, polozka); ******** opravit: wcsncpy(tmp, položka, chread);
free(polozka);
}
}
if (fclose(file) != 0) return FAIL;
return EXIT_SUCCESS;
[/code]
[/quote]
Snad ti to pomůže (samotný kód jsem ještě úplně nepochopil).
[quote=Salamander;485909]Hele, nemuzu prijit na to co delam spatne ...
int chread = 0; *********************************opravit: int chread = -1;
while ((znak = fgetwc(file)) != WEOF)
{
wprintf(L"%ls\n", polozka); // tady patri "insertlast(list, polozka, chread);" ale zatim primy vypis
free(polozka);
chread = 0; *********************opravit: chread = -1;
}
else{
return FAIL;
wcscpy(tmp, polozka); ******** opravit: wcsncpy(tmp, položka, chread);
free(polozka);
}
}
if (fclose(file) != 0) return FAIL;
return EXIT_SUCCESS;
[/code]
[/quote]
Snad ti to pomůže (samotný kód jsem ještě úplně nepochopil).
[quote=gabera;485932]Mi to zafungovalo i s výpisem, pokud jsem provedl opravy označené znaky *********:
Snad ti to pomůže (samotný kód jsem ještě úplně nepochopil).[/quote]
Jo, diky moc, ja vedel ze je nejakej problem s tema indexama :D
Jestli chces neco vysvetlit, klidne napis, teorii zvladam, praxe je horsi :D
Snad ti to pomůže (samotný kód jsem ještě úplně nepochopil).[/quote]
Jo, diky moc, ja vedel ze je nejakej problem s tema indexama :D
Jestli chces neco vysvetlit, klidne napis, teorii zvladam, praxe je horsi :D
Tak to jeste chtelo trosku poopravt, ale uz me to bezi jak ma, kod jsem klidne hodim potom cely, ale zatim to bohuzel nejde ;)
No, jestli to jeste nekoho zajima, uz jsem muzu dat cely zdrojak :D
Radi to abecedne textaky (delany na jmenny seznamy), podpora loc je trosku sporadicka ... ale jinak to snad i funguje :D Vcetne te dynamicke alokace :)
http://dl.dropbox.com/u/20809963/Projekty%20C/proj4/proj4.c
Radi to abecedne textaky (delany na jmenny seznamy), podpora loc je trosku sporadicka ... ale jinak to snad i funguje :D Vcetne te dynamicke alokace :)
http://dl.dropbox.com/u/20809963/Projekty%20C/proj4/proj4.c
Jo, jenom upozorním, že pokud to někdo hodlá použít jako školní projekt (teď mluvím ke studentů VUT, kteří to určitě eventuálně najdou), tak plagiáty se kontrolují, a 100% by to odhalili, a já opravdu mám lepší věci na práci, než chodit k disciplinárnímu řízení zjišťovat, jestli je to můj kód, nebo ne ...
Navíc je tam přidaná malá chybička v té tabulce řadící funkce, takže to neodpovídá české normě :)
Každopádně je to k dispozici maximálně pro inspiraci, doufám, že to chápete :)
Navíc je tam přidaná malá chybička v té tabulce řadící funkce, takže to neodpovídá české normě :)
Každopádně je to k dispozici maximálně pro inspiraci, doufám, že to chápete :)