Jump to content

S.L.C

Active Members
  • Posts

    100
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by S.L.C

  1. Fara suparare dar 90% din persoanele care intreaba unde sa invete sa programeze si care au nevoie de cineva sa le explice tot, nu vor ajunge programatori nicioadata. De ce spun asta? Pentru ca nu au initiativa. Dar stai linistit. Este doar o faza care va trece curand. Chiar si intr-o scoala dedicata. Crezi ca profesorul sta sa iti explice tie "ce face asta?", "si asta ce face?", "da asta ce face?". Daca are 10-20 de elevi ca tine atunci ala sta 24 din 24 sa repete acelasi lucru care se gaseste in documentatie. Si hai sa presupunem ca termini scoala. Te angajezi la o firma. Acolo cine sta de tine? Cine sta la curu tau sa iti explice tie ce face XYZ. Atunci cand chiar vrei sa inveti ceva. Te apuci frate si lucrezi singur cum poti. Downloadezi Wamp/XAMPP etc. Pornesti serverul si rulezi un script in PHP care spune doare "hello world!". Si de acolo incepi sa extinzi si sa practici zi de zi pana incepi sa vezi imaginea de ansamblu. Sti vorba: "Pofta vine mancand." Problema ta este ca ai ales un domeniu care a devenit atat de vast in ultimul timp. Incat si o persoana cu experienta anterioara in programare va avea dificultati. Pentru ca nu este doar PHP. Ai nevoie si de HTML, CSS, JavaScript, SQL. Si pe deasupra mai sunt si o duzina de framework-uri si diferente intre browsere (pentru ca orice dictionar contine cuvantul "standard" insa nimeni nu stie ce scop are). Sper sa nu ma intelegi gresit. Pentru nu am nici un motiv sa te mint. Si este plin internetul de de intrebari de genul. Asta daca vrei dovada.
  2. Am reusit pana la urma. Am inversat segmentului adresei IP sursa cu cel pentru destinatie. Scuze pentru deranj.
  3. Salut. Stie cineva cum se poate bloca pachetele UDP intr-un router HG658 (Telekom) ? Vreau sa blochez jocurile (in special Counter-Strike). Am incercat cu filtru IP dar nu da nici un rezultat. Sunt cam varza cand vine vorba de routere si m-am gandit ca poate am gresit ceva in configuratie. Multumesc. Nu este intrebare de programare dar nu am vazut un forum specific pentru routere.
  4. Varianta C: #include <time.h> // time #include <stdio.h> // sscanf #include <stdlib.h> // rand #include <string.h> // strlen void Extract(int * vec, int size, const char * str) { const char * data = str; int value = 0, offset = 0, pos = 0; while (sscanf(data, " %d%n ", &value, &offset) == 1) { vec[pos] = value; // Save the value data += offset; // Skip the read value // Are we in range? if (++pos >= size) break; // End of array/vector } } int main(int argc, char **argv) { char * buffer = 0; // File contents long length; // File length // Open the file FILE * file = fopen ("file.txt", "r"); // Could the file be opened? if (file) { // Go to the end of the file fseek(file, 0, SEEK_END); // Calculate buffer size from beginning to current position length = ftell(file); // Go back to the beginning fseek(file, 0, SEEK_SET); // Allocated a proper buffer buffer = (char *)malloc(length); // Could the buffer be allocated? if (buffer) { // Read the file contents into out buffer fread (buffer, 1, length, file); } // Close the file handle fclose(file); } // Do we have a buffer? if (!buffer || strlen(buffer) <= 0) { puts("No data to process"); return EXIT_FAILURE; } #define ELEM_COUNT 32 // Numbers array int int_vec[ELEM_COUNT] = {0}; // Extract the numbers from the string Extract(int_vec, ELEM_COUNT, buffer); // We no longer need the file contents free(buffer); // Feed the random generator srand(time(0)); // Shuffle elements for (int i = 0, b, r; i < ELEM_COUNT; i++) { // Obtain a random element r = rand() % ELEM_COUNT; // Backup the current element b = int_vec[i]; // Swap with the random element int_vec[i] = int_vec[r]; int_vec[r] = b; } // Output array/vector contents for (unsigned i = 0; i < ELEM_COUNT; i++) printf(" %d ", int_vec[i]); return EXIT_SUCCESS; } Varianta C++ #include <ctime> // std::time #include <cstdio> // std::sscanf #include <vector> // std::vector #include <string> // std::string #include <random> //std::mt19937 #include <fstream> // std::ifstream #include <iostream> // std::cout, std::endl #include <algorithm> // std::shuffle #include <streambuf> // std::istreambuf_iterator void Extract(std::vector< int > & vec, const std::string & str) { std::string::const_pointer data = str.c_str(); int value = 0, offset = 0; while (std::sscanf(data, " %d%n ", &value, &offset) == 1) { vec.push_back(value); data += offset; } } int main(int argc, char **argv) { // Open the file std::ifstream file("file.txt", std::ifstream::in); // Read file contents to a string std::string text((std::istreambuf_iterator< char >(file)), std::istreambuf_iterator< char >()); // Prepare an empty vector std::vector< int > int_vec; // Extract the elements from the string Extract(int_vec, text); // Create a random number generator std::mt19937 rg(std::time(nullptr)); // Shuffle the vector elements std::shuffle(int_vec.begin(), int_vec.end(), rg); // Output vector contents for (const auto & n : int_vec) { std::cout << n << " "; } return EXIT_SUCCESS; } ATENTIE: Varianta C++ necesita un compiler cu suport pentru C++11! Ambele versiuni au fost testate pe MinGW-w64 GCC 5.2.0 x32
  5. O intrebare. Ai mai jucat acest joc pe calculatorul actual? Daca da. Ai schimbat vreo componenta inainte de a intampina aceasta eroare? Placa video mai specific. Daca ai probleme cu instalarea de drivere atunci recomand DriverPack Solution. Si ce versiune de Windows XP ai instalat? SP2 (este posibil daca nu stii ce downloadezi) sau SP3. Si cam cat de actualizat este. Daca tot ai probleme atunci specifica ce placa video ai GPU-Z. Toata lumea se vaita dar nimeni nu spune de ce.
  6. Care este problema ta ca nu inteleg? Ce plm te plangi ca vezi doamne avem doar politcieni corupti si hoti. Hai cu ei jos. Eu merg pe idea ca un popor isi merita conducatorii. Ca doar nu vezi lupi condusi de oi. Suntem o tara de hoti si este normal sa fim condusi de tot de hoti. Eu nu ma culc seara cu idea ca sunt inconjurat doar de oameni cinstiti doar ca politicienii sunt de vina pentru lucrurile pe care le fac. Inclusiv lucrurile pe care le fac eu. Tot acuzi pe toata lumea ca nu face nimic si ca suntem niste oi controlate de guvern. Iar tu esti singurul care stie defapt ce se intampla in tara asta. Da-mi voie sa te intreb pe tine: Tu ce plm faci si nu face si restul tarii? Chiar nu am de gand sa intretin un argument cu tine pentru ca nu merita efortul.
  7. S.L.C

    Buzau.

    @wirtz presupunerea a fost bazata pe poza ta de profil si discretia potului tau. a fost doar o curiozitate si nimic mai mult. cel putin nu am luat cerinta ta la 'misto' precum postarile anterioare. Cat despre profil. Nu ma deranjeaza din moment ce nu ma ocup cu nimic ilegal. Ce rost are sa ascund ceva ce poate fi gasit in cateva secunde/minute.
  8. S.L.C

    Buzau.

    Am sa arunc o presupunere pe intuneric "Vrei sa faci un site pentru vanzari etnobotanice." Am lovit ceva?
  9. Ah, nici nu am observat ca este aceeasi persoana Daca folosesti Python 3.5.0+ atunci sa stii ca nu mai suporta XP. Cat despre situatia ta sunt putin confuz. Nu prea inteleg scopul. Adica ce intentionezi sa faci. Inteleg ce nu vrei ca programul tau sa depinda de anumite DLL-uri. Dar nu inteleg care este scopul programului tau si ce rol are Python. Ca urmare nu pot face anumite sugestii. E ca si cum mi-ai spune "Vreau sa plec dar spune-mi o scurtatura." Fara a stii unde vrei sa ajungi nu pot recomanda nimic. Sper ca intelegi ce vreau sa spun.
  10. Daca folosesti CodeBlocks atunci cred ca folosesti si MinGW. Si trebuie sa scapi de DLL-urile incluse de MinGW. Dar daca intentia ta este sa incluzi python in mod static in programul tau pe windows folosing MinGW atunci imi pare rau sa te informez ca nu este chiar atat de usor. Pe pagina de download pentru Python 3.5.0 ai o optiune "Windows x86 embeddable zip file". Creata specific pentru situatiile in care programul tau trebuie sa fie distribuit impreuna python. (atentie: versiunuea 3.5.0 a renuntat la suportul pentru XP!) Tu ca developer downloadezi instalatia completa deoarece in folderul unde ai este instalat Python vei gasii "include" pentru header-urile necesare comunicarii cu Python si "libs" unde gasesti librariile "python.lib", "python35.lib" de care programul tau depinde. Dupa distribuire programul tau depinde de "python##.dll" si orice utilizator ce doreste sa foloseasca programul tau este obligat sa instaleze versiunea de Python cu care programul tau a fost compilat. Pentru asta a fost creata optiunea "Windows x86 embeddable zip file" pe pagina de downloadare. Pentru a fii încorporat de tine in distribuia programului ta. Fara a fii necesara o instalatie completa a versiunii specifice de Python pe calculatorul utilizatorului. Oricum, asta este doar pentru Windows. Daca incluzi Linux si MacOS atunci distributia ta devine mult mai complicata. Te sfatuiesc sa renunti la idea de a obtine un executabil amalgamat. Deoarece nu faci decat sa complici lucrurile. Nu stiu daca ai instalat programul HexChat vreodata. Dar are un plugin de scripting pentru Python. Ideea lor a fost ca in timpul instalarii sa downloadeze si sa instaleze si versiunea de Python de care programul lor are nevoie. Asta daca nu o ai tu deja. Sublime Text este in editor foarte popular ce include Python ca limbaj de scripting. Metoda lor a fost sa includa versiunea încorporabila impreuna cu programul pentru a nu forta utilizatorul sa instaleze diferite versiuni de Python. Indiferent de metoda alesa iti garantez ca o distributie multi-platform este destul de greu de mentinut. Totul depinde de cine vrei sa se chinuie mai putin. Tu ca developer sa utilizatorul.
  11. Vrei sa programezi fara sa intelegi Engleza? Fara suparare dar nu te vad avansand undeva. Toate resursele online sunt in engleza. Documentatie Tutoriale Referinte Toate librariile/aplicatiile. Vrei sa folosesti CodeIgniter? Totul este in Engleza. Vrei sa folosesti jQuery? Totule este in Engleza. Ai intalnit o problema? Cauta online si altcineva sigur a mai intalnit o problema similara si probabil a gasit o solutie. Dar ghici ce. Probabil este in Engleza. Vrei sa te uiti prin codul oferit de altcineva si sa il intelegi? Ghici ce. Probabil este documentat in Engleza. Asculta sfatul lui @MrGrj Chiar daca pare greu la inceput.
  12. Nu am programat in Java pana acum dar din cate vad eu aici este o problema de regular expressions. La care ai urmatoarele optiuni: String[] split = s.split("[\\+|\\)|\\-|\\(|\\*|\\s]+"); Sau String[] split = s.split("[^a-zA-Z]+"); Daca observi ambele contin un set de caractere [...] Primul se aplica la oricare delimitator specificat de tine inclusiv spatiul. Urmatorul se aplica la oricare caracter ce nu este alfabetic. Ce trebuie sa observi tu in ambele este cuantificatorul '+' ce urmeaza dupa setul de carcatere. Acel plus face ca setul de caractere la care se aplica sa apara de 1 sau mai multe ori. De ce este asta important? Sa observam textul tau: (MM+X+C-L)*(IX-I) Mai exact portiunea: )*( Aici sunt 3 caractere care satisfac criteriile cerute de setul tau. Si din moment ce setul tau (fara '+') se aplica doar la un caracter. Atunci fiecare caracter este considerat un delimitator si genereaza un text gol deoarece intre el si urmatorul caracter (care la randul sau satisface criteriile cerute de set) nu se afla nimic. Adaugand '+' la sfarsitul setului face ca toate caracterele sa sa fie tratate precum un singur delimitator. Deoarece se potrivesc criteriului de 1 sau mai multe cerute de cuantificatorul '+'. Partea buna este ca nici nu ai nevoie sa indepartezi spatiile: s= s.replaceAll("\\s",""); Deoarece unul sau mai multe spatii este/sunt tratat(e) precum un singur delimitator. P.S. Scuze pentru Romana mea de rahat. Sper sa poti intelege ce am spus
  13. Ce fel de program? Plugin pentru CMS-ul pe care il folosesti? Ce fel de aunturi? De unde culege "programul" informatiile pe care sa le posteze? Este un fel de crawler care doar copiaza automat ce gaeste pe alte site-uri? Nu cred ca te duci si ceri "Vreau si eu o pereche de incaltaminte". Ce fel de incaltaminte? Pantofi, ghete, adidasi, papuci etc. Ce marime? Ce material? Ce culoare? Ce firma? etc.
  14. Sper ca nu este atat de tarziu incat sa fie considerat bumping. Implementatie C++(11) (implementatia actuala este c/c++ normal) testat cu MinGW GCC 5.2.0 x32 #include <ctime> #include <cmath> #include <bitset> #include <random> #include <iostream> // helper functor to randomly generate numbers between 0 and 1 struct Random { std::mt19937 Generator; std::bernoulli_distribution Distribution; Random(double ratio = 0.5d) : Generator(static_cast<std::mt19937::result_type>(std::time(nullptr))) , Distribution(ratio) { } int operator () (void) { return static_cast<int>(Distribution(Generator)); } }; static Random zerounu; int Generate(); int main(int argc, char **argv) { std::bitset<1000> nums; int num = 0; std::size_t tries = 0; /* 'tries' has a chance of overflow! hopefully it won't reach there */ for (; !nums.all(); ++tries) { num = Generate(); if (!nums.test(num)) { nums.set(num, true); } std::cout << nums.count() << ", "; } std::cout << "\nit took " << tries << " tries to generate every number between 0 - 999 at least once\n"; return EXIT_SUCCESS; } int Generate() { int num = 0x5555; for (int i = 0; i < 16; ++i) { num ^= (zerounu() << i); } num = abs(num); // 2048 and not 999 number is used to reduce favor of higher numbers while (num > 2048) { num /= 2; } return num > 999 ? abs(num - 1049) : num; }
  15. Dap. Nu am citit comentariul. Revin cu un edit. EDIT: Nu are rost. K0mmendante a postat o solutie.
  16. Mama ei de documentatie (scuze de tldr si unele greseli in avans) Is a *.pyd file the same as a DLL? Deci? Click dreapta -> Rename -> schimb .dll co .pyd Dar asta inseamna ca nu pot schimba numele fisierului deoarece python nu va mai gasii functia exportata gen [dllname]init(). Building C and C++ Extensions on Windows Python/C API Reference Manual Extending and Embedding the Python Interpreter Extending/Embedding FAQ Normal ca se plange de .NET si alte prostii pe restul platformelor si este si normal. Windows (si alte platforme) are anumite functii pe care programul tau si restul programelor din calculatorul tau le folosesc. Gen strcpy(), malloc(), printf() etc. Si pentru a reduce marimea executabilului si memoria folosita de fiecare executabil la run-time sa decis pentru a implementa acele functii si utilitati intr-un dll comun. Pe care il vezi tot timpul sub numele Visual C++ Redistributable... in cerintele anumitor programe. Si daca tu ai compilat cu Visual Studio 2015 automat ai nevoie de Visual C++ Redistributable for Visual Studio 2015 si tot asa. Daca vrei sa nu depinzi de bibliotecile comune din windows atunci le poti include static in executabilul tau. Avoiding the Visual C++ Redistributable Package (ultima optiune!) Daca te decizi sa folosesti Code-Blocks si MinGW atunci recomand Code-Blocks versiunea faca compiler. Adica codeblocks-##.##-setup.exe Si inca o mica sugestie ar fi sa downloadezi si nightly builds de pe forum. Code-Blocks este distribuit foarte rar. De la ultima versiune si pana acum au fost sute de imbunatatiri. Recomand foarte mult! (doar downloadezi arhivele si le extragi in folderul Code-Blocks) Urmatorul lucru ar fi MinGW dar nu orice MinGW. In nici un caz TDM-GCC. Asta daca nu vrei batai de cap cu unele biblioteci. Eu recomand MinGW-w64. Nu te lasa pacalit de nume. Functioneaza si pe 32bit. Poti downloada manual archivele pentru x32 sau x64. Sau poti folosii installer-ul oferit. Pentru x32: #.#.#/threads-posix/dwarf/i686-5.2.0-release-posix-dwarf-rt_v4-rev#.7z Pentru x64: #.#.#/threads-posix/seh/x86_64-5.2.0-release-posix-seh-rt_v4-rev#.7z Dupa care specifici unde sa-l gaseasca Code-Blocks. Pentru asta te duci la Settings > Compiler si introduci folderul si numele executabilelor respective. Acum daca ai instalat tot ce trebuie. Sa nu crezi ca MinGW nu are si el ce are si Visual Studio. Daca nu faci static linking atunci executabilul tau se va plange de libstdc++-6.dll, libwinpthread-1.dll, libgcc_s_dw2-1.dll etc. Deci in proiectul tau deschis in Code-Blocks. Te duci la Project > Build Options (sau click dreapta pe el si > Build Options). Dupa care selectezi modulul tau preferat Release/Debug si introduci urmatoarele comezi. La Compiler Settings > Other compiler options : -static-libgcc -static-libstdc++ -enable-static La Linker Settings > Other linker options : -static Atentie: Marimea executabilului tau va fi mai mare datorita includerii bibliotecilor standard in mode static. Sper ca nu trebuie sa explic de ce. Acum poti compila executabilul tau faca a fi nevoie sa distribui nimic.
  17. Nu prea inteleg aici. Adica nu ai sursa? Ai doar obiectele din alta parte unde au fost compilate cu pe 32bit? Ai instalat multilib?
  18. Si despre ce este jocul? Cum se joaca? EDIT: nvm. Doar ce am compilat jocul. Are cateva defectiuni cand trebuie sa apara meniul principal. In rest presupun ca este ok. Putin cam greu de jucat totusi. EDIT2: char GameOver[50][50] = ... char GameWinner[50][50] = ... char map[50][50] = ... [50][50] ? ai doar 7 randuri
  19. Am intalnit acest topic acum 1 an si de atunci a devenit sursa mea de amuzament atunci cand sunt dezamagit de cunostintele mele in C++ sau programare in general. Tot ce trebuie sa fac este sa ma uit putin peste codul din acest topic si instant imi revine increderea in mine si realizez ca se poate si mai rau https://www.daniweb.com/programming/software-development/threads/440954/cant-fix-error-in-my-program
  20. @R0byi Omul nu are sursa. Doar executabilul. Si intreaba daca se poate modifica instructiile(?) din fisierul executabil. Asta am inteles eu pana acum
  21. Dar de ce nu creezi un plugin-system si un fisier text care descrie procesul (pipeline) pe care il vrei. Lista gen: AES256, Base64, Atom128:3 Executabilul principal. Citeste lista, cauta DLL-urile specificate, si chiama functia specifica in fiecare plugin cu datele specificate urmat ca plugin-ul sa comunice inapoi datele procesate si tot asa pana ce se termina lista.
  22. Trebuie sa fie executabil? Trebuie sa fie in C/C++? Nu prea inteleg. Daca nu vrei sa intri in detalii aici poate intr-un PM.
×
×
  • Create New...