Fuente/ Codesnippets | | | | - Página 1 - |
| RudiB. | ¡Hola zusammen,
Yo hoffe lo kann me alguien helfen.... Yo möchte una Signo de una Rich-Editfenster auslesen y una Stringvariable übertragen. Marca/auswählen haut sí hin aber entonces ?? Es mein Lösungsansatz, funktioniert sólo no.
SendMessage(Rtf&,~EM_SETSEL,6,7)'--markiert el 7.te Signo en el Richedit-Texto
test$=SendMessage(Rtf&,~EM_GETSEL,0,0)'--hier se el Signo z.B el Signo "s" o. Chr$(115) ausgelesen voluntad, dieses es auch a Position 7 en el Texto
imprimir test$'--Edición es "458758"
|
| | | | |
| | « Dieser Contribución wurde como Solución gekennzeichnet. » | | RudiB. | ¡Hola Georg,
Super vielen Dank...el Es el Solución...
Declarar x&,y&,y_neu&,testtext$,Richedit&,n$,Zona#,rtf#
Dim rtf#,84
Cls
Richedit&=Crear("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. en el Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--Dieser Texto se gesucht voluntad(Nur para Ejemplo)
DIM Zona#,16
clear Zona#
x&=-1
y_neu&=-1
Mientras que 1
Largo bereich#,0=x&+1
Largo bereich#,4=-1
Largo bereich#,8=Addr(n$)
x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter para sólo todo Wörter suchen)
Case x&=-1:BREAK
y&=moeglichkeit_1_instr("_",GetText $(Richedit&),y_neu&)
SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor conjunto
y_neu&=x&+Len(n$)
Caso negativo y&=x&
rtf_SetColor RGB(255,0,0)
Endif
SetFocus(Richedit&)
'Sleep 100
EndWhile
waitinput
Disponer Zona#
end
Proc rtf_SetColor
Parámetros a&
Claro 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
Parámetros such$,texto$,pos&
InStr(such$,texto$,pos&)
ENDPROC
Su erste Solución con "Instr" es...habs en el Bucle con instalado. PERFEKT.......manchmal sieht uno el Wald antes lauter Bäumen no.
Großes Gracias de München |
| | | | | |
| | Georg Teles | Bueno Abend,
el EM_GETSEL markiert el Texto sichtbar en el Editar, dazu muss al Editar zunchst fokusieren
CLS
var rtf& = Crear("RichEdit", %hWnd, "Das es una kleiner Test", 5, 5, 300, 300)
SetFocus(Rtf&)'sólo Fokus conjunto, bevor markiert se
SendMessage(Rtf&,$00B1,6,7)'--markiert el 7.te Signo en el Richedit-Texto
waitinput
Yo ni idea qué du genau antes hast, así sería Yo el lösen:
oder umständlich:
CLS
declarar test#
dim test#,100
var rtf& = Crear("RichEdit", %hWnd, "Das es una kleiner Test", 5, 5, 300, 300)
SendMessage(Rtf&,$000D,100,Addr(test#))
imprimir Mid$(String$(test#,0),23,1)'markiert el letzte S en el Texto
DisPose test#
waitinput
FIN
Grüße |
| | | | |
| | RudiB. | ¡Hola Georg, sólo veces Gracias para Su Antwort.... Nun a meiner Problematik, habe a una lauffähiges Ejemplo angehängt. Yo möchte en un Programmlisting después de Variables suchen... Nun kommt en diesem Listing el Variable "anzahl&" y "farb_anzahl&" antes, Yo búsqueda nun sólo después de "anzahl&" con el Suchoption 2 para sólo todo Wörter en FINDTEXT. Hier se aber ahora el "anzahl&" en el Variable "farb_anzahl&" con gefunden/markiert, sino que debe no así ser. Daher möchte Yo una Prüfung des Zeichens antes Suchvariable durchführen. Also: si Signo antes Suchvariable = _ (Unterstrich) entonces markiere no. Como Tuve eben a ~EM_GETTEXT pensamiento, kriegs pero no hin...
Declarar x&,testtext$,Richedit&,n$,Zona#,rtf#
Dim rtf#,84
Cls
Richedit&=Crear("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. en el Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--Dieser Texto se gesucht voluntad(Nur para Ejemplo)
DIM Zona#,16
clear Zona#
x&=-1
Mientras que 1
Largo bereich#,0=x&+1
Largo bereich#,4=-1
Largo bereich#,8=Addr(n$)
x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter para sólo todo Wörter suchen)
Case x&=-1:BREAK
SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor conjunto
rtf_SetColor RGB(255,0,0)
SetFocus(Richedit&)
'Sleep 100
EndWhile
SetFocus(Richedit&)
waitinput
Disponer Zona#
end
Proc rtf_SetColor
Parámetros a&
Claro 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 | Posesiones veces en el Documentación el RTFHandling.pcu de Dieter Zornow gesehen, el auch con EM_FINDTEXT arbeitet, aber como gäbe una Einschränkung, dass sólo el ersten 64kb durchsucht voluntad. Für mehr nimmt él el EM_FINDTEXTEX . Wenn (2=Flagparameter para sólo todo Wörter suchen) stimmt, y Wortgebilde no ausschließt, sería Yo no sólo en x&=-1 aussteigen, pero auch en Leerzeichen, Punkt y Komma antes y después de el Suchtext prüfen. |
| | | | |
| | RudiB. | Hola Tomás,
para una besagt el "X&=-1" sí , el el Dokument a para Ende durchsucht se, o. el Ende des Dokuments erreicht es. Praktisch es el el Rückgabewert de SendMessage en
...y en allen otro Zeichencodes z.B Komma,Leerzeichen etc. se lo en efecto correcto erkannt, eben sólo beim Unterstrich no. Das funktioniert auch en Texten größer como 64 KB.....
Daher búsqueda Yo sí después de el Möglichkeit el Signo antes el gefundenen Suchbegriff auszulesen. Aber ~EM_GETSEL spuckt me sólo Pagar de .....möglicherweise Speicheradressen, doch como lese Yo de ?????? |
| | | | |
| | Georg Teles | Bueno Abend,
Yo hätte como una Ansatz - para InStr y MemPos dürften no Signo una Problema ser oder kein Problema con allen Signo geben ... si du MemPos aún en el Bucle umsetzen kannst, kannst du auch no druckbare Signo suchen, como war Yo a faul una Proc para dich a escribir :/
Declarar x&,testtext$,Richedit&,n$,Zona#,rtf#
Dim rtf#,84
Cls
Richedit&=Crear("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. en el Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--Dieser Texto se gesucht voluntad(Nur para Ejemplo)
DIM Zona#,16
clear Zona#
x&=-1
Mientras que 1
Largo bereich#,0=x&+1
Largo bereich#,4=-1
Largo bereich#,8=Addr(n$)
x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter para sólo todo Wörter suchen)
Case x&=-1:BREAK
SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor conjunto
rtf_SetColor RGB(255,0,0)
SetFocus(Richedit&)
'Sleep 100
EndWhile
' InStr Vorteil: lässt se una Bucle forma, d.h. Position,
' de el huier gesucht se, beginnt en -1 ... en gefundenem Ergebnis kann
' a gefudenen Position +1 dazugezählt y ser una neue Búsqueda comenzó voluntad, solange
' el Ergebnis no el vorherige Suchposition war
imprimir "1. Ergebnis 1. Función: "+Str$(moeglichkeit_1_instr("farb_",GetText $(Richedit&),-1))
' auch bien, problematisch Será mejor que te va con el Position, esta muss siempre -1 ser,
' como el MemPos sólo el ersten Fund ausgibt
' el puede ser vermeinden, si la Textvariable en de el Gefundenen Position + Longitud gekürzt se
' y de el Position -1 weitergesucht + el Longitud y el vorherige Position des abgeschnittenen Cuerdas hinzugezählt voluntad muss !
imprimir "1. Ergebnis 2. Función: "+Str$(moeglichkeit_2_mempos("farb_",GetText $(Richedit&),-1))
imprimir "-------------------------------------------------------------"
' InStr en Bucle
moeglichkeit_1_instr_schleife("farb_",GetText $(Richedit&),-1)
imprimir "-------------------------------------------------------------"
' hier hay nichts a sehen :/
moeglichkeit_2_mempos_schleife("farb_",GetText $(Richedit&),-1)
'SetFocus(Richedit&)
waitinput
Disponer Zona#
end
Proc rtf_SetColor
Parámetros a&
Claro 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
Parámetros such$,texto$,pos&
InStr(such$,texto$,pos&)
ENDPROC
Proc moeglichkeit_2_mempos
Parámetros such$,texto$,pos&
declarar texto#, p&
dim texto#, len(texto$)
char texto#,0 = texto$
p& = MemPos(texto#,pos&,such$)
DisPose texto#
Volver p&
ENDPROC
Proc moeglichkeit_1_instr_schleife
Parámetros such$,texto$,pos&
declarar ende%, laufvar&, var&, i%
ende% = 0
var& = -2
laufvar& = -2
i% = 0
Sinestar encargado ende%
var& = Str$(moeglichkeit_1_instr("farb_",GetText $(Richedit&),laufvar&))
Caso negativo ((laufvar&+1) < var&)
imprimir "#--- No más Treffer gefunden ---#"
romper
EndIf
laufvar& = var&+1
inc i%
imprimir Str$(i%)+". gefundene Position Bucle: "+Str$(var&)
EndWhile
ENDPROC
Proc moeglichkeit_2_mempos_schleife
Parámetros such$,texto$,pos&
imprimir "war a faul, una Proc a escribir, el Aufwand es a groß\nder Texto muss zugeschnitten voluntad a para vorherigen treffer + Longitud\ndes textes y beim nächsten Ergebniss muss esta vorherige Position + Longitud\nzur neuen gefundenen Position dazugerechnet voluntad :/"
Volver
ENDPROC
Grüße |
| | | | |
| | RudiB. | ¡Hola Georg,
Super vielen Dank...el Es el Solución...
Declarar x&,y&,y_neu&,testtext$,Richedit&,n$,Zona#,rtf#
Dim rtf#,84
Cls
Richedit&=Crear("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. en el Listing"
SetText Richedit&,TestText$
n$="anzahl&"'--Dieser Texto se gesucht voluntad(Nur para Ejemplo)
DIM Zona#,16
clear Zona#
x&=-1
y_neu&=-1
Mientras que 1
Largo bereich#,0=x&+1
Largo bereich#,4=-1
Largo bereich#,8=Addr(n$)
x&=SendMessage(Richedit&,$0438,2,bereich#)'--EM_FINDTEXT (2=Flagparameter para sólo todo Wörter suchen)
Case x&=-1:BREAK
y&=moeglichkeit_1_instr("_",GetText $(Richedit&),y_neu&)
SendMessage(Richedit&,$00B1,x&,x&+Len(n$))'--Cursor conjunto
y_neu&=x&+Len(n$)
Caso negativo y&=x&
rtf_SetColor RGB(255,0,0)
Endif
SetFocus(Richedit&)
'Sleep 100
EndWhile
waitinput
Disponer Zona#
end
Proc rtf_SetColor
Parámetros a&
Claro 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
Parámetros such$,texto$,pos&
InStr(such$,texto$,pos&)
ENDPROC
Su erste Solución con "Instr" es...habs en el Bucle con instalado. PERFEKT.......manchmal sieht uno el Wald antes lauter Bäumen no.
Großes Gracias de München |
| | | | |
| | Georg Teles | Sí perfekt,
oh, Yo aber Mist Nuevo, habe überlesen, qué du konkret wolltest seh heute auch el Wald antes lauter Bäumen no - para Ziel ha lo aber geführt hehehehehe
Grüße de el Baden-Württembergischer / Bayrischer Grenze (Ulm) |
| | | | |
|
Zum QuelltextThemeninformationenDieses Thema ha 3 subscriber: |