| Autor |
Beitrag |
G-man
      
Beiträge: 258
Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
|
Verfasst: Di 03.06.03 11:58
Hallo,
wie kann ich herausfinden ob die URL (aus einem Editfeld) korrekt ist
und falls nicht nach ähnlichen suchen?
G-man
_________________ ...To err is human, but to really foul things up requires a computer.
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Di 03.06.03 20:23
1. Nach nicht zulässigen Zeichen suchen und durch %ASCII% ersetzen
2. auf HTTP://, FTP://, GOTHER://, etc. prüfen
3. URL aufrufen und auf Serverantwort 200 warten
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Di 03.06.03 20:29
Das Protokoll heißt Gopher und nicht Gother.
Aber ich wüsste nicht, wo dsa heute noch eingesetzt wird, bzw heute noch ein Gopher-Server Anfragen beantwortet. Viel wichtiger wäre HTTPS und FTPS.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Tweafis
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Di 03.06.03 22:24
Err, der Code geht doch nicht...
Fis
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
G-man 
      
Beiträge: 258
Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
|
Verfasst: Mi 04.06.03 11:58
Jo,
Gibt`s da irgendwo ein Codebeispiel?
Wenn ja, wo?
G-man
_________________ ...To err is human, but to really foul things up requires a computer.
|
|
MaxiTB
      
Beiträge: 679
Win2000, WinXp, Workbench ;-)
D7 Ent, VS2003 Arch.
|
Verfasst: Mi 04.06.03 12:23
Titel: Moment mal ...
Das sind alles nur Alibi-Tests - am besten ists, wenn man auf die Files zugreift und einen Fehler abfängt.
Auf diese weise weiß man 100%ig, ob a) die URL gültig ist und b) die URL wirklich gültig ist (und kein broken link).
_________________ Euer Mäxchen
Wer früher stirbt, ist länger tot.
|
|
G-man 
      
Beiträge: 258
Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
|
Verfasst: Fr 06.06.03 12:03
Irgendwie so hab ich mir das ja schon gedacht,
aber ich weiß halt nicht, wie ich das in Object Pascal ausdrücken soll...
Wenn`s jemand weiß, bitte posten...
_________________ ...To err is human, but to really foul things up requires a computer.
|
|
focus
      
Beiträge: 187
XP, 2k, 98, Me
D6 Prof
|
Verfasst: Fr 06.06.03 13:05
ohne dir zu nahe treten zu wollen willst du von uns hilfestellung oder lösungen?
gruss
michael
|
|
focus
      
Beiträge: 187
XP, 2k, 98, Me
D6 Prof
|
Verfasst: Fr 06.06.03 13:17
habe noch was gefunden was dir mit sicherheit weiterhilft auch wenn ich es nicht gut heisse einfach lösungen zu posten...
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: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92:
| function GetURLs(line: string): TStringList; var i : integer; posURL, s : string; begin Result := TStringList.Create; s := line; i := 0; if Length(s) < 5 then exit; repeat i := Pos(' ', s); if i > 0 then begin posURL := Copy(s, 1, i-1); s := Copy(s, i+1, Length(s)-i); if isURL(posURL) then Result.Add(posURL); end else begin PosURL := s; if isURL(posURL) then Result.Add(posURL); Break; end; until Length(s) = 0; if Result.Count = 0 then begin Result.Free; Result := nil; end; end;
function IsURL(s: string): Boolean; var i: integer; begin Result := False; if Length(s) < 5 then exit; if (s[Length(s)] = '.') or (Pos('..', s) > 0) then exit; for i := 1 to Length(s) do if (Ord(s[i]) < 33) or (Ord(s[i]) > 126) then exit; if (Pos('www.',LowerCase(s)) = 1) or (Pos('news:', LowerCase(s)) = 1) and (Length(s) > 6) then begin Result := True; Exit; end; if (Length(s) > 12) or (Pos('mailto:', LowerCase(s)) = 1) and (Pos('@', s) > 1) and (Pos('.', s) > 4) and (Pos('.', s) > (Pos('@', s) +1)) then begin Result := True; Exit; end; if (Pos('http:://', LowerCase(s)) > 0) or (Pos('ftp://', LowerCase(s)) > 0) and (Length(s) > 10) and (Pos('.', s) > 7) then begin Result := True; Exit; end; end; |
gruss
michael
|
|
G-man 
      
Beiträge: 258
Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
|
Verfasst: Di 10.06.03 15:54
Vielen Dank,
das könnte das sein, was ich gesucht habe...
_________________ ...To err is human, but to really foul things up requires a computer.
|
|
|