Witam, próbuję napisać własny system skryptów, lecz utknąłem w dość dziwnej (być może banalnie prostej sytuacji). Problem polega na tym, że nie mam pojęcia jak uwzględniać odstępy w argumentach, np. : jakaśFunkcja(Wiadomość o dwóch wyrazach, Tytuł wiadomości);
Pozdrawiam, Czepek!
Kod:
#include <cstring>
#include <cstdio>
#include <list>
#include <Windows.h>
int main()
{
std::list<char*> argHandler;
char stringToParse[] = "script messagebox(Wiadomość_jego_mać,Tytuł_message_boxa)";
char* buffer = strtok(stringToParse, " ");
while(buffer != NULL)
{
buffer = strtok(NULL, " ");
if(buffer != NULL)
argHandler.push_back(buffer);
};
std::list<char*>::iterator it;
for(it = argHandler.begin(); it != argHandler.end(); it++)
{
char fullCommand[255];
sprintf(fullCommand, "%s", *it);
if(strcmp(*it, "messagebox") > 0)
{
char arg1[255], arg2[255];
char* buf = strtok(fullCommand, "(,)");
buf = strtok(NULL, "(,)");
strcpy(arg1, buf);
buf = strtok(NULL, "(,)");
strcpy(arg2, buf);
MessageBoxA(HWND_DESKTOP, arg1, arg2, MB_OK | MB_ICONINFORMATION);
continue;
}
}
return 0;
}
Pozdrawiam, Czepek!