| Autor |
Beitrag |
Jagg
      
Beiträge: 635
|
Verfasst: Fr 26.09.03 17:53
Hallo Leute !
Ich habe ein Programm geschrieben,das den Quelltext einer HTML-Seite anzeigt !
Jetzt will ich in dem Quelltext einen Suchvorgang starten,das nach allen E-Mails sucht und die dann in einem Memofeld ausgibt !
Wie kann ich sowas realisieren ???
Jagg !
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Fr 26.09.03 18:15
meinst du E-Mail adressen ? Wenn ja, einfach parsen nach @.
grez
msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
Jagg 
      
Beiträge: 635
|
Verfasst: Fr 26.09.03 18:59
Ja,ich meine E-Mail Adressen !
Nehmen wir mal an,ich habe das "@" gefunden,dann muss ich noch die Zeichen davor und danach suchen und die dann als vollstädige E-Mail Adresse ausgeben !
...aber es gibt ja die endungen ".de,.com,.net usw !
Wie filtere ich das heraus ???
Was muss noch beachtet werden bei der Richtigkeit einer E-Mail ???
Kann ich das alles mit der Funktion "Pos()" machen ???
Jagg !
|
|
focus
      
Beiträge: 187
XP, 2k, 98, Me
D6 Prof
|
Verfasst: Fr 26.09.03 19:34
die kürzel sind vordefiniert, danach lässt sich suchen, und vor dem @ suchst du einfach das letzte leerzeichen ach und vor dem kürzel muss ein "." sein
ja mit pos lässt sich da gut arbeiten
gruss
michael
|
|
Jagg 
      
Beiträge: 635
|
Verfasst: Fr 26.09.03 23:57
Danke für die Kürzel !
So,da wäre jetzt ein Problem mit Pos()
Code :
Quelltext 1:
| Suchstring := pos('@',Text); |
Beim 1.Durchgang suche ich dem Text nach dem Zeichen @......Das Zeichen @ wird auch gefunden...
Beim 2. Durchgang wird das Zeichen @ auch gefunden usw.
.....aber nach dem 1.Durchgang beginnt er mit der Suche immer von vorne,so das immer eine Endlosschleife ensteht und ich nicht bis zum Ende des Textes suchen kann.
Kann man dieses Problem nur mit Pos() lösen oder geht das auch anders ???
Jagg !
|
|
Jagg 
      
Beiträge: 635
|
Verfasst: Sa 27.09.03 16:44
Diese Funktion,die ich brauche kann man vergleichen mit der Funktion "Weitersuchen" im FindDialog !
|
|
lemming
      
Beiträge: 470
Mac OS 10.3.1
Delphi 6 Pro, Kylix 3
|
Verfasst: Di 30.09.03 09:03
Quelltext 1: 2: 3: 4: 5: 6:
| bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla fish@fish.com bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla hansi@fish.com bla bla bla bla bla bla schnarch.zapfen@gmx.de bla bla bla bla bla bla bla bla |
Und was stellen wir fest? Jede email Adresse ist mit @ zu finden.
Alles was vor dem @ kommt gehört zur email adresse bis ein leerzeichen kommt. Das gleiche gilt auch für was danach kommt.
So schwer ist das doch ned, oder?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| procedure TForm1.Button1Click(Sender: TObject); var iCipher: Integer; sChunk: String; iStart: Integer; iEnds: Integer; begin for iCipher := 0 To Length(Memo1.Text) - 1 do begin if Copy(Memo1.Text, iCipher, 1) = '@' then begin for iEnds := iCipher to (iCipher + 100) do begin if Copy(Memo1.Text, iEnds, 1) = ' ' then begin ShowMessage(IntToStr(iEnds - iCipher)); sChunk := Copy(Memo1.Text, iCipher, iEnds - iCipher); break; end; end;
for iStart := iCipher downto (iCipher - 100) do begin if Copy(Memo1.Text, iStart, 1) = ' ' then begin sChunk := Copy(Memo1.Text, iStart + 1, iCipher - (iStart + 1)) + sChunk; break; end; end;
Memo2.Lines.Add(sChunk); end; end; end; |
Eine noch leichtere methode wäre evtl. davon auszugehen das jedes Wort eine email Adresse ist und dann mit Pos() geprüft wird ob sie ein @ und einen . hat. Wenn beide True oder >0 ist dann ist es höchstwahrscheinlich eine email Adresse.
-lemmi
|
|
barfuesser
      
Beiträge: 324
|
Verfasst: Di 30.09.03 09:45
| lemming hat folgendes geschrieben: | Und was stellen wir fest? Jede email Adresse ist mit @ zu finden.
Alles was vor dem @ kommt gehört zur email adresse bis ein leerzeichen kommt. Das gleiche gilt auch für was danach kommt.
So schwer ist das doch ned, oder?
|
Wahrscheinlich doch:
Quelltext 1:
| <a href="mailto:addressee@domain.tld>Mail an mich</a> |
liefert dann als Ergebnis: href="mailto:addressee@domain.tld>Mail an mich</a>
barfuesser
|
|
lemming
      
Beiträge: 470
Mac OS 10.3.1
Delphi 6 Pro, Kylix 3
|
Verfasst: Mi 01.10.03 14:24
Umso besser.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| procedure TForm1.Button1Click(Sender: TObject); var iCipher: Integer; sChunk: String; iStart: Integer; iEnds: Integer; begin for iCipher := 0 To Length(Memo1.Text) - 1 do begin if Copy(Memo1.Text, iCipher, 1) = '@' then begin for iEnds := iCipher to (iCipher + 100) do begin if Copy(Memo1.Text, iEnds, 1) = '"' then begin ShowMessage(IntToStr(iEnds - iCipher)); sChunk := Copy(Memo1.Text, iCipher, iEnds - iCipher); break; end; end;
for iStart := iCipher downto (iCipher - 100) do begin if Copy(Memo1.Text, iStart, 1) = ':' then begin sChunk := Copy(Memo1.Text, iStart + 1, iCipher - (iStart + 1)) + sChunk; break; end; end;
Memo2.Lines.Add(sChunk); end; end; end; |
|
|
|