Strona 2 z 2 PierwszyPierwszy 12
Pokaż wyniki 11 do 20 z 20

Temat: PRogram dla początkującego

  1. #11
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Wersja w Perl'u:

    Kod:
    #!/usr/bin/perl
    use strict;
    
    while (<*.txt>) {
        open (FH, $_);
        my @plik = <FH>;
        close (FH);
        map { tr/,-/.=/ } @plik;
        open (FH, "> $_");
        print FH @plik;
        close (FH);
    }
    Wazny jest fragment tr/,-/.=/ - w tych lamaniach wstawiasz translacje - tutaj masz przecinek na kropke, minus na znak rownosci itd... mozesz podac dowolna ilosc podmian, wazne by tylko ilosc znakow po obu stronach sie zgadzala bo jak po lewej bedzie wiecej to te ktorym braknie pary zostana usuniete...

    Ciekawy przyklad podmiany to tr/a-z/A-Z/ czyli zamien male literki na duze :-) Milej zabawy...

  2. #12
    Zarejestrowany
    Jan 2007
    Postów
    12

    Domyślnie

    DZIEKI tqm

    Znalazłaem juz taki soft ale perla tez moge kiedys poprobowac sie nauczyc pozdrawiam........ właściwie mozna zamknąć topic

  3. #13
    Avatar eMCe
    eMCe jest offline Emil Grzegorz Gubała
    Zarejestrowany
    Dec 2006
    Skąd
    Kielce
    Postów
    1,767

    Domyślnie

    heh nio nie zdążyłem :/
    ogólnie mam ostatnio mało czasu - napisałem program który zamienia dany string na inny - z możliwością rozróznienia małych i dużych liter - w załączniku projekt vb i gotowy exe - ps można by to na kilka innych sposobów zrobić - ja chciałem ci przedstawić coś co zrozumiesz - zajżj do kodu - dałem tam troszke komentarzy - w wolnej chwili - postaram sie zeby kazda linijka miała swój komenaż

    ps. program napewno nie jest wolny od błedów co mozna w 2 godziny w nocy....

    trzeba tez jeszcze dopisać funkcje dzieki której zamieniała by wszystkie pliki w danym katalogu - narazie musisz dać dokładną sciezke do danego pliku - to tyle....
    Załączone Pliki Załączone Pliki
    Agencja reklamy kielce (mały kilkudniowy case pozycjonerski )

  4. #14
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Napisanie dzialajacego rozwiazania w Perlu zajelo mi razem z przetestowaniem dokladnie 6 minut 2 godziny to strasznie dlugo - jakie 6-7 kompilacji kernela

    Wlasnie dlatego tak uwielbiam Perl'a - moze nie jest zbyt 'modny' i szeroko reklamowany ale za to cholernie skuteczny!

  5. #15
    Avatar eMCe
    eMCe jest offline Emil Grzegorz Gubała
    Zarejestrowany
    Dec 2006
    Skąd
    Kielce
    Postów
    1,767

    Domyślnie

    nio własnie zauważyłem zniewalająco małą ilość linijek i znaków w troim kodzie chyba sie przerzuce ;p
    Agencja reklamy kielce (mały kilkudniowy case pozycjonerski )

  6. #16
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Prawde mowiac kod mozna skrocic do wersji ktora bedzie miala gora 2-3 linie ale czytelnosc bedzie baaaaardzo niska i gdybys musial pozniej cos edytowac to predzej mozna smrodu narobic z takiego skupienia niz cos poprawic

    Polecam haslo Perl Golf - my swoje golfy grywamy na www.kernelpanic.pl - golf to gra aby najmniejsza iloscia znakow rozwiazac postawione zadanie.

    Wszystkie programy sa jednolinijkowe :-) Spora czesc nie przekracza 20 znakow Niestety serwer jest w trakcie przeprowadzki i czekam kiedy wroci...

  7. #17
    Zarejestrowany
    Jan 2007
    Postów
    12

    Domyślnie

    Do tqm
    1)jak "skompilować" twoj program aby był .bat (np.albo exe ale wtedy chyba nici z prawyklik edytuj) zeby go mozna było edit i zmienić co na co ma zamieniać
    2) rozumiem ze "wczytuje" wszystkie pliki z rozszerzeniem .txt co tz mozna zmienic (np na inny ASCII)
    3)ZNALAZŁEM progs tego typu to SED http://www.gentoo.org/doc/pl/articles/l-sed1.xml
    jak jescze ktos wie jak kazac mu przerabiać wszystkie pliki o danym rozszerszeniu to bede wdzięczny za napisanie polecenia( bo to sie w wierszu poleceń wklepuje)

    do eMCe's Avatar
    eMCe
    DZIEKI ZA PROGS niesty masz racje błedow od groma
    mała prośba nie przeklinaj w kodzie (cytat:"Form=..\..\HUJWIE~1\jebniete\Form1.frm") bo niektórzy ludzie bedą mysleć ze brak ci kultury/ogłady ... a wogóle komentarze ze szczyptą dowcipu i kul
    POZDRAWIAM

  8. #18
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Cytat Napisał nooldor Zobacz post
    1)jak "skompilować" twoj program aby był .bat (np.albo exe ale wtedy chyba nici z prawyklik edytuj) zeby go mozna było edit i zmienić co na co ma zamieniać
    Perl jest jezykiem interpretowanym - generalnie sie go nie kompiluje. Ma to swoje plusy i minusy oczywiscie ale jako ze praktycznie kazda wersja Unix'a czy Linuxa ma domyslnie perla w podstawowej instalacji to nie ma problemu... Ten kod nie uzywa zadnych innych modulow wiec ewentualna kompilacja nie bedzie problemem - poszukaj perl2exe, perlcc, itd. Perl2exe da kod wynikowy nieco powyzej 520kB, perlcc okolo 2MB :-) Niestety taki koszt kompilacji ktora nie ma sensu bo cala potega tego jezyka to to, ze mozna blyskawicznie poprawic kod i miec robote zalatwiona w pare sekund.

    Dla windows polecam ActivePerl - free i latwo sie instaluje :-)

    Cytat Napisał nooldor Zobacz post
    2) rozumiem ze "wczytuje" wszystkie pliki z rozszerzeniem .txt co tz mozna zmienic (np na inny ASCII)
    Tak - linijka while (<*.txt>) ... okresla jakie pliki chcemy miec... tutaj akurat podalem w minimalny sposob (mozna to zrobic czysciej i bardziej profesjonalnie) ze chce pliki txt tylko - to co jest niekoniecznie zadziala jesli plik bedzie mial rozszerzenie TXT albo TxT i inne takie miksy... to juz zalezy od systemu operacyjnego czy rozroznia duze i male literki

    Cytat Napisał nooldor Zobacz post
    3)ZNALAZŁEM progs tego typu to SED http://www.gentoo.org/doc/pl/articles/l-sed1.xml
    jak jescze ktos wie jak kazac mu przerabiać wszystkie pliki o danym rozszerszeniu to bede wdzięczny za napisanie polecenia( bo to sie w wierszu poleceń wklepuje)
    Sed i Perl uzywaja podobnych polecen do formatowania napisow... jest jeszcze awk i gawk (gnu awk) - sa bardzo proste...

    Kod:
    sed -i -e 'y/,-/.=/' *.txt
    Podstawienia tak samo jak w moim ale zamiast tr/// jest y/// - w sumie w Perlu mozna tez wpisac y zamiast tr - to najlepiej swiadczy o zgodnosci miedzy nimi

    Parametry sed'a:
    - -i [.extension] - edycja In-Place, jesli podasz .extension to stworzy pliki kopii zapasowej o rozszerzeniu .extension
    - -e - kod skrytpu
    - ostatni parametr to nazwa pliku do przetworzenia...

    W perl'u sa napisane ogromne systemy informatyczne - serwisy WWW (w Polsce wiem ze na pewno Onet byl a moze i nadal jest w Perlu), Yahoo, itp. W firmie dla ktorej pracuje wszystko jest w Perlu i to wlasnie Perl odpowiada za miliony &#163; transakcji miesiecznie... To ze sie o nim nie mowi i nie reklamuje tak jak Jave czy inne jezyki, nie znaczy ze go nie ma i sie go nie uzywa :-)
    Jest go wiecej niz myslicie (chocby spora czesc skryptow startowych w Linuxach)

  9. #19
    Zarejestrowany
    Jan 2007
    Postów
    12

    Domyślnie

    Do tqm:
    A jak zrobić w Perlu (lub w sed) takie cos:
    wczytuje pliki .txt (ASCII - 7 "kolumn" odzialone przecinkiem) kasuje 3,4,5,7 kolumnę wkażdym pliku (rozumiem ze będzie mozna wybrac którą kolumne ma skaskować)
    plik txt postać:
    07N,19970612,aaa,bbb,ccc,ddd,eee
    ma być:
    07N,19970612,ddd

  10. #20
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Cytat Napisał filtr.pl
    #!/usr/bin/perl
    while (<>) {
    chomp;
    my @pola = split(/,/);
    print "$pola[0],$pola[1],$pola[5]\n";
    }
    To dziala jako filtr - w Linuxie bedzie cat zrodlo.txt | filtr.pl > wynik.txt
    albo skrypt.pl < zrodlo.txt > wynik.txt. Windows wymaga innego odpalenia (z wiersza polecen zrobisz to tak...) type zrodlo.txt | perl filtr.pl > wynik.txt

    chomp - usuwa znak nowej linii (unixy maja \n, windowsy \r\n)
    split - dzieli napis z 'magicznej zmiennej' $_ na pola rozdzielone przecinkiem i przypisuje do tablicy @pola

    ostatnia linia wypisuje pierwszy, drugi i szosty element (numeracja zaczyna sie od zera) i dodaje znak nowej linii w formacie unixowym [niektore wersje perl'a dla windos od razu zamianiaja to same na \r\n]

    UPDATE - wersja 2, skrocona:
    Cytat Napisał filtr2.pl
    #!/usr/bin/perl
    while (<>) {
    map { split(/,/); print "$_[0],$_[1],$_[5]\n"; } $_;
    }
    Ostatnio edytowane przez TQM : 01-24-2007 - 21:53

Strona 2 z 2 PierwszyPierwszy 12

Podobne wątki

  1. Program "BENIAMIN''
    By zlybezprzebaczenia in forum Hacking
    Odpowiedzi: 25
    Autor: 01-12-2008, 12:10
  2. Odpowiedzi: 3
    Autor: 12-27-2006, 14:07
  3. Pomocy! Jaki To program? Czy taki istnieje?
    By hakierek18 in forum Hacking
    Odpowiedzi: 5
    Autor: 12-14-2006, 20:49
  4. faq dla newbie
    By blackicenavarro in forum Pomysły/Sugestie
    Odpowiedzi: 9
    Autor: 08-18-2006, 13:43
  5. RESIZE i ON FOCUS dla obiektu html.
    By pwasikiewicz in forum Java Script/Flash/Inne
    Odpowiedzi: 0
    Autor: 06-12-2006, 22:08

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj