BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Zwischenablage befüllen / einfügen
-
- Beiträge: 54
- Registriert: Do 16. Jun 2011, 16:08
Zwischenablage befüllen / einfügen
Hallo!
Ich nehme mir eine Variable als einen Container her. Diese Variable befülle ich zum Beispiel mit Text aus einem Absatz oder dem Inhalt einer Tabellenzelle (also ganz bescheiden).
Frage: wie bekomme ich den Inhalt dieser Variable in die WIN-Zwischenablage? (Es geht hier nicht um z.B. Versuche zwischen Writer und Calc Daten auszutauschen, ich will das anderweitig verwenden).
Und nun das Ganze in die Gegenrichtung: Wie bekomme ich den Inhalt der Zwischenablage (ordnungsgemäß befüllt) in eine Variable?
Eric March
Ich nehme mir eine Variable als einen Container her. Diese Variable befülle ich zum Beispiel mit Text aus einem Absatz oder dem Inhalt einer Tabellenzelle (also ganz bescheiden).
Frage: wie bekomme ich den Inhalt dieser Variable in die WIN-Zwischenablage? (Es geht hier nicht um z.B. Versuche zwischen Writer und Calc Daten auszutauschen, ich will das anderweitig verwenden).
Und nun das Ganze in die Gegenrichtung: Wie bekomme ich den Inhalt der Zwischenablage (ordnungsgemäß befüllt) in eine Variable?
Eric March
Re: Zwischenablage befüllen / einfügen
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 54
- Registriert: Do 16. Jun 2011, 16:08
Re: Zwischenablage befüllen / einfügen
Hallo!
Mir ist wohl das OOo-Forum bekannt. Aber warum dann nicht gleich Google vorschlagen?
Hier im Forum hatte ich Null Treffer und deswegen die Frage gestellt. 116 sind wiederum zu viele um zügig das zu finden was man wirklich braucht.
Denn genug Treffer dort laufen offenbar auf Copy-Paste hinaus (oder mehr was das hinterlässt), nicht aber auf das erwünschte Einlesen in eine Varaible.
Also suchen wir da mal nach »zwischenablage in variable«. 22 z.T. redundante Treffer, wie dieser [redigiert]:
Eric March
Mir ist wohl das OOo-Forum bekannt. Aber warum dann nicht gleich Google vorschlagen?
Hier im Forum hatte ich Null Treffer und deswegen die Frage gestellt. 116 sind wiederum zu viele um zügig das zu finden was man wirklich braucht.
Denn genug Treffer dort laufen offenbar auf Copy-Paste hinaus (oder mehr was das hinterlässt), nicht aber auf das erwünschte Einlesen in eine Varaible.
Also suchen wir da mal nach »zwischenablage in variable«. 22 z.T. redundante Treffer, wie dieser [redigiert]:
Vielen Dank für die wirklich erschöpfende Hilfe.Re: Zwischenablage leeren
Hallo
elchimforum hat geschrieben:kann man die Zwischenablage auslesen um Sie als Variable weiterverwerten?
Ja!
Karo
von Karolus
12.03.2011, 22:13
Forum: OOo Basic und Java
Thema: Zwischenablage leeren
Eric March
Re: Zwischenablage befüllen / einfügen
Hallo
Eric 116 Treffer sind schon zu viel für dich , gut dann such ich dir was passendes raus:
http://de.openoffice.info/viewtopic.php ... ge#p169860
Am besten noch etwas Quellcode um Missverständnisse zu vermeiden:
Das waren etwa 15 min Arbeit - möchtest du meine Kontonr ?
Karo
Eric 116 Treffer sind schon zu viel für dich , gut dann such ich dir was passendes raus:
http://de.openoffice.info/viewtopic.php ... ge#p169860
Am besten noch etwas Quellcode um Missverständnisse zu vermeiden:
Code: Alles auswählen
Sub ImportClipboard
Dim oClip, oClipContents, oTypes
Dim oConverter, convertedString$
Dim i%, iPlainLoc%
iPlainLoc = -1
oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oConverter = createUnoService("com.sun.star.script.Converter")
oClipContents = oClip.getContents()
oTypes = oClipContents.getTransferDataFlavors()
Dim msg$, iLoc%, outS
msg = ""
iLoc = -1
For i=LBound(oTypes) To UBound(oTypes)
If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
iPlainLoc = i
Exit For
End If
'msg = msg & "Mime type = " & x(ii).MimeType & " normal = " & x(ii).HumanPresentableName & Chr$(10)
Next
If (iPlainLoc >= 0) Then
convertedString = oConverter.convertToSimpleType(oClipContents.getTransferData(oTypes(iPlainLoc)), com.sun.star.uno.TypeClass.STRING)
msgbox convertedString
Else
MsgBox "Nichts zum Einfügen vorhanden"
End If
End Sub
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Zwischenablage befüllen / einfügen
Hallo
@karolus : dein Codebeispiel macht genau das gegenteil.
Es holt Text aus der Zwischenablage.
@Eric March
Ich habe 1 minute gebraucht, um diesen code hier zu finden:
Quelle: http://openoffice.2283327.n4.nabble.com ... 68930.html
Das sollte dir weiterhelfen.
Gruß Frieder
@karolus : dein Codebeispiel macht genau das gegenteil.
Es holt Text aus der Zwischenablage.
@Eric March
Ich habe 1 minute gebraucht, um diesen code hier zu finden:
Quelle: http://openoffice.2283327.n4.nabble.com ... 68930.html
Code: Alles auswählen
Global sTxtCString AsString
Sub clipboard_1
sText ="123456"
CopyToClipBoard(sText)
End Sub
Sub CopyToClipBoard( sText )
' create SystemClipboard instance
oClip = CreateUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oTR = createUnoListener("Tr_", _
"com.sun.star.datatransfer.XTransferable")
' set data
oClip.setContents(oTR,Null)
sTxtCString = sText
'oClip.flushClipboard() ' does not work
End Sub
Function Tr_getTransferData(aFlavor as com.sun.star.datatransfer.DataFlavor)
If (aFlavor.MimeType ="text/plain;charset=utf-16")Then
Tr_getTransferData() = sTxtCString
End If
End Function
Function Tr_getTransferDataFlavors()
Dim aFlavor As new com.sun.star.datatransfer.DataFlavor
aFlavor.MimeType ="text/plain;charset=utf-16"
aFlavor.HumanPresentableName ="Unicode-Text"
Tr_getTransferDataFlavors() = array(aFlavor)
End Function
Function Tr_isDataFlavorSupported(aFlavor as com.sun.star.datatransfer.DataFlavor) as Boolean
If aFlavor.MimeType ="text/plain;charset=utf-16" Then
Tr_isDataFlavorSupported = true
Else
Tr_isDataFlavorSupported = false
End If
End Function
Gruß Frieder
Re: Zwischenablage befüllen / einfügen
Hallo
@ Frieder
Der Titel dieses Threads lautet "Zwischenablage befüllen / einfügen"
@Eric
Das Codebeispiel von Frieder findet sich schon im 2. Treffer der Such-url !
Gruß Karo
@ Frieder
Der Titel dieses Threads lautet "Zwischenablage befüllen / einfügen"
@Eric
Das Codebeispiel von Frieder findet sich schon im 2. Treffer der Such-url !
Gruß Karo
Zuletzt geändert von karolus am So 12. Feb 2012, 12:10, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 35
- Registriert: Sa 28. Mai 2011, 15:30
Re: Zwischenablage befüllen / einfügen
Hallo,
Eric, Dir ging es doch lediglich nur darum, dass Dir die Lösung auf dem Silbertablett präsentiert wird, was Karolus ja leider auch gemacht hat.
Freelancer
So sollte es auch sein!Frieder hat geschrieben:Es holt Text aus der Zwischenablage.
Eric March hat geschrieben:Wie bekomme ich den Inhalt der Zwischenablage (ordnungsgemäß befüllt) in eine Variable?
Eric March hat geschrieben:Hier im Forum hatte ich Null Treffer
Und warum hast Du dort nicht gesucht?Eric March hat geschrieben:Mir ist wohl das OOo-Forum bekannt.
Hey, aber Zeit genug zum warten.Eric March hat geschrieben:116 sind wiederum zu viele um zügig das zu finden was man wirklich braucht.
Eric, Dir ging es doch lediglich nur darum, dass Dir die Lösung auf dem Silbertablett präsentiert wird, was Karolus ja leider auch gemacht hat.
Freelancer
-
- Beiträge: 54
- Registriert: Do 16. Jun 2011, 16:08
Re: Zwischenablage befüllen / einfügen
Genug Zeit zum Warten?! Ich habe auch durchaus anderes zu tun - nicht freiwillg.
Und ich habe mir Teile diese 116 Treffer angesehen - und wollte gefundenen Code auch nachvollziehen können. Pures «rausholen, neinpappen und gut ist» gibts bei mir nicht.
Erstaunlich ist, dass plötzlich doch Codevorschläge kommen.
Ich weiß, dass OOo und LO zwar eng verwandt sind, aber betreff eines Problems in allein LO selbst wollte ich gerne ›zu Hause‹ bleiben.
Lieber Freelancer, unter einem Silbertablett verstehe ich als Programmierer ganz was anderes. Aber ein oder zwei Deeplinks oder simpel Programmcode hätten es getrost sein dürfen. So wie jetzt.
Also denn - ich habe mittlerweile dort gesucht und geprüft (und nicht im Forum auf Antworten gelauert) und fand den (von mir aufs Erforderliche eingekürtzen) Code unten. Die Codes oben werde ich anschließend testen.
Ich kann hier grundsätzlich nach vollziehen was passiert. Aber schon kommt eine Frage nur nächsten: Wenn ich einfach zwei Zeilen vom Code markiere um die Zwischenablage zu füllen, was läuft da bei PRINT ab, dass ich zwei Meldungsboxen erhalte statt z.B. eine mit umbrochenem Text?
(Ach, welch Zufall - ich sehe gerade, dass das effektiv der Code von Karolus mit der Kontonummer ist. Vielen Dank auch.
Zum Silbertabeltt gehören ein paar REMs, keine DIMs mittendrin und mit ' stillgelegte Funktionen die besagte DIMs erfordern…
Zumindest ein paar Stichworte zu den typischen Sysmtefunktionen, wenn nicht die Namen sprechend sind, und was sie da tun wäre nicht verkehrt.)
Eric March
Und ich habe mir Teile diese 116 Treffer angesehen - und wollte gefundenen Code auch nachvollziehen können. Pures «rausholen, neinpappen und gut ist» gibts bei mir nicht.
Erstaunlich ist, dass plötzlich doch Codevorschläge kommen.
Ich weiß, dass OOo und LO zwar eng verwandt sind, aber betreff eines Problems in allein LO selbst wollte ich gerne ›zu Hause‹ bleiben.
Es scheint hier im Forum ein netter Ton zu herrschen. Man bekommt Links hingeworfen, engt eine beachtliche Trefferzahl (Resultat einer gar nicht auf meine Fall direkt zutreffenden Suchanfrage…) ein und trifft auf eine vom Tippgeber auf die man dem wirklich nur noch „Danke fürs den Bärendienst.“ antworten kann.Eric, Dir ging es doch lediglich nur darum, dass Dir die Lösung auf dem Silbertablett präsentiert wird, was Karolus ja leider auch gemacht hat.
Lieber Freelancer, unter einem Silbertablett verstehe ich als Programmierer ganz was anderes. Aber ein oder zwei Deeplinks oder simpel Programmcode hätten es getrost sein dürfen. So wie jetzt.
Also denn - ich habe mittlerweile dort gesucht und geprüft (und nicht im Forum auf Antworten gelauert) und fand den (von mir aufs Erforderliche eingekürtzen) Code unten. Die Codes oben werde ich anschließend testen.
Code: Alles auswählen
Sub ConvertClipToText
Dim oClip, oClipContents, oTypes
Dim oConverter, convertedString$
Dim i%, iPlainLoc%
iPlainLoc = -1
oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oConverter = createUnoService("com.sun.star.script.Converter")
oClipContents = oClip.getContents()
oTypes = oClipContents.getTransferDataFlavors()
For i=LBound(oTypes) To UBound(oTypes)
If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
iPlainLoc = i
Exit For
End If
Next
If (iPlainLoc >= 0) Then
TextClipboard = oConverter.convertToSimpleType(oClipContents.getTransferData(oTypes(iPlainLoc)), com.sun.star.uno.TypeClass.STRING)
End If
print TextClipboard
End Sub
(Ach, welch Zufall - ich sehe gerade, dass das effektiv der Code von Karolus mit der Kontonummer ist. Vielen Dank auch.
Zum Silbertabeltt gehören ein paar REMs, keine DIMs mittendrin und mit ' stillgelegte Funktionen die besagte DIMs erfordern…
Zumindest ein paar Stichworte zu den typischen Sysmtefunktionen, wenn nicht die Namen sprechend sind, und was sie da tun wäre nicht verkehrt.)
Eric March
-
- Beiträge: 54
- Registriert: Do 16. Jun 2011, 16:08
Re: Zwischenablage befüllen / einfügen
Betreff des Codes von Frieder, So 12. Feb 2012, 12:52 [Interessant; irgendeine Systemuhr tickt da falsch, ich hab gerade erst 12:49 nach Braunschweig.]
Tut mir Leid, aber ich kriege dort Fehler gemeldet.
Global sTxtCString AsString, sTxtCString ,markiert: Basic Syntaxfehler. Erwartet: ,.
Wenn schon die Quellen Leerzeichen unterschlagen (auch ich sehe, dass es «As String» heißen muss), was mag sonst noch irgendwo fehlen? Wenn sich selbst auf http://www.starbasicfaq.de/index.html zum Teil ordentliche Vertipper finden (die so gut sind, dass man sie wenigstens instinktiv findet und behebt), wer will mir verübeln, dass ich hier etwas mehr nachhake?
Mit dem Leerzeichen läuft der Code. Und Programmierschlamperei (durch mich) gegen Fehlerbehandlung, was passiert da, dass so viele Programmmodule ineinandergreifen müssen? Auch ist mir das mit dem UTF-16 und dem UniCode nicht klar weswegen damit umgegangen wird.
Wenn wir uns darauf beschränken, dass der doofe Programmierer (ich) nur in Windows operiert und einzig Stringvariablen [oder das was im Zweifelsfall als eine Ausgabe für PRINT taugen täte - also keine Arrays] hernimmt um sie in die Zwischenablage zu bringen, wie weit könnte der Code dann reduziert werden? (Persönlich halte ich von Einleitungsmakros wie clipboard_1, die auch gleich den Code des aufgerufenen 2. Porgrammmoduls enthalten könnten, nichts. Wenn wiederum ein darin aufgerufener Code nur einmal im Prozedere benötigt wird setze ich ihn gerne gleich an Ort und Stelle. Motto: GoSubs nur da wo mehrere drauf zugreifen oder mehrmals aber nicht in einer Schleife.)
Eric March
…der gerne etwas lernen will und nicht nur Gegebenes kritiklos einsetzen.
Tut mir Leid, aber ich kriege dort Fehler gemeldet.
Global sTxtCString AsString, sTxtCString ,markiert: Basic Syntaxfehler. Erwartet: ,.
Wenn schon die Quellen Leerzeichen unterschlagen (auch ich sehe, dass es «As String» heißen muss), was mag sonst noch irgendwo fehlen? Wenn sich selbst auf http://www.starbasicfaq.de/index.html zum Teil ordentliche Vertipper finden (die so gut sind, dass man sie wenigstens instinktiv findet und behebt), wer will mir verübeln, dass ich hier etwas mehr nachhake?
Mit dem Leerzeichen läuft der Code. Und Programmierschlamperei (durch mich) gegen Fehlerbehandlung, was passiert da, dass so viele Programmmodule ineinandergreifen müssen? Auch ist mir das mit dem UTF-16 und dem UniCode nicht klar weswegen damit umgegangen wird.
Wenn wir uns darauf beschränken, dass der doofe Programmierer (ich) nur in Windows operiert und einzig Stringvariablen [oder das was im Zweifelsfall als eine Ausgabe für PRINT taugen täte - also keine Arrays] hernimmt um sie in die Zwischenablage zu bringen, wie weit könnte der Code dann reduziert werden? (Persönlich halte ich von Einleitungsmakros wie clipboard_1, die auch gleich den Code des aufgerufenen 2. Porgrammmoduls enthalten könnten, nichts. Wenn wiederum ein darin aufgerufener Code nur einmal im Prozedere benötigt wird setze ich ihn gerne gleich an Ort und Stelle. Motto: GoSubs nur da wo mehrere drauf zugreifen oder mehrmals aber nicht in einer Schleife.)
Eric March
…der gerne etwas lernen will und nicht nur Gegebenes kritiklos einsetzen.
Re: Zwischenablage befüllen / einfügen
Hallo
Deine andern etwas wirren Aussagen kommentier ich mal nicht.
Karo
Beschreib doch einfach mal die konkrete Aufgabenstellung, evtl. gehts ja noch einfacher ohne das die Zwischenablage involviert wird.Wenn wir uns darauf beschränken, dass der doofe Programmierer (ich) nur in Windows operiert und einzig Stringvariablen [oder das was im Zweifelsfall als eine Ausgabe für PRINT taugen täte - also keine Arrays] hernimmt um sie in die Zwischenablage zu bringen, wie weit könnte der Code dann reduziert werden?
Ich halte nichts von "Spaghetti"-code, in dem alles in eine sub gesteckt wird.(Persönlich halte ich von Einleitungsmakros wie clipboard_1, die auch gleich den Code des aufgerufenen 2. Porgrammmoduls enthalten könnten, nichts. Wenn wiederum ein darin aufgerufener Code nur einmal im Prozedere benötigt wird setze ich ihn gerne gleich an Ort und Stelle. Motto: GoSubs nur da wo mehrere drauf zugreifen oder mehrmals aber nicht in einer Schleife.)
Deine andern etwas wirren Aussagen kommentier ich mal nicht.
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️