AGB  ·  Datenschutz  ·  Impressum  







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

In einem Text weitersuchen

Ein Thema von Ajin · begonnen am 13. Jul 2007 · letzter Beitrag vom 13. Jul 2007
Antwort Antwort
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

In einem Text weitersuchen

  Alt 13. Jul 2007, 11:16
Hallo DP!

Ich habe einen Text den ich nach einem bestimmten string durchsuche. Das durchsuchen klappt auch einwandfrei. Hier der Text und meine Funktion dazu:

TEXT:
Ich habe eine tomate=827382932 gesehen und die ist verwandt mit tomate=928382832 aber nicht verwandt mit tomate=928382823 was soll nur aus tomate=828372732 werden?

FUNKTION:
Delphi-Quellcode:
function get_tomatenID:integer;
var
i, pos_tomate, k:integer;
sl:Tstrings;
str:String;
Number:Cardinal;
Begin
 //Stringlist
 sl:=TStringlist.create;
 try
  sl.Add(Form1.memo1.Text);
  //alles durchsuchen
  for i := 0 to sl.Count - 1 do
  begin
  //--->> Position des gewünschten strings suchen
   str:='tomate=';
   pos_tomate := pos(str, sl.Strings[i]);

   if pos_tomate <> 0 then
  begin
   //Gefunden!

   str := Copy(sl.Strings[i],pos_tomate+7, 9);
   Val (str, Number, k);
   result := Number;
  end;
 end;
 finally
  sl.Free;
 end;
End;
Somit bekomm ich die erste Tomaten ID heraus. Nun dachte ich an eine Erweiterung... Ich möchte alle Tomaten IDs in einer Listbox untereinander speichern. Dazu muss ich nach dem 1. gefundenen (und dann auch gespeicherten) Element das nächste Suchen bis EOF
Das könnte auch eine Prozedur lösen.


PROZEDUR:
Delphi-Quellcode:
procedure get_tomatenID:integer;
var
i, pos_tomate, k:integer;
sl:Tstrings;
str:String;
Number:Cardinal;
Begin
 //Stringlist
 sl:=TStringlist.create;
 try
  sl.Add(Form1.memo1.Text);
  //alles durchsuchen
  for i := 0 to sl.Count - 1 do
  begin
  //--->> Position des gewünschten strings suchen
   str:='tomate=';
   pos_tomate := pos(str, sl.Strings[i]);

   if pos_tomate <> 0 then
    begin
   
    //1. Wert Gefunden!
    str := Copy(sl.Strings[i],pos_tomate+7, 9);
    Val (str, Number, k);
    Listbox1.items.add(Number);
    [i]Jetzt irgendwie weitersuchen -_-[/i]

  end;
 end;
 finally
  sl.Free;
 end;
End;
WIe kann ich ab der stelle weitersuchen lassen bis EOF?
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: In einem Text weitersuchen

  Alt 13. Jul 2007, 11:21
Schau Dir mal PosEx() an!
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#3

Re: In einem Text weitersuchen

  Alt 13. Jul 2007, 11:36
Ab Delphi 7 gibt es auch NextPos().

Viele Grüße
Michael S.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: In einem Text weitersuchen

  Alt 13. Jul 2007, 12:06
Zitat von Schaedel:
Ab Delphi 7 gibt es auch NextPos().
Ja? Bei mir (Delphi 7 Personal, Delphi 2005 Personal, Turbo Delphi Explorer, Delphi 2007) nicht... Welche Unit muss ich dafür einbinden?
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: In einem Text weitersuchen

  Alt 13. Jul 2007, 12:30
StrUtils vermutlich.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: In einem Text weitersuchen

  Alt 13. Jul 2007, 12:37
Zitat von Die Muhkuh:
StrUtils vermutlich.
Da ist PosEx() drin, aber nicht NextPos().
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:38 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