Beispiel #1
0
int main(int argc, char *argv[]){
	BookCatalog catalog;
	string operation=argv[1];
	checkNumberOfArguments(argc);
	catalog = createCatalog(count_lines_of_file());
	
	if(areEqual(upper(operation),"TAGS"))TagOperations(argv[2],argv[3],catalog,argc);
	else if(areEqual(upper(operation),"ADD"))addBook(argv[2], argc, catalog);
	else if(areEqual(upper(operation), "LIST"))showListOfBooks(catalog, argc);
	else if(areEqual(upper(operation),"SEARCH"))search_books_using_diffrent_fields(argv[2], argv[3], catalog, argc);
	else if(areEqual(upper(operation),"REMOVE")){delete_the_book_using_isbn( argv[2],argv[3], catalog, argc);printf("book is deleted\n");}
	else if(areEqual(upper(operation), "UPDATE"))updateBook(argv[2], catalog, argc);
	else if(areEqual(upper(operation), "--HELP"))provideHelp(argc);
	else giveExcuse();
	clearCatalog(catalog);
	return 0;
}
Beispiel #2
0
void BoardWithQuickEntry::processCommand(const QString &command)
{
	QStringList items(command.split(" ", QString::SkipEmptyParts));
	Quackle::Move move(Quackle::Move::createNonmove());

	if (items.size() <= 0)
	{
		provideHelp();
		return;
	}

	const QString verb(items.first().toLower());

	if (verb.startsWith("pass"))
		move = Quackle::Move::createPassMove();
	else
	{
		if (items.size() != 2)
		{
			provideHelp();
			return;
		}

		if (verb.startsWith(tr("ex")))
		{
			QString letters = items.at(1);
			bool isIntConvertable = false;
			int exchangeLength = letters.toInt(&isIntConvertable);
			bool isPass = false;

			Quackle::LetterString encodedLetters;

			if (isIntConvertable)
			{
				if (exchangeLength == 0)
				{
					isPass = true;
				}
				else
				{
					for (int i = 0; i < exchangeLength; ++i)
						encodedLetters.push_back(QUACKLE_BLANK_MARK);
				}
			}
			else
			{
				encodedLetters = QuackleIO::Util::nonBlankEncode(letters);
			}

			if (isPass)
				move = Quackle::Move::createPassMove();
			else
				move = Quackle::Move::createExchangeMove(encodedLetters);
		}
		else
		{
			QString prettyLetters(items.at(1));
			QString letters;

			bool replace = false;
			for (int i = 0; i < prettyLetters.length(); ++i)
			{
				QChar character = prettyLetters.at(i);
				if (character == '(')
					replace = true;
				else if (character == ')')
					replace = false;
				else if (replace)
					letters += ".";
				else
					letters += character;
			}
			move = Quackle::Move::createPlaceMove(QuackleIO::Util::qstringToString(items.first()), QuackleIO::Util::encode(letters));
		}
	}

	if (move.isAMove())
		emit setCandidateMove(move);
}