OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 29.03.2024, 11:33

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 159 ]  Přejít na stránku Předchozí  1 ... 5, 6, 7, 8, 9, 10, 11  Další
Autor Zpráva
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 09.09.2018, 20:04 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10111
Bydliště: Praha
Has thanked: 1953 times
Been thanked: 1517 times
Citace:
Co říkáš na tohle: https://www.respekt.cz/spolecnost/zacin ... li-v-testu Kdyby tomu neudělali od začátku antireklamu tím, že se bude učit "programování" od první třídy, tak by to vypadalo mnohem sympatičtěji. Ještě jak to poberou dnešní učitelé.


Co učitelé? Ale co rodiče, kteří se po večerech se smrady učí to, co děcka neumí pochopit. Když to nepochopí ani rodič, tak tu máme předmět, z kterého se bude zdárně propadat.

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 09.09.2018, 22:46 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
faraon píše:
Co říkáš na tohle: https://www.respekt.cz/spolecnost/zacina-revoluce-ve-vyuce-informatiky-jak-byste-obstali-v-testu Kdyby tomu neudělali od začátku antireklamu tím, že se bude učit "programování" od první třídy, tak by to vypadalo mnohem sympatičtěji. Ještě jak to poberou dnešní učitelé.


No nevím - tímhle by mě asi jako malého (zřejmě ani jako velkého) k programování nepřilákali...

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 10.09.2018, 08:05 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
Mně to připomnělo zkoušku z informatiky na MFF UK z roku 2002.
To snad raději SGP Baltík.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 10.09.2018, 10:13 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Taka prakticka otazka (na inu temu): Ako v cecku zistim dlzku suboru ?
Malo by to byt portable (funkcne pod unix aj windows) a bez (zbytocneho) seekovania a zistovania aktualnej pozicie.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 10.09.2018, 12:14 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 360 times
Been thanked: 304 times
Da se pouzit treba:
Kód:
#include <sys/stat.h>
struct stat st;
stat(filename, &st);
size = st.st_size;

a nebo:
Kód:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

// fd = fileno(f); //if you have a stream (e.g. from fopen), not a file descriptor.
struct stat buf;
fstat(fd, &buf);
off_t size = buf.st_size;

pokud uz je soubor treba otevreny.

S tim seekovanim to neni zase tak spatne. OS to urcite neprochazi sektor po sektoru az na konec. A mas jistotu, ze ten konec existuje. Kdyz pouzijes stat, tak je to informace jen z hlavicky, bez ohledu na stav souboru na disku.

Ve Win by byla jeste funkce GetFileSize nebo GetFileSizeEx, ale netusim, jak jsou vnitrne implementovane.

P.S.: Ja vzdycky zkousim neco jako "c how to get file size" a pak se tim prohrabavam ;-)

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 10.09.2018, 12:31 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
Mikes21 píše:
Da se pouzit treba:
Kód:
#include <sys/stat.h>
struct stat st;
stat(filename, &st);
size = st.st_size;

a nebo:
Kód:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

// fd = fileno(f); //if you have a stream (e.g. from fopen), not a file descriptor.
struct stat buf;
fstat(fd, &buf);
off_t size = buf.st_size;

pokud uz je soubor treba otevreny.

S tim seekovanim to neni zase tak spatne. OS to urcite neprochazi sektor po sektoru az na konec. A mas jistotu, ze ten konec existuje. Kdyz pouzijes stat, tak je to informace jen z hlavicky, bez ohledu na stav souboru na disku.

Ve Win by byla jeste funkce GetFileSize nebo GetFileSizeEx, ale netusim, jak jsou vnitrne implementovane.

P.S.: Ja vzdycky zkousim neco jako "c how to get file size" a pak se tim prohrabavam ;-)


Takže tedy záleží jak moc přesná ta informace o velikosti souboru má být.
Jestli tak pro informativní výpis či výpočet - fstat(), nebo pro zcela přesné zpracování - fopen(), fseek(f,SEEK_END,0), ftell(), fclose().


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 11.09.2018, 07:34 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Vdaka, riesenie s fstat-om ma nenapadlo, a vyzera ze pekne funguje (aj na win).

