
En faite j'avais complètement oublié à qui appartient ce super code

mais grace à toi je sais c'est à qui maintenant

Code : Tout sélectionner
;--------------------------------------------------
;Good07
;Programme pour transformer des fichiers Wav en data
;Le 10/11/04
;Version PureBasic 3.92
;--------------------------------------------------
;
Global out.s
q.s = Chr(34)
FileName$= OpenFileRequester("", "*.wav", ".wav", 0);On choisi le fichier .wav à transformer en data.
If OpenFile(1,FileName$)<>0 ;Ouverture du fichier
Longueur= FileSize(FileName$) ;On récupère sa longueur
*tampon=AllocateMemory(Longueur) ;On alloue à l'adresse *tanpom un emplacement mémoire de la longueur du fichier
ReadData(*tampon,Longueur) ;On transfère le contenu du fichier dans le tampon
EndIf
CloseFile(1) ; On ferme le fichier en lecture
name$=GetFilePart(filename$) ; on récupère son nom
name$=Left(name$,(Len(name$)-4)); et on enlève l'extention (.wav)
If CreateFile(0,"WaveData.pb") ;On donne un nom au programme et on ouvre un fichier en écriture
WriteStringN("; Fichier Wave en data"); Les ligne de dessous servent à créer le programme qui va lire les datas
WriteStringN(" ")
WriteStringN("InitSound()")
WriteStringN("Restore "+ name$); On ajoute le nom du fichier pour la restauration des datas (Utile si on a plusieurs sections)
WriteStringN("Read longueur.l")
WriteStringN("*tampon=AllocateMemory(longueur)")
WriteStringN("For n=0 To longueur-1")
WriteStringN(" Read c.b")
WriteStringN(" PokeB(*tampon+n,c)")
WriteStringN("Next n")
WriteStringN("resultat=CatchSound(1,*tampon)")
WriteStringN("If resultat=0")
WriteStringN(" MessageRequester"+"("+q+"Attention"+q+","+q+"le chargement du son a échoué !"+q+","+"#PB_MessageRequester_Ok"+")")
WriteStringN("EndIf")
WriteStringN("PlaySound(1)")
WriteStringN("Delay(10000)");Permet d'entendre le son avant la fin du programme. A supprimer si vous incorporez ce listing à votre
WriteStringN(" ") ;programme
WriteStringN("DataSection")
WriteStringN(" ")
WriteStringN(Name$+":")
WriteStringN(" ")
out="Data.l "
WriteStringN(out+Str(longueur));Première ligne de data contient la longueur du fichier à lire.
out="Data.b "
For x=0 To Longueur-1; boucle qui lit le fichier en mémoire et le transforme en data
c=PeekB(*tampon+x);& $FF
c$=Str(c)
out=out+c$
If z=25
z=0
WriteStringN(out)
out="Data.b "
ElseIf x<> Longueur-1
out=out+","
EndIf
z=z+1
Next x
If z<26
WriteStringN(out); si la dernière ligne n'est pas complète on écrit ce qui reste
EndIf
WriteStringN("EndDataSection")
CloseFile(0)
EndIf
MessageRequester("Programme","Le programme a été généré"+Chr(10)+"avec succé sous le nom"+Chr(10)+"WaveData.Pb",#PB_MessageRequester_Ok)
Code : Tout sélectionner
CatchSound(37, ?7)
CatchSound(36, ?6)
CatchSound(35, ?5)
CatchSound(34, ?4)
CatchSound(33, ?3)
CatchSound(32, ?2)
CatchSound(31, ?1)
CatchSound(30, ?0)
DataSection
7: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\7.wav"
6: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\6.wav"
5: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\5.wav"
4: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\4.wav"
3: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\3.wav"
2: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\2.wav"
1: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\1.wav"
0: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\0.wav"
EndDataSection; EPB
quoique .... finalement , je me demandecar contrairement a ce que dit Ar-s () , l'inclusion de Binaire n'as pas besoin de datasection ...
Dobro a écrit :quoique .... finalement , je me demandecar contrairement a ce que dit Ar-s () , l'inclusion de Binaire n'as pas besoin de datasection ...
Code : Tout sélectionner
; ************ OBLIGATOIRE *****************************************
;- structure memoire partagé
Structure Partage
declencheur.b
valeur1.i
message.s {500}
EndStructure
Global *ram.Partage
MemoirePartagee=CreatefileMapping_($FFFFFFFF,#Null, #PAGE_READWRITE, 0, SizeOf(Partage),"EPB_RAM")
*ram=MapViewOfFile_(MemoirePartagee, #FILE_MAP_WRITE, 0, 0, 0)
Declare envoie_epb(text.s,type)
Procedure envoie_epb(text.s,type)
*ram\declencheur.b=1
*ram\valeur1.i=type
*ram\message.s=text.s
EndProcedure
;*****************************************************************************
; cette procedure vous permettra d'envoyer des commandes a EPB
; utile si vous développez un utilitaire, qui aurai besoin de poser un résultat dans EPB
; utilisation : envoie_epb("message",ORDRE)
; ****************** exemple d'utilisation **************************************
;envoie_epb("un Petit Message",0) ; ORDRE 0, pose au curseur
; ; *******************************************************************
;envoie_epb("Remplace",1) ; ORDRE 1 , Remplace la ligne en cours (par rapport au curseur)
; ; *******************************************************************
;envoie_epb("un Petit Message",2) ; ORDRE 2 ,insert une ligne (par rapport au curseur)
; ; *******************************************************************
;Debug GetCurrentDirectory()
;envoie_epb("20",3) ; ORDRE 3 ,saute a la ligne 20
; ; *******************************************************************
;envoie_epb("10",4) ; ORDRE 4 ,positionne le curseur apres le 10eme caratere
; ; *******************************************************************
;envoie_epb("5,10",5) ; ORDRE 5 ,selectione apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours
; *******************************************************************
; exemple de selection et remplacement :
; envoie_epb("5,10",5) ; selectione apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours
; envoie_epb("message qui remplace",6) ; ORDRE 6 et remplace par le message
; ; *******************************************************************
; exemple de recuperation de la ligne en cours par le clipboard()
; envoie_epb(" ",7) ; ORDRE 7, Recupere la ligne en cours,( celle ou se trouve le curseur !! ) retour par le clipboard
; Delay(200)
; Debug GetClipboardText()
; ; *******************************************************************
; exemple de creation d'un onglet et du chargement d'un code dedans :
; file$=OpenFileRequester("load pb",Home$,"*.pb",0)
; envoie_epb(file$ ,8) ; ORDRE 8, creer un onglet, et charger un fichier *.pb
; ; *******************************************************************
; exemple de recuperation du code complet de l'onglet précisé , dans le clipboard()
; envoie_epb("3",9) ; ORDRE 9 , Recupere le code complet de l'onglet précisé (ici l'onglet 3), retour par le clipboard
; *************************************************************************
; exemple d'activation des onglets , rien de plus
; envoie_epb("0",10) ; ORDRE 10 ,Active l'onglet précisé (ici l'onglet 1 ... les onglets commencent a 0), rien de plus...
;Delay(1000)
;envoie_epb("1",10) ; Active l'onglet précisé (ici l'onglet 2 ... les onglets commencent a 0), rien de plus...
; Delay(1000)
; envoie_epb("2",10) ; Active l'onglet précisé (ici l'onglet 3 ... les onglets commencent a 0), rien de plus...
; **************************************************************************
; EPB