| | |
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Autor | Správa |
---|
Registrovaný: 11.11.11 Prihlásený: 20.10.21 Príspevky: 14 Témy: 4 |
Zdravim . Pracujem v C++ so subormi. Avsak potreboval by som pouzivat nejake prikazy na vypis obsaku adresarov, pracu so subormi a adresarmi - nejaky suborovy system. Natrafil som na nieco ako boost c++ filesystem libraries, ale nakolko je moja anglictina nulova, potreboval by som nieco v "ceskoslovenskom" jazyku. Vie mi niekto pomoct ako si poradit s pracou s adresarmi?
Dakujem
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 05.03.2012 11:03 | |
|
Boost by bola najjednoduchsia volba, ale najst k tejto kniznici dokumentaciu v SK alebo CZ bude asi tazke. A ak sa aj nieco najde, bude to iba odvar k oficialnej dokumentacii. Osobne si ale myslim, ze na navod, ako nainstalovat kniznicu do systemu, netreba nejaku svetabornu znalost cudzieho jazyka + stale mas moznost pomoct si prekladacom, napr http://www.translate.google.sk. Dalej je tam mnoho prikladov, kde ti anglictinu koniec koncov ani netreba, staci to len slepo skopirovat a uz len sa hrat s kodom, co to robi.
Ak predsa len nepouzijes boost, tak stale mas moznost pracovat s API konkretneho operacneho systemu. Pre windows napr WINAPI. Na zobrazenie obsahu zlozky by si napriklad mohol pouzit funkciue FindFirstFile a FindNextFile.
|
|
Registrovaný: 11.11.11 Prihlásený: 20.10.21 Príspevky: 14 Témy: 4 | Napísal autor témy imagexxl: 06.03.2012 8:24 | |
|
Dakujem za radu, pouzil by som ten BOOST, ale akosi si neviem rady. Stiahol som si subor boost_1_49_0.zip z oficialnych stranok www.boost.org a rozbalil. Cakal som tam nejaku instalacku
ale je tam toho dost a neviem ako to zakomponovat a ako zacat pouzivat. Hladal som aj s prekladacom kadetade,kedze neviem anglicky, ale nepomohol som si.
Co s tym dalej prosim? Ako to nainstalovat? A potom kde najdem nejaky popis prikazov na pracu so subormi a adresarmi. Viem ze som ako mechom udrety, ale neviem si poradit. Dakujem
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Programuješ v c++ bez akýchkoľvek znalostí angličtiny? To ako vážne? Je ti jasné, že ti sem môžeme písať akékoľvek návody, o dva dni môžeš byť späť zas s ďalším problémom a ver, že tých problémov bude ešte nespočetne veľa. Ako to budeš riešiť?
http://www.boost.org/doc/libs/1_49_0/mo ... ndows.html
_________________ C#, PHP, ... |
|
Registrovaný: 11.11.11 Prihlásený: 20.10.21 Príspevky: 14 Témy: 4 | Napísal autor témy imagexxl: 06.03.2012 8:50 | |
|
Ja som len hobby programator, ziaden fachman. No a predsa bezne veci su v slovencine, alebo cestine. Je kopec literatury. Aby som to zhrnul. Potrebujem nieco, cim by som mohol mazat
subory v adresaroch. Priklad. Na C:\User\...... mam nejaku stromovu strukturu
a chcem aby som mohol mazat subory v adresari do ktoreho cestu zadam. Ciastocne som si poradil prikazom system("del c:\\Users\\roman\\Videos\\*.*"); Cize klasicky prikaz DOSu del. Avsak pyta sa ci naozaj vykonat operaciu, pripadne robi problemy, ze subory nechce vymazat koli atributom suboru. Potrebujem preto nieco ine. Dakujem
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 06.03.2012 11:20 | |
|
imagexxl píše: Stiahol som si subor boost_1_49_0.zip z oficialnych stranok www.boost.org a rozbalil. Cakal som tam nejaku instalacku ale je tam toho dost a neviem ako to zakomponovat a ako zacat pouzivat
Tusim tam je k dispozicii aj instalacia, ale v kazdom pripade ide iba o to, ze vo vyvojom prostredi, v ktorom pracujes, iba ponastavujes cesty k hlavickovym suborom boost-u a k jeho knizniciam. A potom aj pridat do premennej prostredia PATH ( vo windowse ) potrebnu cestu k zlozke bin, co by tusim instalacia mala spravit za teba. Ale uznavam, ze bez anglictiny to moze byt troska problemove.
Podme sa teda pozriet na tvoj problem z druhej stranky: ak potrebujes mazat subory v nejakej zlozke mozes pouzit funkcie, ktore ti na to ponuka operacny system. Povedzme, ze chceme zmazat subor "zmazma.txt", ktory je na ploche uzivatela "imagexxl". Postup bude nasledovny:
Kód: #include <windows.h> #include <iostream>
using namespace std;
int main() {
/* zmazanie suboru "zmazma.txt" z plochy - nezabudnut na dve lomitka */ string cestaKSuboru = "C:\\Users\\imagexxl\\zmazma.txt";
/* funkcia DeleteFile */ int uspech = DeleteFile( cestaKSuboru.c_str() ); if ( uspech == true ) cout << "-- subor uspesne zmazany" << endl; else cout << "-- subor sa nepodarilo zmazat. GetLastErorr vratilo hodnotu: " << GetLastError() << endl;
return 0;
}
Funkcia DeleteFile: http://msdn.microsoft.com/en-us/library ... 15(v=vs.85).aspx
Pri uspesnom zmazani je jej navratova hodnota true ( nenulove cislo ), v opacnom pripade vrati false ( nulu ) a blizsie informacie sa ziskaju volanim funkcie GetLastError, ktora vrati chybove cislo. Podla tohto cisla sa uz dozvies blizsi dovod, preco sa subor nepodarilo zmazat, z tejto tabulky:
http://msdn.microsoft.com/en-us/library ... 81(v=vs.85).aspx
Toto bol iba jeden priklad, na jednu funkciu. Operacny system ti ponuka funkcie na akukolvek operaciu so subormi ( koniec koncov, kniznice ako boost ich iba zapuzdruju ). Ako som uz spomenul: vyhladavanie, vytvaranie suborov, mazanie, kopirovanie, presuvanie - to vsetko ti je ako programatorvi dostupne.
|
|
Registrovaný: 11.11.11 Prihlásený: 20.10.21 Príspevky: 14 Témy: 4 | Napísal autor témy imagexxl: 06.03.2012 12:04 | |
|
Dakujem ti za vysvetlenie Trosku tomu zacinam rozumiet. Moj problem vsak ostava, pretoze som sa asi zle vyjadril. Potrebujem mazat subory v adresari, ale neviem ich nazvy, ani kolko ich tam je. Pripadne mazanie celych adresarov s podadresarmi. A to som nikde nenasiel, hmm. Cize miesto nazvu pouzit nieco ako *.* popripade mazanie celych adresarov, ale aj ked niesu prazdne.
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 06.03.2012 12:17 | |
|
Ako som spomenul, v tomto prispevku, na vyhladanie suborov v danej zlozke ( volanim v slucke to bude mat efekt zobrazenia obsahu celej zlozky ) sa pouzivaju funkcie FindFirstFile a FindNextFile. Tu je konkretny priklad:
http://msdn.microsoft.com/en-us/library ... 00(v=vs.85).aspx
Staci ho iba upravit ( a hlavne zredukovat, pretoze kedze je to iba priklad, je tam viac veci ktore nepotrbujes, ako parameter prikazoveho riadku alebo zbytocne komplikovane zobrazenie chyby ) a to tak, ze miesto vypisania mena suboru ho jednoducho porovnas, ci sa zhoduje s tym, ktory chces zmazat a ak ano, tak ho zmazes, ako som uviedol v mojom predchadzajucom prispevku. Verim, ze to zvladnes sam, ale keby predsa len nie, tak sa smelo pytaj, no prvorade je, aby si vela skusal a hlavne snazil sa natlacit do hlavy najbeznejsie anglicke pojmy v programovani ( lebo v skole by si sa ich aj tak nenaucil, je to iba o castom citani a prekladani si novych slov, ktore este nepoznas. A casom si ich zapamatas, uvidis ).
|
|
Registrovaný: 11.11.11 Prihlásený: 20.10.21 Príspevky: 14 Témy: 4 | Napísal autor témy imagexxl: 06.03.2012 13:06 | |
|
Dakuujem za pomoc, inak neuveritelne, co vsetko treba urobit, aby zmazal posraty adresar,popripade par suborov. Som myslel, ze je to zalezitost jedneho prikazu. Ved to snad patri medzi zakladne operacie. A nie aby clovek zistoval ci je prazdny, ak nie zistil ake su tam subory, po jednom odstranil a nakoniec moze zmazat adresar. A to nevravim ak je tam cela struktura podadresarov. To uz je co za programovaci jazyk to C ????
No napriek tomu dakujem za ochotu a pomoc.
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 06.03.2012 13:18 | |
|
Jazyk nema nic co docienia s konkretnym operacnym systemom - nie len C, ziaden jazyk. Jazyk ponuka len svoje kontrukcie, ponuka ti sposob, ako vyriesit konkretny problem a zakladne funkcie, ktore pobezia vsade, nezavisle na operacnom systeme alebo vseobecne nezavisle na prostredi kde bezia ( taky mikrokontroler nemusi mat operacny system ). Aj taky C# ako jazyk nema funkcie na pracu so subormi, vsetko to obsahuje az NET framework.
Ja som ti ukazal jeden sposob - vo windowse zrejme ten najnizsi. Existuje ale plno inych kniznic ( povacsine ale platene ), napriklad VCL dodavany spolu s C++ Builderom, alebo Qt ( tento framework je free ) a mnozstvo dalsich, kde uz su zapuzdrene tieto zakladne funkcie, povedzme existuje funkcia, ktora ti vyhlada subor sama - ale ta v zasade robi to iste, co som spominal, ale urobi to za teba.
Ale stale si myslim, ze taketo hlbsie riesenie problemu ta nauci ovela viac, ako "jeden riadok" kodu, ktory ti neda absolutne nic, pretoze nebudes vediet, co to vlastne robi - na druhej strane ale, ak vravis, ze programujes iba tak, to chapem.
|
|
Registrovaný: 11.11.11 Prihlásený: 20.10.21 Príspevky: 14 Témy: 4 | Napísal autor témy imagexxl: 07.03.2012 13:50 | |
|
V kazdom pripade dakujem este raz velmi pekne za ochotu.
// pridané po 22 hodinách 28 minútach od posledného príspevku
Este by som sa vratil k tejto teme. Ciastocne som si poradil prikazom "system" v C++ ktory umoznuje vykonavat prikazy systemu MS DOS. Tym by bol moj problem skoro vyrieseny, kedze tam s prehladom pouzivam vsetko na kopirovanie, mazanie... . Vsetko funguje normalne. Ak vsak sa snazim zmazat prikazom del subol ktory je umiestneny v Program Files, napise ze pristup zamietnuty. To iste je aj ked spustim cmd a napisem prikaz tam. Ak vsak spustim cmd - spustit cmd ako spravca, potom vykonava vsetko podla predstav. Je nejaky sposob, ako by sa to mohlo vyriesit a fungovalo to? Pripadne nejaky parameter prikazu, aby to vykonavalo ako spravca, alebo ako odstranit tu ochranu adresara Program Files - ci je to nejakymi atributmi? Ak ma niekto nejaku myslienku ako na to, budem rad. Dolezite je, aby sa to dalo zabezpecit vsetko cez prikazy - cez C++
Dikes...
|
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 07.03.2012 19:14 | |
|
Zrejme pouzivas system windows 7 / vista, ktory je takto chraneny. Kazda aplikcia spustena userom, ktory nema prava administratora, ma pristup iba k jeho zlozkam ( C:\User\... ) a k vytvornej virtualnej zlozke niekde v %USERPROFILE%\AppData. Zial, zrejme jedinym riesenim je spustat aplikaciu s pravami administratora, inak to asi nepojde. Windows jednoducho nedovoli akejkolvek aplikacii mazat subory zo zloziek, ktore nespravuje uzivatel.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|