eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingcoś lajtowego - konsolaRe: coś lajtowego - konsola
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.task.gda.pl!not-for-mail
    From: Baranosiu <r...@w...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: coś lajtowego - konsola
    Date: Fri, 19 Oct 2012 14:05:11 +0000 (UTC)
    Organization: CI TASK http://www.task.gda.pl/
    Lines: 79
    Message-ID: <k5rmml$654$1@news.task.gda.pl>
    References: <4...@g...com>
    <k5r0pj$dbm$1@news.task.gda.pl>
    <8...@g...com>
    <k5r24i$g9e$1@news.task.gda.pl>
    <5...@g...com>
    <b...@g...com>
    <4...@g...com>
    <e...@g...com>
    <s...@h...pl>
    <6...@g...com>
    <k5r7cr$ude$1@news.task.gda.pl>
    <7...@g...com>
    <k5rai5$6f5$1@news.task.gda.pl>
    <a...@g...com>
    <k5rf13$h4m$1@news.task.gda.pl>
    <5...@g...com>
    <s...@h...pl>
    <1...@g...com>
    Reply-To: Baranosiu <r...@w...pl>
    NNTP-Posting-Host: user-31-175-154-40.play-internet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=iso-8859-2
    Content-Transfer-Encoding: 8bit
    X-Trace: news.task.gda.pl 1350655511 6308 31.175.154.40 (19 Oct 2012 14:05:11 GMT)
    X-Complaints-To: a...@n...task.gda.pl
    NNTP-Posting-Date: Fri, 19 Oct 2012 14:05:11 +0000 (UTC)
    User-Agent: slrn/pre1.0.0-18 (Linux)
    Xref: news-archive.icm.edu.pl pl.comp.programming:200157
    [ ukryj nagłówki ]

    Dnia 19.10.2012 kenobi <p...@g...com> napisał/a:
    > W dniu piątek, 19 października 2012 15:14:41 UTC+2 użytkownik Sławomir Szczyrba
    napisał:
    >> They're watching you, kenobi.
    >>
    >> [...]
    >>
    >> > jak wygodnie zrobic tak by ParseCommandline
    >>
    >> > zwracalo rozparsowane argumenty nie tylko
    >>
    >> > w formie komenda i tablica intow tylko
    >>
    >> > w ogolnym wypadku - tj przemieszane numeryki
    >>
    >> > (numery moga byc wczytywane jako ogolne tj double to sobie zrzutuje na inta albo
    nie)
    >>
    >> > oraz stringi
    >>
    >> >
    >>
    >> > slowem,
    >>
    >> > tak zeby mozna bylo tez obslugiwac stringi
    >>
    >> >
    >>
    >> > np
    >>
    >> >
    >>
    >> > costam 10 10 "ala ma kota"
    >>
    >> >
    >>
    >> > ?
    >>
    >> >
    >>
    >> Zobacz sobie jak to jest tu zrobione.
    >>
    >> http://dunkels.com/adam/ubasic/
    >>
    >>
    > nie chce mi sie w to wczytywac, [choc o tyle
    > fajne ze uswiadamia czym jest basic (przynajmniej ten w starym stylu jak c c64,
    > duzo roboty/kodu to to faktycznie nie jest ]
    >
    > nie mowie ze to jest trudne tylko podalem
    > jako ciekawostke bo o ile z argumentami
    > czysto liczbowymi mozna dac "char* command"
    > i "double arg[]" to w przypadku mieszanych
    > trzeba chyba cos w stylu "char* c = getCommand(); double arg1 = getNumber(); double
    arg2 = getNumber(); char* arg3 = getString();" itd
    >

    Możesz pobrać wszystko jako char* a potem sobie konwertować w razie
    potrzeby na liczby poprzez atoi czy atof. Możesz też wykorzystać
    gotowe interpretery prostych języków (typu lua). Możesz też
    zdefiniować gramatykę i wykorzystać bisona i flexa do automatycznego
    wygenerowania parserów itd. Serio nie widzę tu żadnych "ciekawostek"
    :D Nawet "na piechotę" to po wprowadzeniu całej linii przez
    użytkownika tnę ją po białych znakach na kawałki używając strtok i na
    podstawie pierwszego "wyrazu" decyduję co zrobić z pozostałymi, na
    przykład jak ktoś wpisze "rysujkolo 10 20 5", to po pocięciu tego na
    kawałki dostanę powiedzmy x[0]="rysujkolo", x[1]="10", x[2]="20", x[3]="5".
    x[0] zawiera "rysujkolo", więc wywoluje funkcje (o deklaracji na
    przyklad rysuj_kolo(int,int,int);) w ten sposob:
    rysuj_kolo(atoi(x[1]),atoi(x[2]),atoi(x[3]));
    i po sprawie.

    Jeśli natomiast nie chcesz mieć osobnych funkcji rysuj_kolo(),
    rysuj_kwardat() itd., tylko chcesz mieć jedną funkcję rysuj()
    (obsługującą różne "konfiguracje" argumentów), to jeśli piszesz to w
    C, to możesz użyć mechanizmu z stdarg.h, a jeśli piszesz w C++, to
    załatwić sprawę różnych argumentów poprzez przeciążanie funkcji :D

    Moim zdaniem pharsowanie nie powinno się odbywać w funkcji
    pobierającej dane z konsoli, tylko konsola powinna pobierać na
    przykład całą linię i wysyłać ją (jako jeden string) do pharsera,
    który już sobie zrobi z tym co będzie chciał :D

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: