numery katalogowe/pesel/itp a GUI

0

Witam.
Zaczynam swoją przygodę z UGI w Visualu i mam pewiem problem z przesiadką z konsoli
piszę program który ma pobrać wpisaną przez użytkownika do textboxa liczbę np. 0120001234 i na jej podstawie określi:
a) na podstawie 2 pierwszych liter określi kolor
b) na podstawie 4 kolejnych określi rok produkcji
c) na podstawie kilku kolejnych określi rok produkcji

najpierw konwertuję zawartość textboksa do tablicy data = System::int tablica[10];
nie wiem tylko jak napisać by program analizował liczbę krok po kroku

ogólnie nie jestem mistrzem programowania a z gui to mam już mega trudności

Za pomoc będę BARDZOOO wdzięczny !!!

pozdrawiam

0

najpierw konwertuję zawartość textboksa do tablicy data = System::int tablica[10];

nie ma takiego typu System::Convert::int, jest najwyżej metoda System::Convert::ToInt32()

1

Zostaw to w postaci napisu. Wycinaj odpowiedni fragment a potem konwertuj ten fragment.

0

A czy był byś jeszcze tak dobry i powiedział mi jak wycinać konkretny fragment
bo niestety właśnie z tym mam największy problem :(

0
int cut(const string & s, int p, int e)
{
    string temp;
    for (int i=p; i<e; ++i)
        temp += s[i];
    
    int tmp;
    istringstream instr(temp);
    instr>> tmp;
    
    return tmp;
}

i wykorzystanie...

string lp = "0120071999";

    int kolor = cut(lp, 0, 2); cout<< "kolor: " << kolor <<endl;
    int rok = cut(lp, 2, 6); cout<< "rok: " << rok <<endl;
    int reszta = cut(lp, 6, 10); cout<< "reszta: " << reszta <<endl;
0

dziękuje bardzo za pomoc !

0

@emacs, czemu nie zrobić po ludzku?

int cut(const string &s,int p,int e)
  {
   int tmp;
   istringstream(s.substr(p,e-p))>>tmp;
   return tmp;
  }

Poza tym rozsądniej to zrobić w następujący sposób:

string lp = "0120071999";
istringstream sin(lp.insert(2+4," ").insert(2," "));
int kolor,rok,reszta;
sin>>kolor>>rok>>reszta;

1 użytkowników online, w tym zalogowanych: 0, gości: 1