| Autor |
Beitrag |
Scipio Africanus
Hält's aus hier
Beiträge: 6
Windows XP SP2, SuSe 9.2, Kubuntu 6.06, Fedora Core 5
Delphi 7
|
Verfasst: Di 10.10.06 19:53
Ok, ich bin ganz neu und ein n00b, also seid bitte gnädig!
Folgendes ist die Problematik und ich brauche einen Denkanstoß:
Ich möchte in einem Memo aus Listen mit verschiedener Formatierung wie in folgendem Beispiel nur die Domains auslesen und die Nummerierung usw. verwerfen:
| Zitat: | 1 AR-RUUN.COM.
2 AUSTRALIANINVESTMENTGUIDE.COM.
3 BAGANTHU.COM.
4 BUNBURYCRICKETCENTRE.COM.
5 BUSHWEEK.NET.
6 CASLIE.COM.
7 CNC-EZ.COM.
8 DE-RESOURCE.COM.
9 ELEGANTZOMBIES.COM.
10 EQUILIBRIUMHR.COM. |
und
| Zitat: | 1. capitaltoday.com 0 listings 0 listings
2. doughtown.com 0 listings 0 listings
3. helpsuzanne.com 0 listings 0 listings
4. chicagoartbrigade.com 0 listings 0 listings
5. familytravelandtour.com 0 listings 0 listings
6. balticamericas.com 0 listings 0 listings
7. 4afl.com 0 listings 0 listings
8. himatexpress.net 0 listings 0 listings
9. canonacademy.com 0 listings 0 listings |
Das Ergebnis soll dann so aussehen:
| Zitat: | AR-RUUN.COM
AUSTRALIANINVESTMENTGUIDE.COM
BAGANTHU.COM
BUNBURYCRICKETCENTRE.COM
BUSHWEEK.NET
CASLIE.COM
CNC-EZ.COM
DE-RESOURCE.COM
ELEGANTZOMBIES.COM
EQUILIBRIUMHR.COM
capitaltoday.com
doughtown.com
helpsuzanne.com
chicagoartbrigade.com
familytravelandtour.com
balticamericas.com
4afl.com
himatexpress.net
canonacademy.com |
Das stammt aus Reverse IP lookups und ich möchte wie gesagt nur die Domains (eine pro Zeile) am Schluß noch übrig haben.
Kann mir jemand einen Denkanstoß geben? Moderiert von Christian S.: Topic aus Dateizugriff verschoben am Di 10.10.2006 um 20:54
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Di 10.10.06 20:34
Schau mal nach den Routinen Pos und Copy, die helfen dir weiter. 
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
Scipio Africanus 
Hält's aus hier
Beiträge: 6
Windows XP SP2, SuSe 9.2, Kubuntu 6.06, Fedora Core 5
Delphi 7
|
Verfasst: Di 10.10.06 20:52
Ja, POS und COPY hatte ich in anderen Threads bereits gefunden, aber ich habe nicht wirklich gesehen, wie die mir bei der Lösung meines speziellen Problems weiterhelfen sollen. Ich weiß, dass man die zur Suche nach Teilstrings verwenden kann, aber ich suche einen Denkanstoß was die logische Herangehensweise betrifft. Mein Problem ist, dass ich in dem Moment in dem ich suche den gesuchten Teilstring ja noch garnicht genau definieren kann! Ich muss halt irgendwie 'aadsdfhsb.yyy' finden. Es könnte aber auch "wef332dsd.xx" sein. Einmal ist davor und danach ein "blank", beim anderen Mal davor ein "blank" und danach ein'.'.
Ich schaue mir POS und COPY auch gerne nochmal an, aber ich dachte, dass da vielleicht einer eine elegante Lösung im Ärmel hat.
Ich suche keine fertig gecodete Lösung, einfach nur jemand der mal "die Lampe anknipst". 
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Di 10.10.06 20:57
Kommt nach dem Domänennamen immer eine Leerzeichen? Dann brauchst duz ja nur dach dem duchen.
_________________ Markus Kinzler.
|
|
Scipio Africanus 
Hält's aus hier
Beiträge: 6
Windows XP SP2, SuSe 9.2, Kubuntu 6.06, Fedora Core 5
Delphi 7
|
Verfasst: Di 10.10.06 20:59
Mal ein Leerzeichen, mal ein Punkt. Aber es kann auch anderswo im Text ein Leerzeichen oder ein Punkt auftauchen, es ist also kein eindeutiges Indiz.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Di 10.10.06 21:13
Wenn später noch mehrere Lerrzeichen kommen würde, waäre ja egal, da ja nur das erste interessiert. In deinem Beispiel waren die Einträge alle in der Form <url><blank><Rest>, dann wäre es einfach gewesen.
_________________ Markus Kinzler.
|
|
Scipio Africanus 
Hält's aus hier
Beiträge: 6
Windows XP SP2, SuSe 9.2, Kubuntu 6.06, Fedora Core 5
Delphi 7
|
Verfasst: Di 10.10.06 21:21
Nicht ganz. Es ist in folgendem Format:
[Zahl][Punkt][Blank(s)][Domainname][Blank][wasfüreinrestauchimmer]
oder
[Zahl][Blank(s)][Domainname][Punkt]
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Mi 11.10.06 13:02
Scipio Africanus hat folgendes geschrieben: | Nicht ganz. Es ist in folgendem Format:
[Zahl][Punkt][Blank(s)][Domainname][Blank][wasfüreinrestauchimmer]
oder
[Zahl][Blank(s)][Domainname][Punkt] |
Hallo,
probier mal (UNGETESTET, nur zusammengehackt):
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:
| function FindNextWord (SStr : string; var start : integer) : string; var wstart,wend,sl,fl : integer; begin Result := ''; l := Length (SStr); wstart := start; while (wstart <= l) and (SStr[wstart] = ' ') do wstart := wstart + 1; wend := wstart; while (wend <= l) and (SStr[wend] <> ' ') do wend := wend + 1; fl := wend + 1 - wstart; if fl > 0 then begin Result := Copy (SStr,wstart,f1); start := wend + 1; end else start := 0; end;
function FindDomain (DStr : string) : string; var IsDomain : boolean; DStrPos,NWLength : integer; NextWord : string; begin Result := ''; IsDomain := false; DStrPos := 1; repeat NextWord := FindNextWord (DStr,DStrPos); NWLength := Length (NextWord); if NWLength > 0 then if Pos ('.',NextWord) < NWLength then IsDomain := true; until IsDomain or DStrPos = 0; if IsDomain then Result := NextWord; end; |
Gruss Reinhard
|
|
Scipio Africanus 
Hält's aus hier
Beiträge: 6
Windows XP SP2, SuSe 9.2, Kubuntu 6.06, Fedora Core 5
Delphi 7
|
Verfasst: Mi 11.10.06 17:20
Cool, ich probier das aus. Vielen Dank für die Mühe schon mal! 
|
|