Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dodawanie dwóch buforów typu LPSTR

Ostatnio zmodyfikowano 2014-01-06 16:40
Autor Wiadomość
oval
Temat założony przez niniejszego użytkownika
Dodawanie dwóch buforów typu LPSTR
» 2014-01-06 14:29:05
Witam,
Zaczynam zabawę z winami i natrafiłem na problem jak dla mnie nie do przejścia ;/
Chcę pobrać z pola EDIT w moim GUI wpisaną wartość i dopisać ją do już istniejącego pliku .txt. Problem polega na tym, że program pobiera ładnie dane z inputa oraz pliku .txt, ale nie potrafie ich ze sobą połączyć. Doczytałem, że służy to tego strcat, ale gdy go używam wkleja mi do tablicy jakieś krzaczki i do nich na końcu dokleja to co rzeczywiście mam w pliku.
Oto kod:
C/C++
LPSTR Bufor1, Bufor2;
DWORD dwRozmiar1, dwPrzeczyt1, dwRozmiar2, dwPrzeczyt2, dwZapisane;
HANDLE hPlik;
hPlik = CreateFile( "tekst.txt", GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_ALWAYS, 0, NULL );
dwRozmiar1 = GetFileSize( hPlik, NULL );
dwRozmiar2 = GetWindowTextLength( WndText2 );
Bufor1 =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar1 + 1 );
Bufor2 =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar2 + 1 );
ReadFile( hPlik, Bufor1, dwRozmiar1, & dwPrzeczyt1, NULL );
GetWindowText( WndText2, Bufor2, dwRozmiar2 + 1 );
DWORD dwRozmiar3 = dwRozmiar1 + dwRozmiar2;
std::cout << "bufor z pliku: " << Bufor1 << std::endl;
std::cout << "bufor z gui: " << Bufor2 << std::endl;
std::cout << "rozmiar bufora 3: " << dwRozmiar3 << std::endl;
char Bufor3[ dwRozmiar3 ];
strcat( Bufor3, Bufor1 );
std::cout << "check 1 :" << Bufor3 << std::endl;
strcat( Bufor3, Bufor2 );
std::cout << "check 2 :" << Bufor3 << std::endl;
std::cout << Bufor3 << std::endl;
WriteFile( hPlik, Bufor3, dwRozmiar3, & dwZapisane, NULL );
GlobalFree( Bufor3 ); // Zwolnij bufor
GlobalFree( Bufor2 ); // Zwolnij bufor
GlobalFree( Bufor1 ); // Zwolnij bufor
CloseHandle( hPlik ); // Zamknij plik
std::cout << "zakonczono zapis" << std::endl;

już w linijce z check1 jest błąd ;/
P-101407
pekfos
» 2014-01-06 14:36:53
Masz śmieci w tablicy. Dla pierwszego stringa powinieneś użyć strcpy(). No i tablica Bufor3 jest niepoprawnie utworzona.

Zaczynam zabawę z winami i natrafiłem na problem jak dla mnie nie do przejścia ;/
Korek? ;)
P-101411
oval
Temat założony przez niniejszego użytkownika
» 2014-01-06 16:27:13
Racja, brakowało strcpy. Teraz mam kolejny problem, bo nie wiem jak to co pobierze z EDIT-a wstawić do pliku, ale w nowej linii. Z tego co wiem, trzeba tam będzie wstawić znak nowego wiersza pomiędzy buforem ze starym plikiem i buforem z pola input, ale jak to zrobić ? '\n' nie działa ;/
P-101442
pekfos
» 2014-01-06 16:30:23
'\n' nie działa ;/
A "\r\n"?
P-101444
oval
Temat założony przez niniejszego użytkownika
» 2014-01-06 16:40:15
Działa! Dzięki!
P-101445
« 1 »
  Strona 1 z 1