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: 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 ); GlobalFree( Bufor2 ); GlobalFree( Bufor1 ); CloseHandle( hPlik ); std::cout << "zakonczono zapis" << std::endl;
już w linijce z check1 jest błąd ;/ |
|
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? ;) |
|
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 ;/ |
|
pekfos |
» 2014-01-06 16:30:23 |
|
oval Temat założony przez niniejszego użytkownika |
» 2014-01-06 16:40:15 Działa! Dzięki! |
|
« 1 » |