Inak na win som pouzival filelength(fd) ale zda sa ze toto zaviedol kedysi Borland vo svojom Turbo C a neskor ho prebral aj ten mally mekky. Samozrejme na windowsoch vobec nemusim ist cez vseliake kniznice a mozem rovno pouzit napr. spominane GetFileSize, len som hladal portable riesenie kde by som nemusel ani #ifdef-ovat.

Viem ze (f)seek nemusi citat sektory suboru, ale toto riesenie mi je nesympaticke z principu, pretoze na to, aby som nieco zistil, musim nieco ine nastavovat (a potom to zase vracat nazad). A toto mi je vylozene proti srsti, hlavne ked viem, ze pozadovana informacia je v systeme priamo pritomna a netreba ju nejak komplikovane vyrabat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 11.09.2018, 11:38 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 360 times
Been thanked: 304 times
Ono taky trochu zalezi, co chces s tim souborem delat potom. Jestli chces pridavat nejake data na konec, tak se ten seek vyplati. A pak se hodi, kdyz ti FS overi, ze soubor je na konci v poradku. Pokud ho chces nacitat jen jako treba config soubor, tak te moc nezajima, co je na konci. Proste ctes az do konce a zpracovavas data. Urcite bych ale nezjistoval velikost souboru proto, aby jsi alokoval nejakou pamet, ktera s tou delkou souvisi. Mohou se objevit nejake problemy, ktere musis kontrolovat.
Jak pisu, zalezi na kontextu. Hodne zdaru.

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 11.09.2018, 15:46 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Proste najprv chcem uzivatelovi vypisat presnu dlzku suboru v bajtoch...
Mikes21 píše:
Ono taky trochu zalezi, co chces s tim souborem delat potom.
...
Urcite bych ale nezjistoval velikost souboru proto, aby jsi alokoval nejakou pamet, ktera s tou delkou souvisi.
...a potom si alokujem tolko bajtov pameti a subor sem cely nacitam ;)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 12.09.2018, 08:30 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
Busy píše:
Proste najprv chcem uzivatelovi vypisat presnu dlzku suboru v bajtoch...
Mikes21 píše:
Ono taky trochu zalezi, co chces s tim souborem delat potom.
...
Urcite bych ale nezjistoval velikost souboru proto, aby jsi alokoval nejakou pamet, ktera s tou delkou souvisi.
...a potom si alokujem tolko bajtov pameti a subor sem cely nacitam ;)


Tak to ty jsi napsal program applydeltaiso...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 12.09.2018, 08:49 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
baktra píše:
Tak to ty jsi napsal program applydeltaiso...
...to je co za program ???


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 12.09.2018, 09:11 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
https://linux.die.net/man/8/applydeltaiso
Ale až takhle tragicky bych to zase neviděl ;-)

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 12.09.2018, 09:27 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
To je program, který po předložení 3GB delta ISO souboru suše oznámil, že nemůže alokovat 3 GB paměti a skončil.
Tehdy jsem měl malý odkládací oddíl.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 12.09.2018, 09:36 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Však to je správné jednání, určitě lepší než kdyby zabral všechnu použitelnou paměť a po půlhodině swapování hodil BSOD.
Ale je fakt že by se to dalo prohnat rourou a stačilo by na to pár kilobajtů ;-)

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Programování v C
PříspěvekNapsal: 12.09.2018, 10:56 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Tak to ano, 32 (a menej) bitove aplikacie tazko naalokuju 3GB, tam je taketo spravanie ocakavane. Avsak v mojom pripade sa dlzka suboru (zatial) pohybuje pod 1GB, takze nemusel by byt problem mat cely subor naraz v pameti. Keby to malo byt cisto pod windows tak pouzijem MapViewOfFile, ale kedze to chcem portable, tak mi asi neostava nic ine len poctivo pamet alokovat a subor do nej nahrat standartnym sposobom ( (f)open / (f)read / (f)close ).

Je tu filozoficka otazka ohladom prerobenia algoritmu na spracovanie suboru tak aby subor nemusel byt cely v pameti. Samozrejme toto je tiez cesta, lenze ten algoritmus musi byt optimalizovany na rychlost a z toho dovodu je velmi vhodne mat vsetky data suboru naraz k dispozicii.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 159 ]  Přejít na stránku Předchozí  1 ... 5, 6, 7, 8, 9, 10, 11  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 3 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz