Suche Procedure.l Suchetext(gadget.l,zeile.l)

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Suche Procedure.l Suchetext(gadget.l,zeile.l)

Beitrag von Hroudtwolf »

Hallo Leute,

Ich suche dringend eine Prozedur die in einem Editorgadget die Position eines Textes
ermitteln kann.
Nach wochenlangem experimentieren bin ich dem Problemm müde geworden. :shock:
Bitte helft mir ...........(fleh)

Code: Alles auswählen

Procedure.l SucheText (gadget.l,zeile.l)

Wer mir eine vernünftige (schnelle) Prozedur schreibt kann auf eine namentliche Erwähnung in meinem neuen Freeware _ _ _ _ _ _ _ _ wetten.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Reicht es dir nicht den Text mit [c]GetGadgetText()[/c] aus dem EditorGadget zu nehmen, dann mit [c]FindString()[/c] den Text zu suchen und die Position auszugeben?

Und wozu ist der Parameter [c]zeile.l[/c] in deiner Procedure gedacht? Sollte da nicht eher sowas wie [c]SuchString.s[/c] oder so hin?
Bild
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

hast du ein Problem mit der Zeilenangabe oder irgendwas anderem?

Code: Alles auswählen

; nur mal Entwurf, nicht lauffähig
Procedure.l SucheText(stringtofind.s, gadget.l, zeile)
  pos0 = 0
  Text.s = GetGadgetText(gadget)
  
  For i=1 To zeile
  pos0 = FindString(Text, Chr(13)+Chr(10), pos0) + 2
  Next

  ProcedureReturn FindString(Text, stringtofind, pos0)

EndProcedure

also: nur Entwurf, habs mangels Testumgebung nicht testen können, aber eigtl. doch versucht, lauffähig zu schreiben.

Außerdem hab ich noch einen Parameter eingefügt, nach was gesucht werden soll.


In der Schleife wird zunächst immer wieder (je nach Anzahl der angegebenen Zeilen - bei 0 nicht) nach einem Zeilenumbruch gesucht.
Vom letzten Fundort aus wird dann nach dem string gesucht.
Falls nur in der angegebenen Zeile gesucht werden soll muss noch eine Abfrage rein, in der nach einem Zeilenumbruch zwischen pos0 und Fundort gesucht wird:

Code: Alles auswählen

Procedure.l SucheText(stringtofind.s, gadget.l, zeile)
  pos0 = 0
  Text.s = GetGadgetText(gadget)
  
  For i=1 To zeile
  pos0 = FindString(Text, Chr(13)+Chr(10), pos0) + 2
  Next

  Position = FindString(Text, stringtofind, pos0)
  If FindString(Mid(Text, pos0, Position-pos0), Chr(13)+Chr(10), 0)=0
    Return Position
  EndIf

EndProcedure
Hoffe, das hat geholfen.

EDIT: jetzt hat Nic geposted, während ich am code gearbeitet hab... Ich hoffe mal ich hab dich richtig verstanden
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Vielen Dank

Beitrag von Hroudtwolf »

@BlueJoke

Vielen Dank.

Ich probiers gleich mal aus.(wird bestimmt gehen)

Wenns klappt dann stehst du bald in den Credits eines meiner Langzeitprojekte.
Welches bald auf meiner Homepage vorgestellt wird.
glubschi90
Beiträge: 274
Registriert: 04.09.2004 01:43
Wohnort: Würzburg

Beitrag von glubschi90 »

Aha. Und was ist das für ein Prog? :)

*neugierausmirrausspring* :mrgreen:
PureBasic 4.30
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

@glubschi90

glubschi90 hat geschrieben:Aha. Und was ist das für ein Prog? :)

*neugierausmirrausspring* :mrgreen:

Bevor mir jemand meinen Auftritt vermiesen kann werde ich noch alles über mein
Projekt geheimhalten.
Nur soviel.... Es wird unter Windows 98/XP/2000/ME/NT , auf einem PC laufen. Mit der Maus und der Tastatur bedienbar sein. Und sich in einem Fesnter befinden.

Spass beiseite.............Es WIRD einige interessieren ! ;-)
Zuletzt geändert von Hroudtwolf am 04.01.2005 03:57, insgesamt 6-mal geändert.
glubschi90
Beiträge: 274
Registriert: 04.09.2004 01:43
Wohnort: Würzburg

Beitrag von glubschi90 »

Boah!
Tastatursteuerung!
WOW!
Mausunterstützung!
GEIL!
In einem FENSTER!!!!!

Das muss wirklich ein geniales Programm sein!!!!

( :wink: )

Naja... ist auch besser, wenn man alles bis zum release geheimhält!
Hast schon recht! :)
Ich mach's nämlich genauso! <)
PureBasic 4.30
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Ich halt das meiste auch geheim (naja, im Chat hab ich Hilfe gebraucht, und etwas erzählt, aber lang nicht alles)
In dem program muss ich ein paar Daten parsen, deshalb hab ich mich schon etwas länger mit verschiedenen Suchkombinationen beschäftigt...
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten