Parsowanie parametrów wiersza poleceń

Uwaga! Informacje na tej stronie mają ponad 5 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

# Parsowanie parametrów wiersza poleceń

Thu
09
Aug 2007

Wiele programów, nie tylko konsolowych, akceptuje jakieś parametry wiersza poleceń. Wbrew pozorom zagadnienie nie jest banalnie proste. Zależnie od tego czy program jest konsolowy czy okienkowy, kod wyposażamy w funkcję main lub WinMain. Skutkiem ubocznym jest, że w pierwszym przypadku dostajemy wiersz polecenia już rozłożony na poszczególne parametry (argc, argv), a w drugim przypadku jeden łańcuch ze wszystkimi parametrami.

Ponadto przydatny jest swego rodzaju parser, rozkładający parametry na poszczególne przełączniki i ich ewentualne dane. W Linuksie załatwia to funkcja systemowa getopt, a jej możliwości są imponujące. Nikogo, kto używa tego systemu nie dziwią kombinacje takie jak łączenie opcji typu -cvz zamiast -c -v -z czy sklejanie opcji z danymi typu -lpthread zamiast -l pthread. W Windowsie polecenia systemowe używają opcji zapisywanych w formie /Opcja, ale nie ma w systemie mechanizmu do ich parsowania.

Dlatego chciałbym tu pozachwalać moją klasę CmdLineParser, która załatwia wszystkie powyższe problemy. Jej napisanie poprzedziłem dokładnymi badaniami, jak w Windows i w Linux zachowują się parametry wiersza poleceń. Klasa działa zarówno z parametrami funkcji main, jak i WinMain. Akceptuje opcje zarówno w formie Windowsa, jak i Linuksa, zarówno długie jak i krótkie. Jest przy tym prosta w użyciu i przenośna. Wchodzi w skład modułu Base mojej biblioteki CommonLib 6.1. Szczegóły:

Comments | #productions #algorithms Share

Comments

STAT NO AD
[Stat] [STAT NO AD] [Download] [Dropbox] [pub] [Mirror] [Privacy policy]
Copyright © 2004-2019