2010-10-23 22 views
0

Dans mon site Web j'ai un script qui retourne la chanson en cours qui joue de mon serveur shoutcast dans un format de: "artiste-piste", ce que je veux faire est de prendre cette chaîne et diviser à 2 cordes: l'artiste et la piste, afin de le faire j'enroulai le script dans la balise serveur comme ceci:Impossible de manipuler la chaîne

<div id="nowPlaying" runat="server"> 
<script type="text/javascript" src="http://shoutcast.mixstream.net/js/song/uk3-free:34588"></script>  
</div> 

et sur le code derrière je l'ai fait somthing comme ceci:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 

     Dim query() As String = nowPlaying.InnerText.Split("-") 
     Dim artist As String = query(0) 
     Dim track As String = query(1) 
     Response.Write(artist + "<br />" + track) 

    End Sub 

la problème est que pour certains reaso n le tableau de chaînes est toujours vide en fait je suis incapable de faire aucune manipulation du tout (remove, substring. lastIndexOf etc.) il semble toujours être vide.

mais si je ne fais aucune manipulation sur la chaîne tout est ok et je peux voir la chaîne comme ceci:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 

     Dim query As String = nowPlaying.InnerText 
     Response.Write(query) 

End Sub 

idées pourquoi?

+0

@InSane - pas dans VB.net –

+0

Pouvez-vous publier un exemple de chaîne, c'est-à-dire la valeur de 'nowPlaying.InnerText'? –

+0

c'est le cas en C# mais dans VB.NET les guillemets sont aussi pour les caractères, vous ne pouvez pas faire ('-') dans vb.net. – tone

Répondre

1

Utilisez cette ...

Dim request As HttpWebRequest = WebRequest.Create("http://shoutcast.mixstream.net/js/song/uk3-free:34588") 
Dim response As HttpWebResponse = request.GetResponse() 
Dim reader As StreamReader = New StreamReader(response.GetResponseStream()) 
Dim sTrim = reader.ReadToEnd() 

reader.Close() 
sTrim=sTrim.Replace("document.write('","") 
sTrim=sTrim.SubString(0,sTrim.length-3) 
Dim query() As String = sTrim.Split("-") 

Cette charge le fichier js sous forme de chaîne, puis supprime la syntaxe document.write pour vous laisser juste une mosaïque d'artistes.

+0

fonctionnant comme un charme! Merci beaucoup pour votre aide. – tone

+1

Faites attention à ce que les caractères tels que l'apostrophe ('' ') puissent sortir en format HTML, c'est-à-dire' ' 'etc etc. Soyez juste conscient de faire un bon test. J'aurais aussi pensé qu'il devrait y avoir un moyen plus robuste de récupérer cette information? Mais si ça marche, ça marche! :) Merci pour la tique. –

0

Essayez:

Dim query() As String = nowPlaying.InnerText.Split(New [Char]() {"-"c}) 
+0

essayé, mais toujours pas spliter ... – tone

+0

try: Dim query() As String = "Ceci est un test" .Split (Nouveau [Char]() {"-" c}) –

+0

avec "Ceci est un test "son fonctionnement, avec nowPlaying.InnerText.Split ne fonctionne toujours pas. – tone

0

Bit d'un coup de couteau, mais essayez:

Dim sTrim as String = nowPlaying.InnerText 
sTrim=sTrim.Replace("document.write('","") 
sTrim=sTrim.SubString(0,sTrim.length-3) 
Dim query() As String = sTrim.Split("-") 
+0

ne fonctionne pas ... iv'e mis à jour la page sur le serveur avec votre code si vous souhaitez voir: http: //www.radioz.co.il/iframe/iframe2.aspx – tone

+0

Pouvez-vous insérer un point d'arrêt sur le deuxième ligne de mon code juste après que sTrim a été initialisé et voir à quoi il sert? –

+0

, eh bien je suppose que maintenant nous savons pourquoi cela ne fonctionne pas parce que ce n'est pas un chaîne réelle. Ma faute, je devrais vérifier avant même que j'ai posté la question. – tone