Français
Source/ Codesnippets

Richedit marque auslesen dans Stringvariable

 
- page 1 -



RudiB.
allô zusammen,

je hoffe es peux mir quelqu'un aider....
je voudrais un marque aus einem Rich-Editfenster auslesen et dans un Stringvariable übertragen. Marque/auswählen haut oui hin mais ensuite ??
c'est mon Lösungsansatz, funktioniert seulement pas.
SendMessage(Rtf&,~EM_SETSEL,6,7)'--markiert cela 7.te marque im Richedit-Text
test$=SendMessage(Rtf&,~EM_GETSEL,0,0)'--ici soll cela marque z.B cela marque "s" bzw. Chr$(115) ausgelesen volonté, cet steht aussi à Position 7 im Text
imprimer test$'--Ausgabe ist "458758"
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
19.11.2021  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


RudiB.
allô Georg,

Super vielen Dank...c'est qui Solution...
Déclarer x&,y&,y_neu&,testtext$,Richedit&,n$,Bereich#,rtf#
Faible rtf#,84
Cls
Richedit&=Créer("Richedit",%hwnd,»,20,20,600,300)
Testtext$="Declare test&,satz&,anzahl&,farb_anzahl&,superanzahl&,x&,y&,z&\n\
satz&=22\n\
anzahl&=44\n\
farb_anzahl&=100\n\
anzahl&=farb_anzahl&*30\n\
superanzahl&=anzahl&\n\
...\n\
...\n\
...\n\
usw. im Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--cette Text soll gesucht volonté(seulement zum Beispiel)
DIM Bereich#,16
clear Bereich#
x&=-1
y_neu&=-1

Tandis que 1

    Long bereich#,0=x&+1
    Long bereich#,4=-1
    Long bereich#,8=Addr(n$)
    x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter pour seulement ganze Wörter chercher)
    Cas x&=-1:BREAK
    y&=moeglichkeit_1_instr("_",GetText $(Richedit&),y_neu&)
    SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor mettons
    y_neu&=x&+Len(n$)

    Si non y&=x&

        rtf_SetColor RGB(255,0,0)

    Endif

    SetFocus(Richedit&)
    'Sleep 100

Endwhile

waitinput
Dispose Bereich#
end

