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
» Button_picture
par pascal10000 Aujourd'hui à 11:41

» Pourquoi le compilateur stagne
par Minibug Aujourd'hui à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Aujourd'hui à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Aujourd'hui à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Aujourd'hui à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Hier à 17:27

» Mah-Jong européen new-look
par Minibug Mar 12 Déc 2017 - 22:31

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Pb retour de sub

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



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

MessageSujet: Pb retour de sub   Lun 29 Sep 2014 - 17: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 - 18:04, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Lun 29 Sep 2014 - 18: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 : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Pb retour de sub   Lun 29 Sep 2014 - 18: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 : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 18: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 : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Pb retour de sub   Lun 29 Sep 2014 - 19: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 : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 29 Sep 2014 - 19: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
Voir le sujet précédent Voir le sujet suivant 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: