Article View: pl.comp.lang.c
Article #309342Re: fir's sicl
From: (fir)
Date: Tue, 08 Aug 2017 00:29
Date: Tue, 08 Aug 2017 00:29
122 lines
6204 bytes
6204 bytes
W dniu wtorek, 8 sierpnia 2017 02:06:03 UTC+2 użytkownik M.M. napisał:
> On Tuesday, August 8, 2017 at 1:34:50 AM UTC+2, (fir) wrote:
> > W dniu wtorek, 8 sierpnia 2017 00:41:27 UTC+2 użytkownik M.M. napisał:
> > > On Monday, August 7, 2017 at 11:14:27 PM UTC+2, godek....@gmail.com wrote:
> > >
> > > > szczerze mówiąc, osobiście wolę korzystać z gotowych i ogólnych
> > > > rozwiązań, niż wynajdywać koło na nowo
> > >
> > > Pewnie, kto nie woli? Każdy by chciał ogólnego i zarazem wydajnego
> > > gotowca, ale ogólne często właśnie nie spełniają wymagań wydajnościowych, albo
> > > wbrew pozorom nie są takie ogólne za jakie uchodzą - i trzeba zakodzić.
> > >
> > > Pozdrawiam
> >
> > z tego co wiem jesli w ktos stawia jakies zadanie typu, dajmy na to
> >
> > "policz i wypisz na ekran linie z pliku notatki.txt ktore sa dluzsze niz 75 znakow"
> >
> > to zwykle e c robi sie to ręcznie (czyli 'rzezbi' na poziomie petli ifow tablic i znakow itd
>
> Osobiście, gdy nie mam powodu, albo nawet gdy mam mało ważny powód, ale
> wolę przeznaczyć czas na coś innego, to nie rzeźbię takich zadań w
> forach i ifach. Używam np. awka i wc; a nawet w C++ używam QStringa i
> QRegExp. Co innego gdy bardzo ważna jest wydajność.
>
>
> > konkretnie byloby to
> >
> > int main()
> > {
> > chunk text = LoadChunk("notatki.txt");
> > //wczytuje plik do ramu
> >
> > chunks lines = SplitChunkOnLines(text);
> >
> > // dzieli na linie i zwraca tablice lini
> > // (w postaci bar {poczatek, koniec lini})
> >
> > int n = ChunksLength(lines);
> >
> > int long_lines_counter = 0;
> >
> > for(int i=0; i<n; i++)
> > {
> > int line_length = ChunkLength(lines.first[i]);
> >
> > if(line_length>75)
> > {
> > PrintfChunk(lines.first[i]);
> >
> > long_lines_counter++;
> > }
> >
> > }
> > printf("\n number of long lines: %d", long_lines_counter);
> >
> > return long_lines_counter;
> > }
> >
> > uwagi
> > I. logiczne, przyjemne, proste a byc moze calkiem odkrywcze (ze wzgledu na idee chunk/chunks) [moge wyjasnic dokladniej jak to dziala ale raczej jutro bo ide spac]
> >
> > II. nie znam za duzo rzeczy w c tego typu (nie znam wcale ale moje doswiadczenie jest ograniczone)
> >
> > III. dla mnie lepsze niz wyrazenia regularne
> >
> > IV. nie jestem pewien jak to sie ma do wersji na kontenerach w c++ javaskrypcie czy pythonie ale raczej nie wypada calkiem zle,
> > prawdopodobnie jest z grubsza na rowni a dla koderow w c moze miec dodatkowe zalety bo rozumieja co jest under the hood bo to jest kod w c (dosyc krotki)
>
> W QT prościej. 22 linijki włącznie z helpem, kodowaniem, argumentami z
> linii polecenia:
>
> #include <cstdio>
> #include <cstdlib>
> #include <QTextStream>
>
> int main(int argc, char *argv[])
> {
> QTextStream out(stdout);
> QTextStream inp(stdin);
> if( argc != 3 ) {
> out << "using:\n" << "cat notatki.txt | wc len encode";
> abort();
> }
> int count = 0;
> const int len = QString(argv[1]).toInt();
> inp.setCodec(argv[2]);
> while( ! inp.atEnd() ) {
> count += inp.readLine().size() >= len;
> }
> out << "count = " << count << endl;
> return 0;
> }
>
>
to chyba nie jest krocej , bo jak wywale komentarze to u mnie jest
int main()
{
chunk text = LoadChunk("notatki.txt");
chunks lines = SplitChunkOnLines(text);
int n = ChunksLength(lines);
int long_lines_counter = 0;
for(int i=0; i<n; i++) {
int line_length = ChunkLength(lines.first[i]);
if(line_length>75) { PrintfChunk(lines.first[i]); long_lines_counter++; }
}
printf("\n number of long lines: %d", long_lines_counter);
return long_lines_counter;
}
to ze w szerz jest dluzej wynika tylko z tego ze osobiscie wole dlugie nazwy nie z kodu
pozatym to co ty piszesz robi chyba raczej cos innego niz moj program, co to dokladnie robi?
>
> > raczej pisze sie program w pythonie
> Python to moim zdaniem też język klej, ponieważ w operacjach na
> "pojedynczej zmiennej" jest koszmarnie wolny.
>
czytalem jakies dyskucje na temat podobnego przetwarzania tekstow w pythonie i nie byl koszmarnie wolny, wiekszosc roboty robil w api swoich kontenerow ktore i tak bylo zaimplementowane w c
Technical Details
Message-ID:
<c187f471-aab0-4e10-aa37-f0c942952a86@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.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!border2.nntp.dca1.giganews.com!nntp.giganews.com!s6no1045526qtc.1!news-out.google.com!e5ni921qta.0!nntp.google.com!s6no1045524qtc.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> <3259c160-b8be-4d8f-b8b1-930ecd99060c@googlegroups.com> <84cda872-2f99-4631-9696-38ae0ae5cc46@googlegroups.com> <7e64a61e-2f05-4831-b9b9-cb5abc435a10@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.13.249.130 with SMTP id j124mr1636032ywf.75.1502152185751; Mon, 07 Aug 2017 17:29:45 -0700 (PDT) X-Received: by 10.31.41.67 with SMTP id p64mr1654vkp.16.1502152185705; Mon, 07 Aug 2017 17:29:45 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.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!border2.nntp.dca1.giganews.com!nntp.giganews.com!s6no1045526qtc.1!news-out.google.com!e5ni921qta.0!nntp.google.com!s6no1045524qtc.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Mon, 7 Aug 2017 17:29:44 -0700 (PDT) In-Reply-To: <7e64a61e-2f05-4831-b9b9-cb5abc435a10@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.194; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN NNTP-Posting-Host: 5.172.255.194 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> <3259c160-b8be-4d8f-b8b1-930ecd99060c@googlegroups.com> <84cda872-2f99-4631-9696-38ae0ae5cc46@googlegroups.com> <7e64a61e-2f05-4831-b9b9-cb5abc435a10@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <c187f471-aab0-4e10-aa37-f0c942952a86@googlegroups.com> Subject: Re: fir's sicl From: "(fir)" <profesor.fir@gmail.com> Injection-Date: Tue, 08 Aug 2017 00:29:45 +0000 Lines: 147 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit