vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Name herausfiltern 
Autor: Sebi90
Datum: 30.08.14 23:12

Hallo,

über die Facebook api kann man ja die Daten der einzelnen Benutzer abfragen.

z.B.

der aufruf http://graph.facebook.com/4

gibt folgenden Inhalt aus:

{
"id": "4",
"first_name": "Mark",
"gender": "male",
"last_name": "Zuckerberg",
"link": "https://www.facebook.com/zuck",
"locale": "en_US",
"name": "Mark Zuckerberg",
"username": "zuck"
}

wie kann ich den name herausfiltern, das z.B. Mark Zuckerberg in ein Label übergeben werden kann ?

MfG
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: Sebi90
Datum: 31.08.14 19:42

Also mein jetziger Ansatz sieht so aus:

Imports System.IO
Imports System.Text
Imports System.Net
 
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim address As String = _
        "http://graph.facebook.com/4?fields=id,name,link"
        Dim client As WebClient = New WebClient()
        Dim reader As StreamReader = New StreamReader(client.OpenRead(address))
        TextBox1.Text = reader.ReadToEnd
 
    End Sub
End Class
leider ist das ganze noch sehr langsam, und ich weis nicht, wie ich nur den Namen hingekomme.

Gruß
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: effeff
Datum: 31.08.14 23:32

Nun, schau einfach, dass Du das erhaltene Ergebnis zeilenweise durchläufst und prüfe dann, ob im String

"name":

enthalten ist. Dann splitte es auf oder entferne diesen Text, entferne aus dem Resttext die beiden Anführungszeichen und Du hast Dein Ergebnis.

Aufgabe für Dich: Text zeilenweise durchgehen, Suchtext finden, Text durch Replace ersetzen (mit nichts), Anführungszeichen ersetzen (mit nichts) und Du hast Dein Ergebnis...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: Sebi90
Datum: 01.09.14 05:15

Hallo,

ich glaube das mit dem zeilenweise bringt mir nicht, weil der text leider so ankommt:
{"id":"4","first_name":"Mark","gender":"male","last_name":"Zuckerberg","link":"https:\/\/www.facebook.com\/zuck","locale":"en_US","name":"Mark Zuckerberg","username":"zuck"}

war ne falsche info von mir.

Hat noch wer nen vorschlag?

MfG
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: effeff
Datum: 01.09.14 10:24

Sebi90 schrieb:
Zitat:

Hat noch wer nen vorschlag?


Nun, ich hatte Dir bereits geschrieben, z. B. den Text aufzusplitten und auszuwerten. Beispiel: In einer Form habe ich einen Button (Button1) und eine Textbox (TextBox1). Den Text hole ich mir aus einer Textdatei, da musst Du dann eben Deinen eigenen Code einbauen:


Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
 
        Dim strDatei As String = "i:\zuckerberg.txt"
        Dim strInhalt As String = DatenAuslesen(strDatei)
 
        TextBox1.Text = DatenAuswerten(strInhalt)
 
    End Sub
 
 
    Private Function DatenAuslesen(ByVal strDatei As String) As String
 
        If Not System.IO.File.Exists(strDatei) Then
            MessageBox.Show("Die Datei " & strDatei & " Gibt es nicht!")
            Exit Function
        End If
 
        Dim sr As New System.IO.StreamReader(strDatei)
        Dim strInhalt As String = sr.ReadToEnd
        sr.Close()
        Return strInhalt
 
    End Function
 
    Private Function DatenAuswerten(ByVal strInhalt As String) As String
 
        Dim strArr() As String = strInhalt.Split(",")
        Dim strZeile() As String
        Dim i As Integer
 
        For i = 0 To UBound(strArr) - 1
 
            If InStr(strArr(i), Chr(34) & "name" & Chr(34) & ":") Then
                strZeile = strArr(i).Split(":")
                Return (strZeile(1).Replace(Chr(34), ""))
                Exit Function
            End If
        Next
 
        Return ""
 
    End Function
 
 
