Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Aplikacja konsolowa Wycinanie części Pliku i zapisane nowego

wojtasxda 19 Sty 2014 19:30 966 4
  • #1 19 Sty 2014 19:30
    wojtasxda
    Poziom 2  

    Witam wszystkich !!
    Jestem początkujący jeśli chodzi o programowanie, dopiero zaczynam wchodzić w ten świat małymi kroczkami. Dla nie których moje pytanie będzie banalne, niestety ja nie umiem tego zrobić :(

    Chciałbym zrobić narzędzie konsolowe, które będzie działało tak :
    Wpisując w cmd np. W1APPtoFFU.exe -c <nazwa_pliku>.app
    to program znajdzie pierwszy występujący ciąg HEX:"200000005369676E6564496D61676520" i od tego momentu aż do końca pliku skopiuje to i utworzy nowy plik <nazwa_pliku>.ffu
    Chciałbym aby przy uruchomieniu tego programu wyświetlał się jakiś opis np.
    "Program konwertujący pliki"

    No i opis funkcji :P
    -c // konwertuje plik app do ffu


    Może ktoś napisać mi krok po kroku jak takie coś zrobić ?
    Ja nie mam zielonego pojęcia jak takie coś zrobić :(
    Jeśli byłby ktoś taki dobry, to prosiłbym o zrobienie takie czegoś i zamieszczenie source, a ja przejrzałbym sobie to, popatrzał jak to jest skonstruowane itd....

    Bardzo proszę o pomoc, jest do dla mnie bardzo ważne ! :)

    Dziękuję z góry i pozdrawiam ! :)

    0 4
  • #3 19 Sty 2014 20:28
    wojtasxda
    Poziom 2  

    od 800mb do 2gb

    Ogólnie wolalbym to w c++ , no ale jest problem z napisaniem :P

    0
  • #4 20 Sty 2014 09:53
    the_fifth_horseman
    Poziom 32  

    wojtasxda napisał:
    Chciałbym zrobić narzędzie konsolowe, które będzie działało tak :
    Wpisując w cmd np. W1APPtoFFU.exe -c <nazwa_pliku>.app
    to program znajdzie pierwszy występujący ciąg HEX:"200000005369676E6564496D61676520" i od tego momentu aż do końca pliku skopiuje to i utworzy nowy plik <nazwa_pliku>.ffu
    Chciałbym aby przy uruchomieniu tego programu wyświetlał się jakiś opis np.
    "Program konwertujący pliki"

    No i opis funkcji :P
    -c // konwertuje plik app do ffu
    Argumenty konsolowe pobierasz z tablicy ciągów tekstowych argv, ich liczbę masz w argc.

    Tekst wyświetlasz przy użyciu printf.

    Wyszukiwanie ciągu można zrealizować wczytując fragment pliku do pamięci, szukając we wczytanym fragmencie, przesunięciu końcówych n-1 (gdzie n to długość wzorca w bajtach) na początek zaalokowanej pamięci i wczytanie po nich kolejnego fragmentu pliku. (tak nawiasem mówiąc, naucz się o malloc(), free(), memcmp() i memmove() ).

    To czy wzorzec jest identyczny z ciągiem w danym punkcie sprawdzisz wykorzystując memcmp().

    Samo kopiowanie jest trywialne - wczytujesz do bufora z pliku A, zapisujesz z bufora do pliku B. Można to bez problemu zrealizować w segmentach po kilkaset kb do kilku MB.

    Cytat:
    Może ktoś napisać mi krok po kroku jak takie coś zrobić ?
    Ja nie mam zielonego pojęcia jak takie coś zrobić :(
    Patrz wyżej. Program jest trywialny i wykonalny dla nowicjusza. Jak ktoś napisze go za ciebie to się nie nauczysz.
    http://www.cplusplus.com/reference/ i do roboty - jak będziesz miał konkretny problem to pytaj śmiało.

    0
  • #5 20 Sty 2014 18:02
    Dżyszla
    Poziom 42  

    No z większymi plikami faktycznie jest problem... Szczególnie, gdy wyszukiwanie musi uwzględnić "przeskok" między blokami. Można ewentualnie uprościć to wczytując znak po znaku z pliku i tak samo zapisując, ale wydajność będzie raczej nieakceptowalna.

    0