Skocz do zawartości

Re: data


Leon

Recommended Posts

Maciej Pacuła napisał:
Dwie uwagi:

Pierwsza
Nie twórz okien potomnych podczas WM_PAINT, tylko podczas WM_CREATE lub WM_INITDIALOG.
Druga

Upewnij się że hYear jest zmienną statyczną (static)

OK przenioslem choc moja aplikacja nie wywoluje wielokrotnie PAINT ale dobra uwaga na pszyszlosc.
Tak wiec dodalem static no i moge odzytac cos z edita i wypisac na innym edicie (wczesniej to nie dzialalo) ale nadal nie moge zapisac do pliku.

Jeszcze jekies pomysly co mam zrobic aby to dzialalo?

Dzieki

Link do komentarza
Udostępnij na innych stronach

Wykorzystaj poniższą funkcję zamiast obiektu file. Pierwszym argumentem jest ścieżka pliku (np. "c:\\moje dokumenty\\plik.txt"). Pamiętaj, że gdy w C/C++ podajesz położenie plików, to musisz używać podwójnych ukośników \\. Inaczej kompilator potraktuje znak następujący bezpośrednio po slashu jako znak kontrolny ASCII.
Drugim parametrem funkcji jest wskażnik do bufora z tekstem. Gdy masz kontrolkę o identyfikatorze 100 i chcesz zapisać z niej dane do pliku c:\dane.dat, to piszesz:

GetDlgItemText (hwnd, 100, szText, sizeof (szText) / sizeof (TCHAR)) ;
fileWriteFile (TEXT ("c:\\dane.dat"), szText) ;

A oto i funkcja:

BOOL fileWriteFile (PTSTR pstrFileName, PTSTR pstrBuffer)
{
     DWORD  dwBytesWritten ;
     HANDLE hFile ;
     int    iLength ;
     WORD   wByteOrderMark = 0xFEFF ;

         SetCursor (LoadCursor (NULL, IDC_WAIT)) ;

          // Open the file, creating it if necessary
     
     if (INVALID_HANDLE_VALUE == 
               (hFile = CreateFile (pstrFileName, GENERIC_WRITE, 0, 
                                    NULL, CREATE_ALWAYS, 0, NULL)))
          return FALSE ;
     
     iLength = lstrlen (pstrBuffer) ; ;
     
     if (!pstrBuffer)
     {
          CloseHandle (hFile) ;
          return FALSE ;
     }

#ifdef UNICODE
     WriteFile (hFile, &wByteOrderMark, 2, &dwBytesWritten, NULL) ;
#endif
     
     WriteFile (hFile, pstrBuffer, iLength * sizeof (TCHAR), 
                &dwBytesWritten, NULL) ;
     
     if ((iLength * sizeof (TCHAR)) != (int) dwBytesWritten)
     {
          CloseHandle (hFile) ;
                  SetCursor (LoadCursor (NULL, IDC_ARROW)) ;
          return FALSE ;
     }
     
     CloseHandle (hFile) ;
     
         SetCursor (LoadCursor (NULL, IDC_ARROW)) ;

     return TRUE ;
}

Pozdrawiam Pinolca, żeby nie czuł się niepozdrowiony :P

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...