/**************/ /* 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 "laskurm4.h" /***************************************************************************/ int laskurit[LASKUREITA] = {0,0}; /***************************************************************************/ 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; } /***************************************************************************/ int nollaa_laskurit(HWND hWnd,int laskurit[]) { int i; 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; } /*-------------------------------------------------------------------------*/ static 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; } /*-------------------------------------------------------------------------*/ static int MyNew(FileType *File) { nollaa_laskurit(File->hWnd,(int *)File->data); return 0; } /*-------------------------------------------------------------------------*/ FileType File={ "", /* Tiedoston nimi, aluksi "" */ WTITLE, /* Ikkunan otsikko, jonka perään tied.nimi */ 1, /* Luetun funktion tyyppi, ks. szFilter */ "Laskuri (*.las)\0*.las\0Teksti (*.txt)\0*.txt\0Kaikki (*.*)\0*.*\0", 0, /* Onko tiedostoa muutettu. */ MySave, /* Osoitin talletusfunktioon */ MyRead, /* Osoitin lukufunktioon */ MyNew, /* Osoitin tiedon nollausfunktioon */ laskurit /* osoitin dataan */ }; /***************************************************************************/ int laskurit_leikekirjaan(HWND hWnd,int *laskurit) { char *pText = laskurit_tekstiksi(laskurit); return TextToClipboard(hWnd,pText); } /***************************************************************************/ int leikekirja_laskureihin(HWND hWnd,int *laskurit) { const char *pText = TextClipboard(hWnd); if ( !pText ) return -1; teksti_laskureiksi(hWnd,pText,laskurit); return 0; }