AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi eMailadresse aus String filtern
Thema durchsuchen
Ansicht
Themen-Optionen

eMailadresse aus String filtern

Ein Thema von emsländer · begonnen am 27. Jul 2005 · letzter Beitrag vom 22. Jul 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#1

eMailadresse aus String filtern

  Alt 27. Jul 2005, 13:29
Moin,

ich habe einen String in der Form: Vorname Nachname, Anschrift ...bla .. email@adresse.de blubber


Ich benötige aus diesem Kauderwelsch die Mailaddi

Hat da jemand einen Tip`?

Danke

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: eMailadresse aus String filtern

  Alt 27. Jul 2005, 13:37
Hai EL,

das einfachste wäre wohl Du ermittelst die Position des @ und gehst dann nach links bzw. rechts bis Du auf ein Zeichen triffst welches in einer eMail-Adresse nicht mehr zulässig ist.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#3

Re: eMailadresse aus String filtern

  Alt 27. Jul 2005, 13:38
Zitat von Sharky:
Hai EL,

das einfachste wäre wohl Du ermittelst die Position des @ und gehst dann nach links bzw. rechts bis Du auf ein Zeichen triffst welches in einer eMail-Adresse nicht mehr zulässig ist.
Davor und dahinter ist jeweils ein Leerzeichen.

Hast Du für mich da evtl. ein Codeschnipsel?

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: eMailadresse aus String filtern

  Alt 27. Jul 2005, 13:39
Oder du zerlegst den Text mit ExplodeExplode bei den Leerzeichen
und suchst in den einzelnen teilen nach @, das braucht aber sicher länger als Sharkys lösung...
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: eMailadresse aus String filtern

  Alt 27. Jul 2005, 13:58
Hai,

das habe ich mal so schnell hingetippelt.
Delphi-Quellcode:
function ExtractiMehl (aValue : string) : string;
var
  at : integer;
  start : integer;
  stop : integer;
  permittedChar : SET of Char;
begin
  permittedChar := ['a'..'z','.','_','-'];
  aValue := AnsiLowerCase(aValue);
  at := Pos('@',aValue);
  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;
  result := Copy (aValue,start,(stop-start));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Label1.Caption := ExtractiMehl(Edit1.Text)
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#6

Re: eMailadresse aus String filtern

  Alt 27. Jul 2005, 14:21
Zitat von Sharky:
Hai,

das habe ich mal so schnell hingetippelt.
Delphi-Quellcode:
function ExtractiMehl (aValue : string) : string;
var
  at : integer;
  start : integer;
  stop : integer;
  permittedChar : SET of Char;
begin
  permittedChar := ['a'..'z','.','_','-'];
  aValue := AnsiLowerCase(aValue);
  at := Pos('@',aValue);
  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;
  result := Copy (aValue,start,(stop-start));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Label1.Caption := ExtractiMehl(Edit1.Text)
end;
He Sharky,

klappt !!!!

vielen lieben Dank!

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Sandi007

Registriert seit: 29. Mär 2011
Ort: Milchstraße (Eine Info, nichts für Erbsenzähler.)
14 Beiträge
 
#7

AW: eMailadresse aus String filtern

  Alt 21. Jul 2012, 16:32
jetzt wird nur noch eine Lösung für solche Fälle benötigt:

"Alle schreiben an musterman@mail.de. Der Text soll..."
"Alle schreiben an musterman@mail.de... Der Text soll..."
"Alle schreiben an musterman@mail.de, der Text soll..."

Grüße aus dem Land der Sonderfälle
while Leser = Sichtbar do begin Winken End;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

AW: eMailadresse aus String filtern

  Alt 21. Jul 2012, 16:45
Hallo Sandi007,
Fall 1 funktioniert ohne Probleme. Es gibt einen virtuellen Keks, wenn du mir sagen kannst, warum
Die anderen beiden Fälle lassen sich erledigen, wenn du am Ende Zeichen löschst, die keine Buchstaben sind.

Wobei der Code natürlich der Aufgabenstellung gerecht wird:
Zitat:
Davor und dahinter ist jeweils ein Leerzeichen.
P.S.: Der Thread ist 7 Jahre alt, ich hoffe das war dir bewusst. Falls du ein eigenes Problem haben solltest, mache bitte einen neuen Thread auf
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: eMailadresse aus String filtern

  Alt 22. Jul 2012, 00:44
@Sandi007: Verwende Reguläre Ausdrücke für solche Aufgabenstellungen.

Komponente siehe z.B. hier.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#10

AW: eMailadresse aus String filtern

  Alt 22. Jul 2012, 03:09
Oder du verwendest den obigen Code weiter und wendest anschließend eine Funktion wie rtrim an.

Die kann man auch leicht selbt machen, mit einer einfachen Schleife, falls du sie für Delphi nicht findest. (Solange letztes Zeichen Punkt oder Komma ist, entferne das letzte Zeichen)

Falls du es doch mit einer RegExp machen solltest, denke bitte daran, dass es auch andere Endungen als .de und .com gibt. Es gibt auch TopLevel-Domains, die länger als 4 Buchstaben sind. Und auch eine Domain ohne einen Punkt kann eine gültige Domain sein. Leider gibt es immer noch viel Software, die es da zu genau nimmt und verschiedene, völlig legale E-Mail-Adressen als inkorrekt erkennt...

Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  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 08:32 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