Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 284
  • Last Modified:

Help parsing an Edit Control

I am simulating a "fingerprint scan" by using an Edit box in my novelty program.

the characters I will use to accept and draw the print are:

/ \ : { } |

Open in new window


here is the key I am using to determine whether or not a fingerprint scan is correct:

{ = day of week is Mon thru thurs
} = say of week is Fri thru sun
/ = month is Jan Thru June
\ = month is July thru Dec
| = time is 12:01am thru 12pm
: = time is 12:01pm thru 12:00am

Can someone show me a Bare bones example on how to check my IDC_PRINT edit box to determine whether they entered a valid"print"?

Thank you.
0
edvinson
Asked:
edvinson
  • 4
  • 3
1 Solution
 
sarabandeCommented:
can you elaborate what relation a "fingerprint scan" has with a edit box string that contains date/time related characters?

can you make a sample usecase with good and bad input (and explain why they were good or bad)?

Sara
0
 
edvinsonAuthor Commented:
The user has to enter the correct characters in the edit box to succeed.
So u need to use the key to determine whether their answer is correct.

I think i would loop through each char in edit box, and determine whether that character evaluates to true (based upon the rule assigned to that character)

if each character is True, then they entered a correct "print", and game continues.

Hope that helps. Oh, of course automatically the function will return false, bad, if any other characters are present.

Thank you so much
0
 
sarabandeCommented:
a few questions:

- the user enters any sequence of / \ : { } | and all are valid?

- it depends on the current date/time whether they were valid?

- a valid character can be repeated?

generally, you better would check each single character rather than the input in the edit box. the problem for the latter is that you don't get a reliable event for end-of-input but have to handle ambiguous events like WM_KILLFOCUS, what means that the user has moved from edit field to some other control.

when the user enters a single character you could handle EN_CHANGE or EN_UPDATE notification, or on a lower level, WM_KEYDOWN, WM_CHAR, or WM_KEYUP message.

Sara
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
edvinsonAuthor Commented:
I think I confused you, I am sorry.

Quite simply, I want to check the edit box value. It is either going to be correct, or incorrect.

Wrapped in a BOOL function....

 I would loop through each character.

Let's say the first character is { , then my code would check to see if Todays day is MON-THURS. If so, continue with next char. If not, it fails, return false,

Do this for each character. Each character must pass its own test.

The correct answer will contain 3 characters, and depending upon the time and date, it will contain only the characters I listed above.

For instance, using SAT JUN 08 2013 12:02am , a correct answer would be:

}/|

anything else would return false.

I suppose the order of the characters doesn't matter, as long as they are correct
0
 
edvinsonAuthor Commented:
Question not receiving answers, request deleting please. Maybe i need to re phrase it.
0
 
sarabandeCommented:
you could do like

std::string strValid = "/\\:{}|";
char szInput[100] = { '\0' };
GetWindowText(::GetDlgItem(IDC_PRINT), szInput, 100);
int len = (int)strlen(szInput);
for (int i = 0; i < len; ++i)
{
     if (strValid.find(szInput[i]) == std::string::npos)
     {
            ::MessageBox(NULL, szInput, "Wrong Input", MB_OK);
            return;
     }
     SYSTEMTIME st = { 0 };
     GetSystemTime(&st);
     switch (szInput[i])
     {
     case '/':
           if (st.wMonth > 6)
           {
                ::MessageBox(NULL, "/", "Wrong Month", MB_OK);
                return;
           }   
           break;
    case '\\':
          ...
}

Open in new window


Sara
0
 
edvinsonAuthor Commented:
This is the perfect code solution to get me going.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now