Suchmaschinen

    • VB.NET

    Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Agent.

      Suchmaschinen

      Hallo,

      mit diesen Codes kann man über Google, Yahoo oder Fireball suchen lassen (zum Beispiel nach dem Text in einer Textbox). Wer möchte, kann sich das ganze auch als Dll herunterladen. Hier der Code:

      VB.NET-Quellcode

      1. ''' <summary>
      2. ''' Sucht bei Google, Yahoo oder Fireball.
      3. ''' </summary>
      4. Public Class Suchmaschinen
      5. ''' <summary>
      6. ''' Sucht einen bestimmten Begriff bei Google
      7. ''' </summary>
      8. '''
      9. Shared Function SearchGoogle(ByVal Suchbegriff As String)
      10. Suchbegriff=Suchbegriff.Replace("&", "%26")
      11. Return "http://www.google.de/search?hl=de&q=" & Suchbegriff.Replace(" ", "+") & "&btnG=Google-Suche&meta="
      12. End Function
      13. ''' <summary>
      14. ''' Sucht einen bestimmten Begriff bei Yahoo
      15. ''' </summary>
      16. '''
      17. Shared Function SearchYahoo(ByVal Suchbegriff As String)
      18. Return "http://de.search.yahoo.com/search?p=" & Suchbegriff.Replace(" ", "+") & "&fr=yfp-t-501&ei=UTF-8&rd=r1"
      19. End Function
      20. ''' <summary>
      21. ''' Sucht einen bestimmten Begriff bei Fireball
      22. ''' </summary>
      23. '''
      24. Shared Function SearchFireball(ByVal Suchbegriff As String)
      25. Return "http://suche.fireball.de/cgi-bin/pursuit?cat=fb_loc&enc=utf-8&x=0&y=0&query=" & Suchbegriff.Replace(" ", "+")
      26. End Function
      27. End Class

      EDIT: In eine Klasse gepackt

      Dieser Beitrag wurde bereits 17 mal editiert, zuletzt von „kevin89“ ()

      hallo kevin89,

      dieser teilcode

      VB.NET-Quellcode

      1. Dim leer As Long = 0
      2. For i = 0 To Suchbegriff.Length - 1
      3. If Suchbegriff.Chars(i) = " " Then
      4. leer = leer + 1
      5. End If
      6. Next

      kann entfallen, da du später nur noch abfrägst ob

      VB.NET-Quellcode

      1. If leer = 0 Then

      damit prüfst du doch nur, ob die erste stelle ein leerzeichen enthält

      VB.NET-Quellcode

      1. If Suchbegriff.SubString(0,1) = " " Then

      würde zum gleichen ergebnis führen - denke ich.

      ausserdem wäre eine klasse, die alle suchmaschinen bedient schöner.
      hast du schonmal mit interfaces gearbeitet ?

      gruss

      mikeb69
      hallo kevin89,

      irgendwie ist da was beim posten deines beitrages schief gegangen

      EDIT:
      jetzt kann man den code lesen - keine ahnung was da vorhin war.
      jetzt hast du zwar eine klasse - lobenswert.

      dennoch bezweifele ich den sinn von

      VB.NET-Quellcode

      1. Dim leer As Long = 0
      2. For i = 0 To Suchbegriff.Length - 1
      3. If Suchbegriff.Chars(i) = " " Then
      4. leer = leer + 1
      5. End If
      6. Next
      7. If leer = 0 Then

      EDIT:
      auch das hier verwirrt mehr als nötig

      VB.NET-Quellcode

      1. Dim v As Array
      2. v = Split(Suchbegriff, " ")

      warum nicht so

      VB.NET-Quellcode

      1. Dim v() As String = Suchbegriff.Split(" ")

      du solltest nicht eine variable als array deklarieren sondern einen array eines festen datentyps
      hoffe du verstehst was ich meine

      gruss

      mikeb69

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

      Ich habe das ganze mittlerweile durch "Contains" ersetzt (siehe Edit), war natürlich kompletter Quatsch, den String in einer Schleife durchzugehen.

      Worin besteht denn der Unterschied zwischen

      VB.NET-Quellcode

      1. Dim v As Array = Split(Suchbegriff, " ")

      und

      VB.NET-Quellcode

      1. Dim v() As String = Suchbegriff.Split(" ")

      ich denke von der Funktionsweise tut sich da nicht viel, oder?
      So ich hab den Code überarbeitet. Kürzer geht denke ich nicht :thumbup:

      Eigentlich sind gar keine Functions dafür notwendig, sind schließlich alle Einzeiler
      Aufrufbeispiel:

      VB.NET-Quellcode

      1. Process.Start(SearchYahoo("wort1 wort2"))

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „kevin89“ ()

      hallo kevin89,

      sehr lobenswert - bin fast schon stolz auf dich :love:
      Eigentlich sind gar keine Functions dafür notwendig, sind schließlich alle Einzeiler

      ich finde schon das du das mit den funktionen richtig schön gelöst hast.
      schliesslich sich es komplizierte einzeiler, die man sich nicht jedesmal neu ausdenken will.

      gruss

      mikeb69
      Ich würde dir raten noch eine Replace Funktion zu schreiben die sonderzeichen in die entsprechenden URL Dekodierungen umwandelt, den üöä und so was ist nicht in der URL erlaubt.

      VB.NET-Quellcode

      1. Function URLDecode(ByVal URL As String) As String
      2. URL = URL.Replace("ü", "%FC")
      3. URL = URL.Replace("Ü", "%DC")
      4. URL = URL.Replace("ö", "%F6")
      5. URL = URL.Replace("Ö", "%DC")
      6. URL = URL.Replace("ä", "%E4")
      7. URL = URL.Replace("Ä", "%C4")
      8. URL = URL.Replace("Ä", "%C4")
      9. URL = URL.Replace("ß", "%DF")
      10. URL = URL.Replace(" ", "+")
      11. Return URL
      12. End Function
      Ich habe auch nur einzeiler - schon bemerkt :D

      Außerdem ging es hier um die 3 größten Suchmaschinen:

      - Google
      - Yahoo
      - Fireball

      und auch nicht um Suchmaschinen, die über Google/Yahoo/Fireball funktionieren.

      @ Dodo: Das mit den Sonderzeichen geht auch so.
      Das liegt an dem "&"-Zeichen, alle Zeichen gehen außer das ^^

      VB.NET-Quellcode

      1. Shared Function SearchGoogle(ByVal Suchbegriff As String)
      2. Suchbegriff=Suchbegriff.Replace("&", "%26")
      3. Return "http://www.google.de/search?hl=de&q=" & Suchbegriff.Replace(" ", "+") & "&btnG=Google-Suche&meta="
      4. End Function