-
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
Następne wpisy z tego wątku
- 19.10.12 16:27 kenobi
- 19.10.12 16:33 kenobi
- 19.10.12 16:35 Baranosiu
- 19.10.12 16:45 Baranosiu
- 19.10.12 16:46 kenobi
- 19.10.12 16:50 kenobi
- 19.10.12 17:00 Baranosiu
- 19.10.12 17:54 kenobi
- 19.10.12 18:54 Baranosiu
- 19.10.12 19:22 kenobi
- 19.10.12 20:06 kenobi
- 19.10.12 20:43 Baranosiu
- 20.10.12 01:25 Baranosiu
- 20.10.12 08:57 kenobi
- 20.10.12 10:38 kenobi
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2025-01-01 Już nie płoną
- 2025-01-01 Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- 2025-01-01 Co tam u Was
- 2025-01-01 Koder szuka pracy. Koduję w j.: Asembler, C, C++ (z bibl. Qt) i D.
- 2025-01-01 Gdańsk => Delphi Programmer <=
- 2025-01-01 Łódź => Programista Full Stack .Net <=
- 2025-01-01 Żerniki => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-01 Wrocław => Specjalista ds. Sprzedaży <=
- 2024-12-31 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-01 Przypomnienie: Mini Netykieta polskich grup dyskusyjnych wer. 3.2.2
- 2024-12-31 Zamykanie konta dziecka.
- 2024-12-31 Czy apka bankowa to gra komputerowa?
- 2024-12-31 Szukam: czujnik ruchu z możliwością zaączenia na stałe
- 2024-12-31 Warszawa => Solution Architect (Java background) <=