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
» Calculatrice
par papydall Hier à 22:45

» Orbites de l’ensemble de Mandelbrot
par Minibug Hier à 21:32

» Planétarium virtuel.
par Pedro Alvarez Hier à 17:07

» Demande pour Jack concernant PanExpress
par Minibug Hier à 11:04

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Pb retour de sub

Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6326
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 : 8083
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 : 6326
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 : 8083
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 : 6326
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 : 8083
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: