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
» Dessin 2D: largeur de trait
par JL35 Aujourd'hui à 17:48

» Projet de planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 16:28

» PanExpress : l'éditeur Panoramic avec création d'objet
par Jean Claude Hier à 20:32

» Animation: Feux de signalisation
par Minibug Hier à 20:28

» Quantité de mémoire utilisée par un exe
par Jack Mar 19 Juin 2018 - 16:39

» Problème avec 'file_load'.
par Pedro Alvarez Lun 18 Juin 2018 - 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

» Cadre pour image
par Jean Claude Mar 12 Juin 2018 - 16:31

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018 - 14:02

» Planétarium gratuit.
par Jean Claude Sam 9 Juin 2018 - 18:50

» Comment afficher une image sans fond.
par JL35 Sam 9 Juin 2018 - 14:16

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Pb retour de sub

Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6281
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 En ligne
Yannick

avatar

Nombre de messages : 8077
Age : 47
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 : 6281
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 En ligne
Yannick

avatar

Nombre de messages : 8077
Age : 47
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 : 6281
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 En ligne
Yannick

avatar

Nombre de messages : 8077
Age : 47
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: