AGB  ·  Datenschutz  ·  Impressum  







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

Text durchsuchen

Ein Thema von Thomas F · begonnen am 3. Jan 2009 · letzter Beitrag vom 5. Jan 2009
Antwort Antwort
Seite 1 von 3  1 23      
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#1

Text durchsuchen

  Alt 3. Jan 2009, 19:26
Hallo,

ich möchte ein Memo-Textfeld , in das eine Textdatei geladen wurde, nach einem Zeichen durchsuchen.
Funktioniert auch , aber immer nur ein Zeichen.
Leider findet er immer nur das erste Zeichen und ich blick leider nicht durch ,wie man die Suche fortsetzen kann.
Es sollen alle im Text befindlichen Zeichen gefunden werden, ich möchte damit die Email-Adressen im Text speichern

Delphi-Quellcode:
memo1.Lines.LoadFromFile(Datei1);
a := pos('@',memo1.text);
memo2.lines.strings[i] := inttostr(a);
.
.
Gruß

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

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

Re: Text durchsuchen

  Alt 3. Jan 2009, 19:27
Hi,

schau Dir mal PosEx an.
  Mit Zitat antworten Zitat
ULBE01

Registriert seit: 4. Jan 2009
Ort: Dortmund
6 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Text durchsuchen

  Alt 4. Jan 2009, 13:54
Hallo!

Das verstehe ich nicht: Hast Du eine Textdatei, in der irgendwo E-Mailadressen stehen und die möchtest Du heraussuchen? Oder nur die Positionen des @? Oder was?
Ulrich Begemann
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#4

Re: Text durchsuchen

  Alt 4. Jan 2009, 14:35
Reguläre Ausdrücke könntest du dir auch mal anschauen.

http://regexpstudio.com/TRegExpr/TRegExpr.html
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Text durchsuchen

  Alt 4. Jan 2009, 17:36
Zitat von ULBE01:
Hallo!

Das verstehe ich nicht: Hast Du eine Textdatei, in der irgendwo E-Mailadressen stehen und die möchtest Du heraussuchen? Oder nur die Positionen des @? Oder was?
Ja, genau

Ich hab mit Pos immer nur die erste Email bekommen, aber mit PosEx funktioniert es jetzt !
Gruß

Thomas
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#6

Re: Text durchsuchen

  Alt 5. Jan 2009, 08:23
....mit diesem Code hab ich alle Emails aus dem Text rausgefiltert.
Dummerweise erhalte ich bei den Emails immer noch ein Anführungszeichen "
an die Emails drangehängt.
Delphi gibt mir immer wieder neue Rätsel auf
Dieses Zeichen ist doch gar nicht zulässig
...ich kann keinen Fehler finden.
Frage an die Experten im Forum , wo ist da ein Fehler ????

Delphi-Quellcode:
procedure TForm2.ExtracteMail (aValue : string);
var
  at,p :integer;Mytext:String;
  start : integer;
  stop : integer;
  permittedChar : SET of Char;
begin
p:=1;i:=0;

 repeat
   at:=0;
  permittedChar := ['a'..'z','0'..'9','.','_','-'];
  aValue := AnsiLowerCase(aValue);
  at := Posex('@',aValue,p);
   if at = 0 then exit; // wenn at = 0 dann wurde keine Email gefunden
  p:=at+1;
  start := at-1;
  while (aValue[start] in permittedChar) and (start > 0) do
  begin
    Dec (start)
  end;
  stop := at+1;
  while (aValue[stop] in permittedChar) and (stop < length(aValue)) do
  begin
    Inc (stop)
  end;

Mytext:= Copy (aValue,start+1,(stop-start));
unit13.Form13.memo2.Lines.Add(mytext) ;
 i:=i+1; //zählt die gefundenen Emails

until
at=0;

end;
Gruß

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#7

Re: Text durchsuchen

  Alt 5. Jan 2009, 08:31
Hi!

Wie sieht denn dein Ausgangstext aus und wie genau das Ergebnis?
Und wie der Aufruf?


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#8

Re: Text durchsuchen

  Alt 5. Jan 2009, 10:08
...der Aufruf erfolgt so....

Delphi-Quellcode:
procedure TForm2.Button7Click(Sender: TObject);
var Datei1:String;
begin

if opendialog1.Execute then
begin
Datei1:=opendialog1.FileName;
 unit13.Form13.Show;
memo1.Lines.LoadFromFile(Datei1);
 ExtracteMail (Memo1.text);
  unit13.form13.panel1.Caption:= inttostr(i)+' '+'gefundenen Email-Adressen';
  unit13.Form13.Caption:= Datei1;

end;
end;
die Datei hat folgenden Inhalt (ich die tatsächlichen Emails etwas abgeändert, dient nur zu Testzwecken ):

thomasf.ppppppp@mail.de bbbbbbbbbbfffffffffrrrrrttttttt´+#.mx<thomasf_gggg g@mail.de"kkkkkkkkkkk thomasf_ttttzzzz@mail.com hlfootjhjkgggggggggggggggsssssssssssss"""""ÄÄÄÄÄ thomasf_ggghhhrrr@t-online.de ÄGGGGGGG

das Ergebnis schaut dann so aus :

thomasf.ppppppp@mail.de
thomasf_ggggg@mail.de" <---------- Anführungszeichen
thomasf_ttttzzzz@mail.com
thomasf_ggghhhrrr@t-online.de

bis auf das Anführungszeichen funktioniert alles einwandfrei
Gruß

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#9

Re: Text durchsuchen

  Alt 5. Jan 2009, 10:10
Hi!

Du liest vermutlich nach hinten ein Zeichen zu viel, was bei den anderen nicht auffällt, weil hier das folgende Zeichen ein Leerzeichen ist!


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#10

Re: Text durchsuchen

  Alt 5. Jan 2009, 10:20
...hab ich auch schon gedacht

wenn ich aber 1 Zeichen abziehe, dann fehlt bei manchen Emails ein Zeichen

Delphi-Quellcode:
....
....
Mytext:= Copy (aValue,start+1,(stop-start-1));
....
Datei

thomasf_tttggg@mail.com
thomasf_rrrrrr@t-mail.de
thomasf.rrrrrrrwwwww@mail.de

Ergebnis :

thomasf_tttggg@mail.com
thomasf_rrrrrr@t-mail.de
thomasf.rrrrrrrwwwww@mail.d <-------------- ein Zeichen fehlt !!!!
Gruß

Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 18:58 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