Jak zczytywac LPSTR wersami

0

Witam.
Robię program w WinApi i mam mały kłopot. Mianowicie mam do wczytania z Edita dane (Nazwisko, Imię) mniejwięcej w taki sposób:

KOWALSKI Jan
JANKOWSKA - RZEPA Małgorzata
SIERMIEŃCZUK Piotr
itd.

Potrafię pobrać tekst z Edita do zmiennej LPSTR, ale nie wiem jak mam teraz wstawić do zmiennych LPSTR dane1, dane2 itd. poszczególne imiona i nazwiska. Jeżeli nie da rady tak dzielić, to jak zamienić zmienną typu LPSTR na załóżmy char[dlugosc], bo wtedy potrafiłbym sobie sam wczytywać znak po znaku :)

0

http://msdn.microsoft.com/en-[...]/cc230353%28v=prot.10%29.aspx

czyli jak masz
LPSTR myBuffer = new TCHAR[100];,
to indeksujesz myBuffer[XXX]

LPWSTR buff = new TCHAR[1024]; //LPWSTR bo mam wersję projektu z UNICODE
int len = ::GetWindowText(hEdit, buff, 1024);
if(len > 4)
{
::MessageBox(hMainWnd, &buff[4], _T("Text"), MB_OK);
}

delete[] buff;

0

Dzięki wielkie na ten przykład. Mam jeszcze jedno pytanie. Istnieje możliwość konwertowania typu LPSTR ( char* ) na zwykłą tablicę znaków ( char ) ??
Znaczy się problem polega na tym, że:

LPSTR Tekst1;
char Tekst2[10];

Tekst2 = Tekst1 // działa
Tekst1 = Tekst2 // nie działa :((

Oczywiście przedtem określam długość Tekst1 itd, ale mam błędy na start w kompilacji.

0

Do kopiowania c-stringów masz funkcję strcpy.

0

Tekst2 = Tekst1 // działa
Tekst1 = Tekst2 // nie działa :((

Chyba odwrotnie. Tekst1 jest wskaźnikiem i możesz mu przypisać watość początku Tekst2, czyli Tekst1 = Tekst2 działa, nie trzeba nawet alokować żadnej pamięci do Tekst1. W drugą stronę Visual wywala błąd:
error C2440: '=' : cannot convert from 'LPSTR' to 'char [10]'
1> There are no conversions to array types, although there are conversions to references or pointers to arrays

Jak było wspomniane, użyj strcpy lub jej odmian (http://msdn.microsoft.com/en-[...]y/5dae5d43%28v=VS.100%29.aspx) do kopiowania napisów. A jesli piszesz w c++, to chyba łatwiej będzie operować na std::string

0

Dzięki wielkie ! :) Funkcja strcpy działa jak należy. Mam już wszystko czego potrzebowałem. Biorę się do roboty. Pozdrowienia wszystkim.

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