Cliboard

Alex White

Grünschnabel
Hallo


Also ich will ein Programm schreiben, dass automatisch die Daten in der Zwischenablage formatiert und dann gleich wieder zurück an die Zwischenablage sendet.

das sind die daten:

VP$IP:
51.02%
Af:
2.91
CC:
44.31%
C-Bet:
75.09%
WtSD:
27.78%

Pfr:
14.92%
Afq:
58.09%
3bet:
7.80%
4bet:
13.85%
W$SD:
42.86%


formatiert werden sollte es so:

51/15 | 8% 3bet | 2.9 AF | 58 AFQ | 28 WTS | 43 W$SD | 14% 4bet | 75% cbet


Also mache ich es mit Clipboard.getfile dann den array splitten und die benötigten Daten an Clipboard senden

nur habe ich ein Problem, undzwar wenn ich das mit einen Timer mache, wird es zu ner "endlosschleife" ich muss also irgendwie das senden (an Clipboard) unterbrechen und wenn ich erneut STRG+C drücke die Prozdur wieder starten.

Die frage ist, wie mache ich das bloß?

Jetzt habe ich das mal mit einem Button statt Timer gemacht:


Button1 Code:
Code:
TextBox1.Text = Replace(TextBox1.Text, "%", "% | ")
        TextBox1.Text = Replace(TextBox1.Text, Chr(10), "")
        Replace(TextBox1.Text, "%", "% ")
        Replace(TextBox1.Text, Chr(10), " ")

        If TextBox1.Text = "" Then
        Else


            Dim somestring2() As String
            somestring2 = TextBox1.Text.Split("|")
            somestring2(1) = somestring2(1).Remove(9, 11)

            For i = 0 To somestring2.Length - 1

                TextBox1.Text = somestring2(6) + somestring2(1) + somestring2(5) + somestring2(3) + somestring2(8) + somestring2(7) + somestring2(2)

            Next




        End If



        If TextBox1.Text = "" Then
        Else
            Clipboard.SetText(TextBox1.Text)
        End If

Das sollte alles im Timer, damit es automatisch geht.. Nur wie
 
Hallo,

Du könntest dir merken was du in die Zwischenablage schreibst, und bei jedem Tick überprüfen ob was anderes als das drinsteht was du reingeschrieben hast.
 
Okay
Timer schaut so aus


If Clipboard.GetText = "" Then
Else


TextBox1.Text = Clipboard.GetText


'Formatieren'
TextBox1.Text = Replace(TextBox1.Text, "%", " % |")
TextBox1.Text = Replace(TextBox1.Text, Chr(10), "")

Clipboard.SetText(TextBox1.Text)

End If


Aber jetzt müsste ich ne "sperre" einabauen, dass den Timer stoppt und erst wieder auslöst wenn was neues im Clipboard steht

aber nur wie :(
 
Ich kenne keinen Weg der dir mitteilt wenn sich die Zwischenablage ändert. Wie schon oben beschrieben würde ich mir einfach in einem String merken was du in die Zwischenablage schreibst. Dann kannst du beim nächsten Tick überprüfen ob die Zwischenablage gleich ist wie dein Wert. Solange gleich brauchst du nichts zu machen, sobald ungleich musst du formatieren und dir einen neuen String merken.
 
If Clipboard.GetText = "" Then
Else

If Clipboard.GetText = a Then

Else
TextBox1.Text = Clipboard.GetText

'Formatieren'
TextBox1.Text = Replace(TextBox1.Text, "%", " % |")
TextBox1.Text = Replace(TextBox1.Text, Chr(10), "")

Clipboard.SetText(TextBox1.Text)

End If
End If

in den String a wird das clipboard geschrieben


geht ja auch nicht :(

wie würdest du das machen? lg
 
Hallo,

Ich bin kein VB-Programmierer, daher kann sich die richtige Syntax von meinem Code unterscheiden:

Visual Basic:
If Clipboard.GetText <> "" And Clipboard.GetText <> a Then

TextBox1.Text = Clipboard.GetText

'Formatieren'
TextBox1.Text = Replace(TextBox1.Text, "%", " % |")
TextBox1.Text = Replace(TextBox1.Text, Chr(10), "")

Clipboard.SetText(TextBox1.Text)
a = TextBox1.Text

End If

Im Prinzip hast du nur vergessen dir die Zwischenablage in a zu speichern.

Nebenbei: Bitte für Code die [code=vb] und [/code] Tags verwenden
 
Jetzt hab ich n neues Problem :(
Und zwar muss das was ich Kopiere exakt die gleiche Form haben, sonst kommt n Error :( und die Arrays haben verschiedene Werte, wenn z.B beim zu Kopierenden Text ne Zeile fehlt oder so

Visual Basic:
   If Clipboard.GetText <> "" And Clipboard.GetText <> a Then
            TextBox1.Text = Clipboard.GetText

            'Formatieren'
            TextBox1.Text = Replace(TextBox1.Text, "%", "% | ")
            TextBox1.Text = Replace(TextBox1.Text, Chr(10), "")
            Replace(TextBox1.Text, "%", "% ")
            Replace(TextBox1.Text, Chr(10), " ")

            Dim somestring() As String
            somestring = TextBox1.Text.Split("|")
            somestring(1) = somestring(1).Remove(9, 11)

            For i = 0 To somestring.Length - 1

                TextBox1.Text = somestring(6) + somestring(1) + somestring(5) + somestring(3) + somestring(8) + somestring(7) + somestring(2)

            Next

            Clipboard.SetText(TextBox1.Text)
            a = TextBox1.Text

        End If
 
Jetzt hab ich n neues Problem
Und zwar muss das was ich Kopiere exakt die gleiche Form haben, sonst kommt n Error und die Arrays haben verschiedene Werte, wenn z.B beim zu Kopierenden Text ne Zeile fehlt oder so
Korrekt. Was ist jetzt die Frage?
 

Neue Beiträge

Zurück