/**************/ /* tiedleik.c */ /**************************************************************************** ** PROGRAM: tiedleik.c ** PURPOSE: Autolaskurin tiedoston käsittely ja leikekirjan käsittely ****************************************************************************/ #include /* Tarvitaan kaikissa Windows C-ohjelmissa */ #include #include #include #include "filename.h" #include "clipboard.h" #include "..\menu4\laskurm4.h" /***************************************************************************/ char laskuri_teksti[128]; /***************************************************************************/ char *laskurit_tekstiksi(int *laskurit) /* Muutetaan laskureiden arvo tekstiksi */ { sprintf(laskuri_teksti,"%d %d",laskurit[0],laskurit[1]); return laskuri_teksti; } /***************************************************************************/ int ShowStatic(HWND hWnd, int id, int value) /* Aliohjelmalla tulostetaan Static ikkunaan numero */ { char s[20]; wsprintf(s,"%d ",value); SetDlgItemText(hWnd,id,s); return 0; } /***************************************************************************/ void teksti_laskureiksi(HWND hWnd,char *teksti,int *laskurit) /* Muutetaan teksti laskureiksi */ { int i; sscanf(teksti,"%d %d",&laskurit[0],&laskurit[1]); for (i=0; iName,&OfStruct,OF_CREATE); if ( hFile == HFILE_ERROR ) goto error; s = laskurit_tekstiksi((int *)File->data); count = strlen(s); n = _lwrite(hFile,s,count); _lclose(hFile); if ( n == count ) return 0; error: MessageBox(File->hWnd,File->Name,"Talletus epäonnistui", MB_APPLMODAL | MB_OK | MB_ICONEXCLAMATION); return -1; } /***************************************************************************/ int MyRead(FileType *File) { static OFSTRUCT OfStruct; HFILE hFile = OpenFile(File->Name,&OfStruct,OF_READ); int n; static char s[128]; if ( hFile == HFILE_ERROR ) goto error; n = _lread(hFile,s,sizeof(s)); _lclose(hFile); teksti_laskureiksi(File->hWnd,s,(int *)File->data); if ( n > 0 ) return 0; error: MessageBox(File->hWnd,File->Name,"Lukeminen epäonnistui", MB_APPLMODAL | MB_OK | MB_ICONEXCLAMATION); return -1; } /***************************************************************************/ int MyNew(FileType *File) { nollaa_laskurit(File->hWnd,(int *)File->data); return 0; } /***************************************************************************/ DWORD laskurit_leikekirjaan(HWND hWnd,int *laskurit) { char *pText = laskurit_tekstiksi(laskurit); return TextToClipboard(hWnd,pText); } /***************************************************************************/ DWORD leikekirja_laskureihin(HWND hWnd,int *laskurit) { char *pText = TextClipboard(hWnd); if ( !pText ) return -1; teksti_laskureiksi(hWnd,pText,laskurit); return 0; }