C++ Texteditor in Zwischenablage
-
Ich habe letztens ein Programm geschrieben welches auf einen Texteditor zugreift und dann den Textinhalt in die Zwischenablage einfügt. Doch es gibt ein Problem ,weil wenn das Textdokument mehrere Zeilen hat , dann wird nur die untersete in die Zwischenablage eingefügt. Vllt hat jemand eine Lösung.
Hier der Code :
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <windows.h>
#include <conio.h>using namespace std;
void SetClipboard(char *);
int main()
{
string eingabe;
cout<<"<A1>"<<endl;cin >> eingabe;
getchar();
if(eingabe == "A1" || eingabe == "a1")
{
system("CLS");
vector<string> v;
ifstream in("E:\\Text.txt");
string line;
while(getline(in, line))
{
v.push_back(line);
for(int i =0;i <v.size(); i++)
{
string &rv = v[i];
char p[256];int TempNumOne=rv.size ();
for (int a=0;a<=TempNumOne;a++)
{
p[a]=rv[a];
}
SetClipboard(p);cout<<p<<endl; // Bis hier hin gibt er es ja noch richtig aus aber in der Zwischenablage ...
v.clear ();
}
}
}
getchar();
return(0);
}void SetClipboard(char *output)
{
const size_t len = strlen(output) + 1;
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, len);
memcpy(GlobalLock(hMem), output, len);
GlobalUnlock(hMem);
OpenClipboard(0);
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem);
CloseClipboard();
}
-
Du solltest einfach das "SetClipboard" nur *einmal* und das ganz am Ende, nachdem Du allen Text hast, aufrufen!
-
Ich habe es versucht aber danach passiert immer noch das gleiche...
-
Du musst ja auch den String zusammenbauen.... ich würde die Textdate auf einmal einlesen und nicht zeilen-Orientiert... warum auch? DU willst doch *alle* Daten in der Zwischenablage haben, oder?
-
ja schon nur ich kenne mich mit so was noch nicht so gut aus also wie würde der code dann ausehen?