Program pentru tăierea fișierelor

Vă oferim un program cu care se poate tăia o imagine predeterminată pe o porțiune din lungimea menționată, sau pentru a primi o parte din fișier specificat lungimea pornind de la o distanta specificata, sau sari peste primele X octeți ale fișierului, iar restul se taie în bucăți de mărimea bytes Y sau să împărțiți un fișier în părți în octeții X, Y, Z și restul # 133; După cum veți vedea, programul vă permite să împărți fișierele în părți și un mod mai complicat.







(Observ că, de fapt, "tăierea" # 151; nu chiar un termen exact, deoarece programul nu schimbă fișierul sursă, ci creează fișiere noi # 151; părți ale originalului.)

La pornirea programului, trebuie să specificați numele fișierului sursă, numele fișierelor recepționate pe linia de comandă (fără extensie # 151; acesta va fi generat automat) și comenzi care determină modul în care fișierul va fi împărțit în părți.

Fișierul sursă se presupune că se află în directorul curent, iar fișierele de ieșire vor fi generate și acolo. Extensia primului fișier generat va fi "001", al doilea # 151; "002" și așa mai departe (dacă primiți mai mult de 999 de părți, vor fi înregistrate doar primele 999).

Acum, despre comenzile care determină modul în care fișierul va fi împărțit în părți. Se pot specifica una sau mai multe comenzi; dacă există mai multe, ele sunt separate prin virgule. În total, puteți utiliza patru tipuri diferite de comenzi:

scrie o parte a lungimii n octeți pornind de la poziția curentă în fișierul sursă (dacă mai rămân mai puțin de n octeți până la sfârșitul fișierului sursă, dimensiunea părții înregistrate va fi egală cu restul fișierului);

săriți n octeți din poziția curentă din fișierul sursă (dacă sunt lăsate mai puțin de n octeți până la sfârșitul fișierului sursă, toate octeții rămase vor fi sărite);

scrieți părți ale lungimii n octeți din poziția curentă din fișierul sursă până la sfârșitul fișierului (astfel, lungimea ultimei părți înregistrate poate fi mai mică de n);







Înregistrați piesa pornind de la poziția curentă în fișierul sursă și până la sfârșitul fișierului. Această comandă, evident, nu poate fi decât ultima.

În toate comenzile n # 151; număr de la 1 la 0x7FFFFFFF (2147483647) scrise în zecimal sau hexazecimal (când se înregistrează în numere hexazecimale trebuie să fie precedată de simboluri «0x», în înregistrarea numărului nu contează registru de caractere).

Programul nu poate procesa mai mult de 64 de comenzi (determinate de valoarea constanta MAX_COMM in codul sursa al programului), dar tot nu veti introduce cat mai multe comenzi din cauza limitarii lungimii liniei de comanda din DOS.

Comenzile sunt executate în ordinea în care au fost înregistrate. Înainte de a executa prima comandă, poziția curentă în fișierul sursă # 151; acesta este începutul fișierului. Programul se execută dacă toate comenzile sunt executate sau dacă se ajunge la sfârșitul fișierului sursă sau dacă sunt deja scrise 999 părți ale fișierului sau dacă s-a produs o eroare în timpul lucrului cu fișierele.

Doar patru tipuri de comenzi permit o varietate de procesare a fișierelor. Mai jos sunt câteva exemple.

  1. Obțineți primii 500 de octeți ai fișierului.
  2. Dimpotrivă, săriți peste primii 500 de octeți și obțineți restul fișierului.
  3. Obțineți o porțiune a fișierului începând cu un decalaj 0x1000 de la început și o lungime de 0x300 octeți.
  4. Împărțiți fișierul în patru părți: 100, 200, 300 octeți și restul.
  5. Împărțiți fișierul în părți de 10.000 de octeți (cu excepția, poate, ultima parte).
  6. Treceți prin octeți de 0x400 octeți ai fișierului, scrieți o parte a lungimii de 123 octeți, apoi săriți un alt octet de 0x100 și scrieți restul.

De asemenea, rețineți că nu este foarte dificil să modificați programul, adăugând mai multe tipuri de comenzi.

Vă aduc aminte că fișierul primit nu trebuie să coincidă cu niciunul dintre fișierele sursă, în caz contrar conținutul acestui fișier sursă poate fi pierdut, iar execuția comenzii se va termina cu o eroare!

Descrise în acest articol, programul nu se poate ocupa de fișiere cu o lungime mai mare sau egală cu 2 GB (2147483648 bytes). Faptul este că, utilizat în funcția de bibliotecă program pentru a determina lungimea fișierului (filelength) returnează un rezultat de tip lung, iar valoarea maximă pozitivă a acestui tip în Turbo C 2.0 este egal 0x7FFFFFFF (2147483647), adică 2 GB # 150; 1. De asemenea, valoarea lungă necesită funcția fseek, care este folosită în program pentru a trece la poziția dorită în fișierul procesat, ca parametru de intrare.







Articole similare

Trimiteți-le prietenilor: