Article View: pl.comp.lang.c
Article #309352Re: fir's sicl
From: (fir)
Date: Tue, 08 Aug 2017 09:03
Date: Tue, 08 Aug 2017 09:03
112 lines
6970 bytes
6970 bytes
W dniu wtorek, 8 sierpnia 2017 10:36:49 UTC+2 użytkownik (fir) napisał:
> W dniu wtorek, 8 sierpnia 2017 07:00:11 UTC+2 użytkownik godek....@gmail.com napisał:
> > W dniu wtorek, 8 sierpnia 2017 00:48:20 UTC+2 użytkownik (fir) napisał:
> >
> > > > nie wiem, co jest badziewnego w wyrażeniach regularnych.
> > > > Twoich kilka linijek w C to z grubsza jedna linijka w perlu albo awk.
> > > >
> > >
> > > moze nie wiesz ale z mojego punktu widzenia to twoj problem nie moj ;c
> >
> > nie rozumiem, w jaki sposób użyłeś tutaj słowa "problem".
> > w moim odczuciu to, że mogę coś szybko zrobić, i mam do tego gotowe
> > narzędzia, nie jest problemem
> >
> > > jutro mozemy porownac jak wyglada np przerobianie plikow tekstowych przy
> > > pomocy tej mojej biblioteczki (ew lekko poprawionej bo che ja udoskonalic ) i tych skryptow o ktorch mowisz (a ktorych ja nigdy nie pisalem) - to moze byc ciekawe, ale dzis juz ide spac
> > >
> > > mozesz pomyslec np jak wygladalyby jakies proste do wymyslanie zadania, np
> >
> > do większości rzeczy pewnie nawet bym nie uruchamiał perla
> > w unksie:
> >
> > > 1) posortowanie lini w pliku i zapisanie posortowanego
> >
> > sort plik > posortowany
> >
> > > 2) policzenie slow
> >
> > wc plik
> >
> > > 3) posortowanie slow
> >
> > jakoś mniej więcej tak
> >
> > #!/bin/perl
> > %count = {};
> > while(<>) {
> > for $word split(/\s+/) {
> > $count{$word}++
> > }
> > }
> >
> > for $word sort keys(%count)
> > {
> > print $word+": "+$count{$word}+"\n"
> > }
> >
> > czy coś
> >
> > > 4) wyszukanie jakichs slow i ich podmienienie
> >
> > sed -e 's/jakies_slowo/podmianka/g'
> >
> > (pewnie tak naprawdę chciałoby się zrobić /\bjakies_slowo\b/ albo
> > coś w tym rodzaju, żeby zakotwiczyć wyrażenia regularne)
> >
> > > 5) ponumerowanie lini i wstawienie tych numerow z lewej strony
> >
> > #!/bin/perl
> > $counter = 0;
> > while(<>) {
> > print ++$counter + ": ";
> > print;
> > }
> >
> odpowiadam na dwa posty naraz (te od perla i te od c++)
>
> nieststy nie umiem tego w 100% zweryfikowac, ale ok moge zalozyc ze z grubsza tak to wyglada
>
> zaznaczyc jednak mozna ze nie jest to odpowiedz na moja kwestie zwiazana z napisaniem tej biblioteki sicl a jedynie komentarz do jednego z jej licznych aspektow
> - bo aspektow jest wiele
>
> jeden z moze bardziej waznych jest taki:
> te przyklady powyzej w bashu perlu czy co to jest plus w c++ nie są w c.. moja biblioteka jest w c - co do 'skompiluje sie na wielu systemach' to sicl tez skompiluje sie na wielu systemach
>
> o innych aspektach pozniej
>
jeszcze inny aspekt jest taki ze te klocki do
przerabiania tekstu jakie ja dostarczam czy moge dostarczyc w siclu sa bardzo logiczne i wyjatkowo ladnie sie skladają.. (nad tym zestawem klockow w sumie warto by wlasnie pomyslec) w tych innych implementacjach czegos podobnego czytli wlasnie w c++, pythonie czy perlu mam wrazenie w sumie mozliwosci wywolania operacji sa dosyc analogiczne ale te klocki do zabawy nie skladaja sie tak czysto jak tutaj (to mnie zawsze odstraszalo) - do tego tam nie wiesz jakie operacje dzieja sie pod spodem tutaj dokladnie widac
(a sklada sie to ladnie co mam nadzieje widac: np jedna linijka wczytujesz tekst do ramu, jedna linijka splitujesz na linie czy slowa czy w inny sposob, iterujesz po tych wysplitowanych kawalkach prosta petlą w c [mozesz ew dopisac w siclu tez predefiniowane funkcje typu sort itd]
i mozesz na nich dokonywac prostych operacji,
odrzucac porownywac zmieniac, wynik na biezaco mozesz flushowac do ouputu (zaoszczedzajac ram] itd itd
- ogolnie jest to idealnie proste - moim zdaniem bez dwu zdan w pewnych aspektach c potrzebuje takiej biblioteki bo to co daje standardowa biblioteka w c do pracy z tekstem to jednak troche męka)
ew jak ktos chce moze wymyslec i podac jakies nieco bardziej skompikowane przypadki przerobki tekstu w plikach i moge sie zastanowaic na jakie klocki api to podzielic lub ew porownac kod w c na siclu z wersjami
w perlu czy c++
>
>
>
>
> >
> > > > myślę też, że zrobiłbyś wielką przysługę wszystkim czytającym Twój kod,
> > > > zakładając sobie konto na githubie.
> > > >
> > > > funkcję IsWhiteSpace powinieneś raczej zdefiniować używając literałów
> > > > znakowych, zamiast kodów ASCII, np. c == ' ' || c == '\t' itd.
> > > > (pomijając kwestię, że prawdopodobnie już jest zdefiniowana np.
> > > > w <ctype.h>)
> > > >
> > > > szczerze mówiąc, osobiście wolę korzystać z gotowych i ogólnych
> > > > rozwiązań, niż wynajdywać koło na nowo
> > >
> > > to jest nieistotna kurat napisalem to bo czasem wole unikac zewnetrznych zaleznosci jesli mozna to krotko napisac - ale to jest nieistotne i nie chcialbym raczej o tym dyskutowac i tracic na to czas
> >
> > Zasadniczo nie da się unikać zewnętrznych zależności, dlatego
> > IMO lepiej skupić się na poznawaniu narzędzi, które się ma do dyspozycji
> > w swoim uwikłaniu. A jeżeli chcesz się z czegoś rozwikłać, to warto
> > najpierw rozważyć, w jakim celu.
Technical Details
Message-ID:
<a9c984e0-65c7-4e7b-9629-bab9f814d5e8@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!u14no1145347ita.0!news-out.google.com!e5ni964qta.0!nntp.google.com!s6no1106110qtc.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<6950309e-21a6-436f-a500-301fc68754d5@googlegroups.com> <0c601f7b-4830-4d01-894a-9960dc6333fd@googlegroups.com> <9c9cc4ed-e8ac-43bc-9aae-89419967b92f@googlegroups.com> <9246338b-0d67-4774-a4be-6a76cd7386a7@googlegroups.com> <36fe8cff-997e-441c-8570-ef8171726ab8@googlegroups.com> <cff67bf1-eebf-416a-bd4f-e8268c4fe038@googlegroups.com> <a91a409e-3a0d-46b0-996f-7f2015b9c5db@googlegroups.com> <c75017ca-1820-43ab-865a-7d879fc6ec59@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.101.87.205 with SMTP id q13mr2244198pgr.237.1502183016787; Tue, 08 Aug 2017 02:03:36 -0700 (PDT) X-Received: by 10.31.164.205 with SMTP id n196mr19066vke.22.1502183016662; Tue, 08 Aug 2017 02:03:36 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!u14no1145347ita.0!news-out.google.com!e5ni964qta.0!nntp.google.com!s6no1106110qtc.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Tue, 8 Aug 2017 02:03:36 -0700 (PDT) In-Reply-To: <c75017ca-1820-43ab-865a-7d879fc6ec59@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.212; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN NNTP-Posting-Host: 5.172.255.212 References: <6950309e-21a6-436f-a500-301fc68754d5@googlegroups.com> <0c601f7b-4830-4d01-894a-9960dc6333fd@googlegroups.com> <9c9cc4ed-e8ac-43bc-9aae-89419967b92f@googlegroups.com> <9246338b-0d67-4774-a4be-6a76cd7386a7@googlegroups.com> <36fe8cff-997e-441c-8570-ef8171726ab8@googlegroups.com> <cff67bf1-eebf-416a-bd4f-e8268c4fe038@googlegroups.com> <a91a409e-3a0d-46b0-996f-7f2015b9c5db@googlegroups.com> <c75017ca-1820-43ab-865a-7d879fc6ec59@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <a9c984e0-65c7-4e7b-9629-bab9f814d5e8@googlegroups.com> Subject: Re: fir's sicl From: "(fir)" <profesor.fir@gmail.com> Injection-Date: Tue, 08 Aug 2017 09:03:36 +0000 Lines: 154 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit