AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit POS() funktion

Ein Thema von n0b0dy · begonnen am 13. Sep 2005 · letzter Beitrag vom 15. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#1

Problem mit POS() funktion

  Alt 13. Sep 2005, 21:31
hallo,

ich habe ein kleines problem undzwar möchte ich in irgendeinem Feld (bin mir noch nicht sicher...; also Edit, Memo, Richedit irgendsowas) RÜCKWÄRTS mit Pos ein bestimmtes vorkommen suchen.

also

wenn ich folgenden string habe :

" bla ha<llo difdjfn jd<fnjs<dkfn < dfdsjfsdj| sdd<sfd<sfdf";

so. der strich markiert die cursorposition. wie bestimme ich nun das LETZE vor dem cursor liegende "<", also das fette in diesem fall?

habe was mit pos() versucht aber irgendwie kam ich net zurecht...kann jemand helfen?



MfG
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 21:55
Hi,

schau dir mal SysUtils.StrRScan (bzw. die Ansi-Variante davon) in der Online-Help an. Damit solltest du dir was passendes basteln können.

Grüße aus Hessen vom marabu
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#3

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 21:56
danke )
ich werd mal schaun und weiter berichten
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 22:02
Delphi-Quellcode:
function lastpos(s:string,c:char):integer; overload;
var i:integer;
begin
for i := length(s) downto 0 do //einfach urnter zählen...
 if s[i]=c then
 begin
  result:=i;
  exit; //und abbrechen, sobald ein zeichen gefunden ist.
 end;
end;

function lastpos(sub,s:string):integer; overload;
var cancel:boolean;
begin
cancel:=false;
while not cancel do
 begin
  result:=pos(sub,s); // position holen
  delete(s,0,result); // anfang bis dahin wegschneiden
  if pos(sub,s) = then cancel:=true; // wenn da nix mehr is, dann hammer den letzten!
 end;
end;
Nicht getestet und nicht auf parameterreihenfolge geachtet. also selber debuggen, und in die onlinehilfe schauen
die erste sollte schneller sein, geht aber nur, wenn man einen char sucht.

Du solltest dann selber noch schauen, dass du zuvor ab dem cursoer alles wegschneidest.

also etwa so:

towork:= copy(memo1.text,0,memo1.cursorpos) //irgendwie so muss das heissen. evtl. is es auch selectionstart oder so ähnlich.

//Nachtrag

@marabu: und ich mach mir extra die arbeit.....
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#5

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 22:03
sry für die peinliche frage. welche Online-Hilfe? bin erst seit gestern hier und habe hier auch nichts gefunden, was so aussieht...
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 22:06
Zitat von n0b0dy:
sry für die peinliche frage. welche Online-Hilfe? bin erst seit gestern hier und habe hier auch nichts gefunden, was so aussieht...
als online-hilfe (OH) wird die delphi-hilfe bezeichnet. also in delphi einfach mal F1 drücken

aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#7

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 22:06
@DGL_Luke.

Danke andas runterzählen hab ich garnicht gedacht. grml...

naja so krieg ichs dann auf jeden fall hin. möchte trotzdem gerne die lösung mit SysUtils.StrRScan kennenlernen

EDIT: achsoooo die Delphi Hilfe ) oops. *g*
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 22:25
Moin n0b0dy,

welche Delphi-Version benutzt Du?
Unter Umständen wäre für Dein Problem nämlich auch PosEx ganz hilfreich. (Diese Funktion gab es in D5, und davor, noch nicht. Bei D6 weiss ich es nicht, und ab D7 gibt es die Funktion)

Ausserdem gibt es hier in der Code-Library auch eine solche Funktion
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 malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#9

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 22:38
Zitat von Christian Seehase:
Ausserdem gibt es hier in der Code-Library auch eine solche Funktion
Du meinst sicherlich das
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Problem mit POS() funktion

  Alt 13. Sep 2005, 22:49
Christian Seehase: posex sollte für rückwärtssuche nicht zu gebrauchen sein da man nur die Anfangssuchposition angeben kann aber nicht die Suchrichtung.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:12 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