Proc rtf_SetColor

    Paramètres a&
    Claire rtf#
    LONG rtf#,0=84
    LONG rtf#,4=$40000000
    LONG rtf#,20=a&
    sendmessage(Richedit&,1092,1,rtf#)'-EM_SETCHARFORMAT

ENDPROC

Proc moeglichkeit_1_instr

    Paramètres such$,text$,pos&
    InStr(such$,text$,pos&)

ENDPROC


Votre erste Solution avec "Instr" ist es...habs dans qui Boucle avec incorporé.
PERFEKT.......quelquefois sieht on den forêt avant lauter Bäumen pas.

Großes merci aus München
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
25.11.2021  
 




Georg
Teles
Guten soir,

cela EM_GETSEL markiert den Text sichtbar dans qui Éditer, en supplément muss on cela Éditer zunchst fokusieren
CLS
var rtf& = Créer("RichEdit", %hWnd, "Das est un kleiner Test", 5, 5, 300, 300)
SetFocus(Rtf&)'seulement Fokus mettons, bevor markiert wird
SendMessage(Rtf&,$00B1,6,7)'--markiert cela 7.te marque im Richedit-Text
waitinput

j'ai je n'en sais rien quoi du oui c'est ca avant la hâte, so serait je cela lösen:
CLS
var rtf& = Créer("RichEdit", %hWnd, "Das est un kleiner Test", 5, 5, 300, 300)
var test$ = GetText $(rtf&)
imprimer Mid $(test$,23,1)'markiert cela dernier S im Text
waitinput
FIN

ou bien compliqué:
CLS
declare test#
dim test#,100
var rtf& = Créer("RichEdit", %hWnd, "Das est un kleiner Test", 5, 5, 300, 300)
SendMessage(Rtf&,$000D,100,Addr(test#))
imprimer Mid $(String$(test#,0),23,1)'markiert cela dernier S im Text
DisPose test#
waitinput
FIN

Grüße
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

23.11.2021  
 




RudiB.
allô Georg,
seulement la fois merci pour Votre Antwort....
eh bien trop meiner Problematik, habe en supplément un lauffähiges Beispiel angehängt.
je voudrais dans einem Programmlisting pour Variablen chercher...
eh bien venez dans diesem Listing qui Variable "anzahl&" et "farb_anzahl&" avant, je cherche eh bien seulement pour "anzahl&" avec qui Suchoption 2 pour seulement ganze Wörter dans FINDTEXT. ici wird mais maintenant aussi cela "anzahl&" dans qui Variable "farb_anzahl&" avec trouvé/markiert, mais devrait pas so son.
Daher voudrais je une Prüfung des Zeichens avant qui Suchvariable durchführen.
alors: si marque avant Suchvariable = _ (Unterstrich) ensuite markiere pas.
là J'ai eu plan à ~EM_GETTEXT gedacht, kriegs mais pas hin...
Déclarer x&,testtext$,Richedit&,n$,Bereich#,rtf#
Faible rtf#,84
Cls
Richedit&=Créer("Richedit",%hwnd,»,20,20,600,300)
Testtext$="Declare test&,satz&,anzahl&,farb_anzahl&,superanzahl&,x&,y&,z&\n\
satz&=22\n\
anzahl&=44\n\
farb_anzahl&=100\n\
anzahl&=farb_anzahl&*30\n\
superanzahl&=anzahl&\n\
...\n\
...\n\
...\n\
usw. im Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--cette Text soll gesucht volonté(seulement zum Beispiel)
DIM Bereich#,16
clear Bereich#
x&=-1

Tandis que 1

    Long bereich#,0=x&+1
    Long bereich#,4=-1
    Long bereich#,8=Addr(n$)
    x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter pour seulement ganze Wörter chercher)
    Cas x&=-1:BREAK
    SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor mettons
    rtf_SetColor RGB(255,0,0)
    SetFocus(Richedit&)
    'Sleep 100

Endwhile

SetFocus(Richedit&)
waitinput
Dispose Bereich#
end

Proc rtf_SetColor

    Paramètres a&
    Claire rtf#
    LONG rtf#,0=84
    LONG rtf#,4=$40000000
    LONG rtf#,20=a&
    sendmessage(Richedit&,1092,1,rtf#)'-EM_SETCHARFORMAT

ENDPROC

 
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
24.11.2021  
 




Thomas
Freier
Habe la fois dans qui Documentation qui RTFHandling.pcu de Dieter Zornow gesehen, qui aussi avec EM_FINDTEXT arbeitet, mais là gäbe une Einschränkung, dass seulement qui ersten 64kb durchsucht volonté.
Pour plus nimmt il qui EM_FINDTEXTEX .
si (2=Flagparameter pour seulement ganze Wörter chercher) stimmt, et Wortgebilde pas ausschließt, serait je pas seulement chez x&=-1 descendre, mais aussi sur Leerzeichen, Punkt et Komma avant et pour dem Suchtext vérifier.
 
Gruß Thomas
Windows XP SP2, XProfan X2
25.11.2021  
 




RudiB.
allô Thomas,

zum einem besagt cela "X&=-1" oui , cela cela Dokument jusqu'à zum Ende durchsucht wird, bzw. cela Ende des Dokuments erreicht ist.
pratique ist cela qui Rückgabewert de SendMessage chez
x&=SendMessage(Richedit&,$0438,2,bereich#

...et chez allen anderen Zeichencodes z.B Komma,Leerzeichen etc. wird es oui aussi richtig erkannt, plan seulement beim Unterstrich pas.
cela funktioniert aussi chez Texten größer comme 64 KB.....

Daher cherche je oui pour qui Possibilité cela marque avant dem gefundenen Suchbegriff auszulesen.
mais ~EM_GETSEL spuckt mir seulement payons aus .....möglicherweise Speicheradressen, doch comment lese je qui aus ??????
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
25.11.2021  
 




Georg
Teles
Guten soir,

je hätte là une Ansatz - pour InStr et MemPos dürften aucun marque un Problem son ou bien ne...aucune Problem avec allen marque donner ... si du MemPos encore dans qui Boucle umsetzen peux, peux du aussi pas druckbare marque chercher, là était je trop fainéant une Proc pour toi trop écrivons :/
Déclarer x&,testtext$,Richedit&,n$,Bereich#,rtf#
Faible rtf#,84
Cls
Richedit&=Créer("Richedit",%hwnd,»,20,20,600,300)
Testtext$="Declare test&,satz&,anzahl&,farb_anzahl&,superanzahl&,x&,y&,z&\n\
satz&=22\n\
anzahl&=44\n\
farb_anzahl&=100\n\
anzahl&=farb_anzahl&*30\n\
superanzahl&=anzahl&\n\
...\n\
...\n\
...\n\
usw. im Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--cette Text soll gesucht volonté(seulement zum Beispiel)
DIM Bereich#,16
clear Bereich#
x&=-1

Tandis que 1

    Long bereich#,0=x&+1
    Long bereich#,4=-1
    Long bereich#,8=Addr(n$)
    x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter pour seulement ganze Wörter chercher)
    Cas x&=-1:BREAK
    SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor mettons
    rtf_SetColor RGB(255,0,0)
    SetFocus(Richedit&)
    'Sleep 100

Endwhile

' InStr Vorteil: peut sich une Boucle bilden, d.h. Position,
' ab qui huier gesucht wird, beginnt chez -1 ... chez gefundenem Ergebnis peux
' zur gefudenen Position +1 dazugezählt volonté et une neue cherche gestartet volonté, solange
' cela Ergebnis pas qui vorherige Suchposition était
imprimer "1. Ergebnis 1. Funktion: "+Str$(moeglichkeit_1_instr("farb_",GetText $(Richedit&),-1))
' aussi bien, problematisch wirds avec qui Position, cet muss toujours -1 son,
' là cela MemPos seulement den ersten Fund ausgibt
' cela peux on vermeinden, si le Textvariable um ab qui Gefundenen Position + Longueur gekürzt wird
' et ab qui Position -1 weitergesucht + qui Longueur et qui vorherige Position des abgeschnittenen Cordes hinzugezählt volonté muss !
imprimer "1. Ergebnis 2. Funktion: "+Str$(moeglichkeit_2_mempos("farb_",GetText $(Richedit&),-1))
imprimer "-------------------------------------------------------------"
' InStr dans Boucle
moeglichkeit_1_instr_schleife("farb_",GetText $(Richedit&),-1)
imprimer "-------------------------------------------------------------"
' ici gibt es rien trop voyons :/
moeglichkeit_2_mempos_schleife("farb_",GetText $(Richedit&),-1)
'SetFocus(Richedit&)
waitinput
Dispose Bereich#
end

Proc rtf_SetColor

    Paramètres a&
    Claire rtf#
    LONG rtf#,0=84
    LONG rtf#,4=$40000000
    LONG rtf#,20=a&
    sendmessage(Richedit&,1092,1,rtf#)'-EM_SETCHARFORMAT

ENDPROC

Proc moeglichkeit_1_instr

    Paramètres such$,text$,pos&
    InStr(such$,text$,pos&)

ENDPROC

Proc moeglichkeit_2_mempos

    Paramètres such$,text$,pos&
    declare text#, p&
    dim text#, len(text$)
    char text#,0 = text$
    p& = MemPos(text#,pos&,such$)
    DisPose text#
    Retour p&

ENDPROC

Proc moeglichkeit_1_instr_schleife

    Paramètres such$,text$,pos&
    declare ende%, laufvar&, var&, i%
    ende% = 0
    var& = -2
    laufvar& = -2
    i% = 0

    WhileNot ende%

        var& = Str$(moeglichkeit_1_instr("farb_",GetText $(Richedit&),laufvar&))

        Si non ((laufvar&+1) < var&)

            imprimer "#--- aucun weiteren Treffer trouvé ---#"
            pause

        EndIf

        laufvar& = var&+1
        inc i%
        imprimer Str$(i%)+". gefundene Position Boucle: "+Str$(var&)

    Endwhile

ENDPROC

Proc moeglichkeit_2_mempos_schleife

    Paramètres such$,text$,pos&
    imprimer "war trop fainéant, une Proc trop écrivons, qui Aufwand ist trop grand\nder Text muss zugeschnitten volonté jusqu'à zum vorherigen treffer + Longueur\ndes textes et beim prochain Ergebniss muss cet vorherige Position + Longueur\nzur neuen gefundenen Position dazugerechnet volonté :/"
    Retour

ENDPROC


Grüße
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

25.11.2021  
 




RudiB.
allô Georg,

Super vielen Dank...c'est qui Solution...
Déclarer x&,y&,y_neu&,testtext$,Richedit&,n$,Bereich#,rtf#
Faible rtf#,84
Cls
Richedit&=Créer("Richedit",%hwnd,»,20,20,600,300)
Testtext$="Declare test&,satz&,anzahl&,farb_anzahl&,superanzahl&,x&,y&,z&\n\
satz&=22\n\
anzahl&=44\n\
farb_anzahl&=100\n\
anzahl&=farb_anzahl&*30\n\
superanzahl&=anzahl&\n\
...\n\
...\n\
...\n\
usw. im Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--cette Text soll gesucht volonté(seulement zum Beispiel)
DIM Bereich#,16
clear Bereich#
x&=-1
y_neu&=-1

Tandis que 1

    Long bereich#,0=x&+1
    Long bereich#,4=-1
    Long bereich#,8=Addr(n$)
    x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter pour seulement ganze Wörter chercher)
    Cas x&=-1:BREAK
    y&=moeglichkeit_1_instr("_",GetText $(Richedit&),y_neu&)
    SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor mettons
    y_neu&=x&+Len(n$)

    Si non y&=x&

        rtf_SetColor RGB(255,0,0)

    Endif

    SetFocus(Richedit&)
    'Sleep 100

Endwhile

waitinput
Dispose Bereich#
end

Proc rtf_SetColor

    Paramètres a&
    Claire rtf#
    LONG rtf#,0=84
    LONG rtf#,4=$40000000
    LONG rtf#,20=a&
    sendmessage(Richedit&,1092,1,rtf#)'-EM_SETCHARFORMAT

ENDPROC

Proc moeglichkeit_1_instr

    Paramètres such$,text$,pos&
    InStr(such$,text$,pos&)

ENDPROC


Votre erste Solution avec "Instr" ist es...habs dans qui Boucle avec incorporé.
PERFEKT.......quelquefois sieht on den forêt avant lauter Bäumen pas.

Großes merci aus München
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
25.11.2021  
 




Georg
Teles
oui parfait,

eh, j'ai mais Mist posté, habe überlesen, quoi du konkret wolltest seh aujourd'hui aussi den forêt avant lauter Bäumen pas - zum but hat es mais geführt hehehehehe

Grüße de qui se baigner-Württembergischer / Bayrischer frontière (Ulm)
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

25.11.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.515 Views

Untitledvor 0 min.
Rockford31.07.2024
Erhard Wirth14.06.2024
Sven Bader18.11.2023
Uwe Starke17.11.2023
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie