Datei einlesen und in Zwischenablage kopieren



  • warum funzt das net????

    will die ganze datei in einem std::string oder halt stringstream einlesen.... u in messagebox ausgeben..

    ifstream Datei("Message.txt");
    	   stringstream text;
    
    	   //Datei.open("Message.txt");
    	   if(Datei.is_open)
    	   {
    		   while(!Datei.eof())
    		   {
    			   text << Datei;
    		   }
    	   }
    
    	   MessageBox(0, text.str().c_str(),"Datei", MB_OK);
    

    cu



  • habs so gelöst:

    ifstream datei("Message.txt", ios::binary);
    
    	   if (datei) /* Fehler, Datei putt */
    	   {
    	       datei.seekg(0, ios::end);
    	       std::vector<char> buffer(datei.tellg());
    	       datei.seekg(0, ios::beg);
               datei.read(&buffer[0], buffer.size());
               //datei.push_back('\0');
    
               std::string text(buffer.begin(), buffer.end());
    
    	       MessageBox(0, text.c_str(),"Datei", MB_OK); 
    
    		   // Textdatei schließen
    	       datei.close();
    	   }
    

    wie würdet ihr das machen???
    wie kann ich jetzt den text in std::string text in die zwischenablage kopieren????

    cu





  • #include <iostream> 
    #include <string> 
    
    // ... 
    
    int main() 
    { 
        std::string text; 
        std::cin >> text; 
        SetClipboardText(text.c_str()); 
    }
    

    habs das beim suchen da gefunden! is das so einfach???

    cu



  • #include <windows.h> 
    
    BOOL SetClipboardText(LPCTSTR lpszInputText) { 
        if(OpenClipboard(NULL) == FALSE) { 
            return FALSE; 
        } 
    
        if(EmptyClipboard() == FALSE) { 
            CloseClipboard(); 
            return FALSE; 
        } 
    
        HGLOBAL hMemory = GlobalAlloc(GMEM_MOVEABLE, (lstrlen(lpszInputText) + 1) * sizeof(TCHAR)); 
        if(hMemory == NULL) { 
            CloseClipboard(); 
            return FALSE; 
        } 
    
        LPTSTR lpszText = (LPTSTR) GlobalLock(hMemory); 
        if(lpszText == NULL) { 
            GlobalFree(hMemory); 
            CloseClipboard(); 
            return FALSE; 
        } 
    
        if(lstrcpy(lpszText, lpszInputText) == NULL) { 
            GlobalUnlock(hMemory); 
            GlobalFree(hMemory); 
            CloseClipboard(); 
            return FALSE; 
        } 
    
    #ifdef UNICODE 
        if(SetClipboardData(CF_UNICODETEXT, hMemory) == NULL) { 
    #else 
        if(SetClipboardData(CF_TEXT, hMemory) == NULL) { 
    #endif 
            GlobalUnlock(hMemory); 
            GlobalFree(hMemory); 
            CloseClipboard(); 
            return FALSE; 
        } 
    
        if(GlobalUnlock(hMemory) == FALSE) { 
            if(GetLastError() != NO_ERROR) { 
                GlobalFree(hMemory); 
                CloseClipboard(); 
                return FALSE; 
            } 
        } 
    
        if(GlobalFree(hMemory) != NULL) { 
            CloseClipboard(); 
            return FALSE; 
        } 
    
        if(CloseClipboard() == FALSE) { 
            return FALSE; 
        } 
    
        return TRUE; 
    }
    

    das gehört noch dazu;-)



  • Für den nächsten Thread wäre eine passende Überschrift nicht schlecht!

    Gruß Skay



  • Skay schrieb:

    Für den nächsten Thread wäre eine passende Überschrift nicht schlecht!

    Gruß Skay

    ok ja! aber ich kann den titel nicht mehr ändern!
    titel: Datei einlesen und in Zwischenablage kopieren

    cu



  • done 😉



  • flenders schrieb:

    done 😉

    ich hoff das beispiel da funktioniert, sonst wird es dem titel nicht gerecht;-)
    muss mal am nachmittag compelieren;-)

    cu


Anmelden zum Antworten