Page 2 sur 3
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mar. 07/mai/2013 17:46
par John
Super
Merci
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mar. 07/mai/2013 18:04
par John
oui mais la ça marche plus avec mon logiciel pour mon encodeur RDS
je pense que lorsque le ficher est supprimer ça lui plais pas!
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mar. 07/mai/2013 18:28
par Backup
arf !
pas de probleme on va simuler un effacement, sans le faire

grace a la fonction
qui permet de couper le fichier a l'endroit on l'on se trouve
si on utilise cette fonction juste apres son ouverture/creation
ben ça reviens a effacer le fichier

( en fait a le couper des le debut ..mais sans effacer physiquement le fichier l'entete existe toujours

)
du coup ton prg devrai etre Blousé
j'ai changé mon code dans ce sens , essaye

Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mar. 07/mai/2013 18:44
par John
Apparemment ça marche pas j'ai le même pb le rds texte se met plus a jour.
le logiciel RDS effectue une lecture si le fichier change et met a jour les champs RDS texte.
ça marcher mieux au début quand on n'effacer pas le fichier.
la commande truncate n'arrive pas a gruge le soft RDS
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mar. 07/mai/2013 19:14
par Backup
bon , ben j'utilise
c'est a dire que j'ajoute systematiquement 300 espaces apres la fin de la ligne
du coup ça devrai effacer ce qui suit ...
code changé , toutjours au meme endroit
bon test
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mar. 07/mai/2013 19:23
par John
J'ai fait une bêtise.
c'est ma faute je m'excuse j'avais pas modifier un paramètre du soft RDS maintenant ça fonctionne parfaitement avec le code précédent et le truncate!
merci encore c'est super.
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mar. 07/mai/2013 19:31
par Backup
pourquoi n'utilises tu pas Winamp par exemple pour ecouter tes morceaux
le titre s'affiche automatiquement avec Winamp ...

Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mer. 08/mai/2013 6:12
par John
salut
oui je sait le problème c'est que je module un émetteur fm avec la source radio internet et que cet émetteur possède un encodeur RDS.
Comme ça le titre et l’interprète s'affiche sur mon récepteur FM RDS.
Et ça fonctionne vraiment bien maintenant, seul petit pb de temps en temps il passe des caractères erronés mais la fenêtre de pure basic indique la même chose donc je pense que ça vient de la page web qui doit contenir de temps en temps des caractères bizarres.
Merci pour ton aide précieuse.
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mer. 08/mai/2013 8:57
par Backup
oui pour les caracteres, on peut toujours ajouter un filtre ...
c'est tres simple a mettre en place
je viens de modifier mon code dans ce sens en ajoutant une procedure "Filtre()"
je remplace tout caracteres autre que "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
par un espace ...
c'est un filtre basique
ça devrai arranger le truc quand meme

Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mer. 08/mai/2013 10:14
par Backup
je viens de faire une autre procedure de filtre plus efficace et plus courte
voici un exemple comparant les 2 filtres l'ancien et le nouveau
Code : Tout sélectionner
Declare.s filtre2(Var.s)
Declare.s filtre1(Var.s)
var.s="é(é('-é-'(é(yé(ç_é(çé(éç(-)çé-_()çé_(èàéè'68456512 Totoé(ééçà'ç_é "
debug filtre1(Var.s)
debug filtre2(Var.s)
Procedure.s filtre2(Var.s)
;By Dobro
; Nouveau Filtre
ref.s="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- "
For i=1 to len(var.s)
ex.s=mid(var.s,i,1)
If findstring(ref.s,ex.s)>0
sort.s=sort.s+ex.s
Endif
Next i
ProcedureReturn Sort.s
Endprocedure
Procedure.s filtre1(Var.s)
; By Dobro
; exemple de filtre
For i=1 to len(var.s)
extr.s=mid(var.s,i,1)
If( asc(extr.s)>47 and asc(extr.s)<58) or (asc(extr.s)>64 and asc(extr.s)<91) or (asc(extr.s)>96 and asc(extr.s)<123) or asc(extr.s)=45
sort.s=sort.s+extr.s
Else
sort.s=sort.s+""
Endif
Next i
ProcedureReturn Sort.s
Endprocedure; EPB
Endprocedure
; EPB
voici 2 façon de filtrer ...
pour te montrer qu'en programmation , il existe plusieurs façon d'arriver au meme résultat
l'avantage de la nouvelle version de filtre c'est d'avoir en clair les caracteres autorisés

ça permet d'ajouter a la volée les caracteres permis

(attention le dernier caractere est un espace

)
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : mer. 08/mai/2013 11:32
par Ar-S
Pour ne pas remplacer une lettre accentuée par un espace
Code : Tout sélectionner
Procedure.s ReplaceAccents(Chaine$)
; Falsam
; Modif : Ar-S
Chaine$=LCase(Chaine$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
Protected i
Protected CharToFind.s="àáâãäåçèéêëìíîïñòóôõöÞùúûüýÿ"
Protected CharToReplace.s="aaaaaaceeeeiiiinooooopuuuuyy"
For i=1 To Len(CharToFind)
ReplaceString(Chaine$, Mid(CharToFind,i,1), Mid(CharToReplace,i,1),#PB_String_InPlace, 1)
Next
; vérif pour les caractères spéciaux passant de 1 à 2 caractères
Chaine$ = ReplaceString(Chaine$, "œ", "oe")
Chaine$ = ReplaceString(Chaine$, "æ", "ae")
Chaine$ = ReplaceString(Chaine$, "ß", "ss")
ProcedureReturn Chaine$
EndProcedure
Liste des caractères spéciaux :
http://www.toutimages.com/codes_caracteres.htm
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : ven. 10/mai/2013 9:07
par John
Bonjour
OK je vais essayer ça merci pour votre aide.
a+
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : ven. 10/mai/2013 9:15
par John
il semble que le pb persiste c'est le ' qui passe pas on dirait:
Artist: Edgar Wallace Jr
Titre : I Can039t Go For That
ça devrait donner:
Artist: Edgar Wallace Jr
Titre : I Can't Go For That
ya ce 039 qui passe a chaque fois.
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : ven. 10/mai/2013 9:18
par Backup
a mais c'est parceque dans la page Html , ils utilisent les codes caractere au lieu du caractere
je regarderai ça ... pour l'instant je petit Dejeune
il te faut utiliser ReplaceString ()
et remplacer tout les codes genre pour ton exemple 039 par ' etc ...
Re: Enregistre le titre en cour sur radio dans un fichier te
Publié : ven. 10/mai/2013 9:43
par Backup
remplace la procedure Filtre par celle-ci ça devrai etre bon
Code : Tout sélectionner
Procedure.s filtre(Var.s)
for i=32 to 255
if i<100
Var.s = ReplaceString(Var.s,"&#"+"0"+str(i),chr(i) )
Else
Var.s = ReplaceString(Var.s,"&#"+str(i),chr(i) )
Endif
Next i
; By Dobro
; autre exemple de filtre qui a l'avantage que nous voyons directement les caracteres que nous désirons garder , il suffit de les ajouter dans la chaine Ref.s
ref.s="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&()/éèê.:-' " ; << derniere caractere est un espace
For i=1 to len(var.s)
ex.s=mid(var.s,i,1)
If findstring(ref.s,ex.s)>0
sort.s=sort.s+ex.s
Endif
Next i
ProcedureReturn Sort.s
Endprocedure
; EPB
ps : n'oublie pas que pour autorisé l'affichage d'un caractere , il te faut l'ajouter dans la Chaine "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&()/éèê.:-' "
ici j'ai ajouté >>>> '
par contre il y a une exception , si tu veux ajouter le caractere >>> "
il te faudra faire
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&()/éèê.:-' "+
chr(34)
mais en principe tu n'as pas a ajouter ce code
j'ai donc ajouté ceci a la procedure
Code : Tout sélectionner
for i=32 to 255
if i<100
Var.s = ReplaceString(Var.s,"&#"+"0"+str(i),chr(i) )
Else
Var.s = ReplaceString(Var.s,"&#"+str(i),chr(i) )
Endif
Next i; EPB
ça va chercher dans la variable extraite de la page Html, si un code ayant la forme "'" existe
si c'est le cas ça va remplacer ce code par son equivalent Caractere ici " ' "
si toutefois cela ne marchais pas , vire le "&#"
ça donnerai :
Code : Tout sélectionner
For i=32 to 255
if i<100
Var.s = ReplaceString(Var.s,"0"+str(i),chr(i) )
Else
Var.s = ReplaceString(Var.s,str(i),chr(i) )
Endif
Next i