End Class

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: ModeratorDaveS (Moderator)
Datum: 01.09.14 11:21

Das sind JSON Daten. Es gibt eine Bibliothek Json.Net für .Net http://james.newtonking.com/json

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: eierlein
Datum: 01.09.14 15:42

Ein Consolen Testprogramm:

Imports System.IO
Imports System.Text
Imports System.Net
 
Module Module1
 
    Sub Main()
 
        Dim address As String = _
        "http://graph.facebook.com/4?fields=name"
        Dim client As WebClient = New WebClient()
        Dim reader As StreamReader = New StreamReader(client.OpenRead(address))
        Dim Text As String = reader.ReadToEnd
        Dim name As String = Text.Substring(9, Text.IndexOf(Chr(34), 10) - 9)
 
        Console.WriteLine(name)
        Console.ReadLine()
 
    End Sub
 
End Module
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: Sebi90
Datum: 01.09.14 20:50

Danke für eure Antworten.
Funktioniert einwandfrei, auch wenn ich noch nicht alles verstehe.
Das ganze sieht jetzt so aus:

Imports System.IO
Imports System.Text
Imports System.Net
 
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As  _
      System.EventArgs) Handles Button1.Click
 
        Dim address As String = _
        "http://graph.facebook.com/4"
        Dim client As WebClient = New WebClient()
        Dim reader As StreamReader = New StreamReader(client.OpenRead(address))
        Label1.Text = reader.ReadToEnd
        Dim strDatei As String = Label1.Text
        Dim strInhalt As String = Label1.Text
        Label1.Text = DatenAuswerten(strInhalt)
        Label2.Text = DatenAuswertenLand(strInhalt)
 
    End Sub
 
    Private Function DatenAuswerten(ByVal strInhalt As String) As String
 
        Dim strArr() As String = strInhalt.Split(",")
        Dim strZeile() As String
        Dim i As Integer
 
        For i = 0 To UBound(strArr) - 1
 
            If InStr(strArr(i), Chr(34) & "name" & Chr(34) & ":") Then
                strZeile = strArr(i).Split(":")
                Return (strZeile(1).Replace(Chr(34), ""))
                Exit Function
            End If
        Next
 
        Return ""
 
    End Function
 
    Private Function DatenAuswertenLand(ByVal strInhalt As String) As String
 
        Dim strArr() As String = strInhalt.Split(",")
        Dim strZeile() As String
        Dim i As Integer
 
        For i = 0 To UBound(strArr) - 1
 
            If InStr(strArr(i), Chr(34) & "locale" & Chr(34) & ":") Then
                strZeile = strArr(i).Split(":")
                Return (strZeile(1).Replace(Chr(34), ""))
                Exit Function
            End If
        Next
 
        Return ""
 
    End Function
 
 
End Class[/code
 
Ich habe jetzt nur noch ein Problem, wenn ich eine Facebook ID nehme, auf der _
  kein Account ist.
z.B. http://graph.facebook.com/44444
 
Dann bekomme ich in folgender Zeile eine Fehlermeldung
 
<pre><code>Dim reader As StreamReader = New StreamReader(client.OpenRead( _
  address))
{"Der Remoteserver hat einen Fehler zurückgegeben: (400) Ungültige Anforderung."}

Wo liegt hier das Problem ?
Hätte dann gerne den Labeltext , kein Account.

Leider ist aller Anfang schwer, aber es wird ....
0

Beitrag wurde zuletzt am 01.09.14 um 20:56:24 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name herausfiltern 
Autor: MikeJ
Datum: 01.09.14 22:30

Pack die Zeile in ein Try Catch-Zweig und fang den Fehler ab:

Dim reader As StreamReader 
...
 
Try
    reader = New StreamReader(client.OpenRead(address))
Catch ex As Exception
    'hier kannst Du den Fehler abfangen
 
End Try
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel