FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» quel est ce comportement de Panoramic_editor
par Minibug Aujourd'hui à 8:42

» bug BORDER_HIDE : bloque la commande full_space
par silverman Aujourd'hui à 1:19

» Découpe dans une image
par JL35 Hier à 22:00

» FNC IsDateValide(d$) pour vérifier la validité d'une date
par papydall Hier à 18:57

» Pour faire plaisir à jjn4.
par Pedro Alvarez Hier à 8:13

» Pour faire plaisir à Marc37.
par Marc Jeu 22 Fév 2018 - 21:46

» Couleur d'une variable qui n'est pas un mot-clé
par bignono Jeu 22 Fév 2018 - 14:03

» Un catalogue de photos de fleurs, avec KBDD, affichage HTML
par Klaus Mer 21 Fév 2018 - 22:44

» KGF_dll - nouvelles versions
par Klaus Mer 21 Fév 2018 - 22:30

» Mah-Jong anglais
par jjn4 Mer 21 Fév 2018 - 14:22

» Partie fractionnaire d'un flottant
par silverman Mer 21 Fév 2018 - 14:19

» bug CREATE_HIDE : corruption de form
par silverman Mer 21 Fév 2018 - 13:32

» Racine carrée d’un nombre par l’algorithme de Héron
par Ouf_ca_passe Mer 21 Fév 2018 - 9:52

» Méthode manuelle d'extraction de la racine carrée
par pascal10000 Mer 21 Fév 2018 - 7:47

» [annulé]ON_MOVE n,l ne fonctionne que sur le form 0
par silverman Mar 20 Fév 2018 - 16:52

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Février 2018
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
262728    
CalendrierCalendrier

Partagez | 
 

 Pb retour de sub

Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6152
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Pb retour de sub   Lun 29 Sep 2014 - 16:35

J'ai un problème avec le petit programme suivant: lecture des tags d'un fichier mp3 (coucou ygeronimi):
Code:
DIM f$
f$ = "Z:\Unenoix.mp3"
LirTagMp3(f$)
MESSAGE CLIPBOARD_STRING_PASTE$
TERMINATE
' ==============================================================================
SUB LirTagMp3(f$)
' infos d'un MP3: Lecture des tags ID3v1 (128 derniers octets du fichier)
' résultat dans le clipboard.
DIM_LOCAL a$,b$,d$,rc$,sz%,i%,v%(128),gnr$(255)
DATA "Genres_MP3"
DATA "Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop"
DATA "Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock"
DATA "Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack"
DATA "Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical"
DATA "Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","AlternRock"
DATA "Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock"
DATA "Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance"
DATA "Dream","Southern Rock","Comedy","Cult","Gangsta","Top 40","Christian Rap"
DATA "Pop/Funk","Jungle","Native American","Cabaret","New Wave","Psychadelic","Rave"
DATA "Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro"
DATA "Musical","Rock & Roll","Hard Rock","Folk","Folk/Rock","National Folk","Swing"
DATA "Fast-Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock"
DATA "Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band"
DATA "Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music"
DATA "Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam"
DATA "Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle"
DATA "Duet","Punk Rock","Drum Solo","A capella","Euro-House","Dance Hall","Goa"
DATA "Drum & Bass","Club House","Hardcore","Terror","Indie","BritPop","NegerPunk"
DATA "Polsk Punk","Beat","Christian Gangsta","Heavy Metal","Black Metal","Crossover"
DATA "Contemporary C","Christian Rock","Merengue","Salsa","Thrash Metal","Anime"
DATA "JPop","SynthPop",""
READ a$: WHILE a$<>"Genres_MP3": READ a$: END_WHILE
READ a$: WHILE a$<>"": gnr$(i%)=a$: READ a$: END_WHILE
rc$ = CHR$(13)+CHR$(10)
FILEBIN_OPEN_READ 9,f$: sz% = FILEBIN_SIZE(9)
    FILEBIN_POSITION 9,sz%-128: FILEBIN_BLOCK_READ 9,128,v%(0): ' 128 derniers octets
FILEBIN_CLOSE 9
a$ = "": FOR i% = 0 TO 127: a$=a$+CHR$(v%(i%)): NEXT i%
i% = INSTR(a$,"TAG")
IF i%=0 THEN CLIPBOARD_STRING_COPY "Pas de Tags": EXIT_SUB: ' pas de balise 'TAG'
a$ = MID$(a$,i%,128)
b$="Titre:   ": d$=MID$(a$,4,30): i%=INSTR(d$,CHR$(0)): IF i%>1 THEN b$=b$+LEFT$(d$,i%-1)
b$=b$+rc$+"Artiste: ": d$=MID$(a$,34,30): i%=INSTR(d$,CHR$(0)): IF i%>1 THEN b$=b$+LEFT$(d$,i%-1)
b$=b$+rc$+"Album:   ": d$=MID$(a$,64,30): i%=INSTR(d$,CHR$(0)): IF i%>1 THEN b$=b$+LEFT$(d$,i%-1)
b$ = b$+rc$+"Année:   ": d$=MID$(a$,94,4): IF LEFT$(d$,1)<>CHR$(0) THEN b$=b$+d$
b$ = b$+rc$+"Comment: ": d$=MID$(a$,98,30): i%=INSTR(d$,CHR$(0)): IF i%>1 THEN b$=b$+LEFT$(d$,i%-1)
b$ = b$+rc$+"Piste:   "+STR$(ASC(MID$(a$,127,1)))
i% = ASC(MID$(a$,128,1)): b$ = b$+rc$+"Genre:   "+gnr$(i%)
CLIPBOARD_STRING_COPY b$
' message b$
END_SUB
La sub se déroule bien et fait bien son travail (si je décoche le 'message' à la fin, le résultat est normal), mais je tombe sur un 'Access violation' juste au moment du END_SUB,
comme si on avait perdu l'adresse de retour de la sub...
Mais je ne vois vraiment pas comment je peux la modifier, elle doit se trouver dans des tables internes...
Il me semble que c'est apparu quand j'ai ajouté la longue série de datas, mais je ne vois pas pourquoi... rien n'interdit de mettre des datas dans les subs (si c'est ça).

Edit:
Je crois que j'ai mis le doigt dessus: c'est le fait de déclarer en dim_local dans la sub deux tableaux de types différents, % et $, panoramic n'aime pas du tout, access violation suivi de runtime error:
Code:
Masub()
PRINT "Retour!"
END
' ==============================================================================
SUB Masub()
DIM_LOCAL v%(10),b$(100)
END_SUB
je vais le signaler dans les bugs, à tout hasard.
Et en attendant, il faut que je trouve une autre solution...


Dernière édition par JL35 le Lun 29 Sep 2014 - 17:04, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8015
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 17:03

@JL35,

Les datas peuvent être sans problèmes à l' interieur d' une Sub :

Mp3Tagger.bas:
 

Ceci est une ébauche de l' interface graphique vs0.1.
Ne regarde pas l' adressage des pluggins, la sub n' est pas à jour mais comme j' essai le tout Panoramic... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6152
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Pb retour de sub   Lun 29 Sep 2014 - 17:06

On s'est croisés ygeronimi, je savais pour les datas, mais comme tu vois j'ai trouvé le hic.

J'ai fait deux subs en tout panoramic, sub lecture des tags et sub modification/mise à jour, c'est simple à faire.
Mais tu veux certainement quelque chose de plus sophistiqué.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8015
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 17:15

Perso, je mets mes tableaux en "dim" et j' initialise ou pas au besoin.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6152
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Pb retour de sub   Lun 29 Sep 2014 - 18:07

Là je ne vois pas bien comment je peux mettre mes 200 éléments environ en dim... et les retrouver à partir de leur index.
Non, j'ai supprimé le tableau ascii et tout lu les datas dans un Dlist, c'est plus pratique, pour l'indexation.

Je regardais ton ébauche, c'est pas mal, et même bien, visuellement.
Mais dans le programme, toujours ces longues séries de datas, ça fait un sacré volume de lignes...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8015
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 18:32

@ JL35, 

Le nombre de ligne pour les datas, c' est une convenance personnelle.
Tu peux en mettre plusieurs sur la même ligne, du moment que tu respectes l' ordre
dans lequel ils sont ( pour la mise en tableau, TabGenre$(125), que je fais en même temps que
le remplissage du Combo.

heu...quand je dis en dim, c' est le tableau que je déclare en variable constante par dim au lieu de dim_local
puisque je sais, au départ, que je vais en avoir besoin pour le reste du programme.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Pb retour de sub   

Revenir en haut Aller en bas
 
Pb retour de sub
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» retour au travail....
» Le 23 mai Varadero me voilà/et c'est grâce à vous/retour à la réalité
» Est-ce que quelqu'un a vu le retour de Nounou McPhee
» Retour maison
» Retour 3D' S-Pagne...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: