AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

In einer Memo suchen?

Ein Thema von citybreaker · begonnen am 18. Okt 2003 · letzter Beitrag vom 19. Okt 2003
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#21

Re: In einer Memo suchen?

  Alt 18. Okt 2003, 19:52
Hai,

warum ist hier denn das -1?

SynMemo1.SelEnd := SynMemo1.SelStart+length(Edit1.Text)-1; Ist doch falsch?!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: In einer Memo suchen?

  Alt 19. Okt 2003, 01:42
Moin Sharky,

nein, ist nicht falsch, da ja hier der Endpunkt der Markierung berechnet wird, nicht die Länge.
Das Prinzip ist das gleiche, als hätte man einen Startoffset, an dem man etwas speichert. Um jetzt die nächste freie Position zu berechnen, addiert man auf den StartOffset die Länge dessen, was man gespeichert hat drauf. Da hier aber nicht die nächste freie Stelle benötigt wird, sondern die letzte belegte wird eins abgezogen.

Beispiel

SelStart = 5
Length = 4
SelEnd = 5 + 4 - 1 = 8

Es werden die Stellen 5,6,7 und 8 markiert also 4, was der Länge entspricht.
Ist zwar nur ein konkretes Beispiel und keine mathematischer Beweis, sollte aber für diese Berechnung genügen, denke ich.

@Citybreaker:
Warum das bei Dir jetzt nicht funktioniert kann ich mir nicht erklären.
Du könntest ggf. mal den Sourcecode hier anhängen, dann kann ich mir das mal komplett ansehen.
Ansonsten könntest Du es auch noch einmal so versuchen:

Delphi-Quellcode:
  iPos := pos(trim(Edit1.Text), SynMemo.Text);
  if iPos = 0 then exit;
  SynMemo.SelStart := iPos-1;
  SynMemo.SelEnd := SynMemo.SelStart+length(trim(Edit1.Text))-1;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#23

Re: In einer Memo suchen?

  Alt 19. Okt 2003, 10:11
Hai Christian,

ich habe das jetzt mal mit einem SynMemo probiert. Es geht bei mir nur mit diesem Code richtig:

http://www.sharkys-home.de/smiles/finger.gif
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ipos : Integer;
begin
  iPos := pos(trim(Edit1.Text), SynMemo1.Text);
  if iPos = 0 then exit;
  SynMemo1.SelStart := iPos;
  SynMemo1.SelEnd := SynMemo1.SelStart+length(trim(Edit1.Text));
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#24

Re: In einer Memo suchen?

  Alt 19. Okt 2003, 12:54
Moin Sharky,



also wenn ich das mit Deinem Code ausprobiere, dann wird
  1. eine Stelle zu spät mit der Markierung begonnen
  2. eine Stelle zu viel markiert (falls hinter der Fundstelle noch genug in der Zeile steht)

und das kann doch eigentlich auch nicht anders sein, weil
  1. TSynMemo.SelStart 0 basiert, der Rückgabewert von pos 1 basiert ist
  2. siehe vorheriges Posting

Meine SynEdit Installation stammt aus der Datei: SynEdit-20010826-CVS.zip
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#25

Re: In einer Memo suchen?

  Alt 19. Okt 2003, 13:01
Zitat von Christian Seehase:
...
  1. eine Stelle zu spät mit der Markierung begonnen
  2. eine Stelle zu viel markiert (falls hinter der Fundstelle noch genug in der Zeile steht)
Hai Christian,



bei mir ist es mit deinem Code genau umgekehrt. Es wird:
  1. eine Stelle zu früh mit der Markierung begonnen
  2. eine Stelle zu wenig markiert

Ich habe SynEdit erst gestern installiert. Ist glaube ich Version 1.1
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#26

Re: In einer Memo suchen?

  Alt 19. Okt 2003, 13:16
Moin Sharky,

SynMemo.pas 31.05.2001 14:07 / $Id: SynMemo.pas,v 1.5 2001/05/31 12:07:07 claplace Exp $

$Id ist im Header der Datei zu finden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#27

Re: In einer Memo suchen?

  Alt 19. Okt 2003, 13:19
Zitat von Christian Seehase:
....
SynMemo.pas 31.05.2001 14:07 / $Id: SynMemo.pas,v 1.5 2001/05/31 12:07:07 claplace Exp $
..
$Id: SynMemo.pas,v 1.8 2002/04/12 15:47:40 harmeister Exp $
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz