Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/03/2011, à 12:36

temps

[résolu] concatener des fichiers en C

Bonjour,
Je concatene actuellement des fichiers binaires sous bash avec la commande cat ...>> , je recherche une commande similaire en langage C ?
Quielque chose de pas trop lourd car il est prévue de cette manip s'effectue sur des milliers de fichiers très légers.

Dernière modification par temps (Le 03/03/2011, à 03:27)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 02/03/2011, à 14:38

serged

Re : [résolu] concatener des fichiers en C

Peut-être voir ce topic :
[Résolu]Code source de la commande cat

Et plus généralement, récupérer le source de l'utilitaire cat...


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#3 Le 02/03/2011, à 14:44

Darunia

Re : [résolu] concatener des fichiers en C

serged a écrit :

Peut-être voir ce topic :
[Résolu]Code source de la commande cat

Et plus généralement, récupérer le source de l'utilitaire cat...

Mouais ... Lire le fichier caractère par caractère c'est pas super niveau performance.
Mieux vaut passer par des fread/fwrite avec un buffer. La taille du buffer doit etre determinée selon la taille moyenne des fichiers à concatener.

Sinon, pour repondre à temps, il n'existe pas de "commande"pour faire ça, il faut donc passer par un algo tout bete :

- ouvrir un fichier vierge en écriture
- boucler sur les fichiers à concatener
- Pour chaque fichier, le lire par bloc avec fread
- Ecrire chaque bloc dans le fichier à produire avec fwrite

Hors ligne

#4 Le 02/03/2011, à 19:11

temps

Re : [résolu] concatener des fichiers en C

Merci pour les réponses, je vais tester.
Ce que j'avais essayé c'était d'ouvrir le fichier récepteur, calculer le fichier que j'allais ajouter, ouvrir et lire le fichier à ajouter et ensuite ajouter le fichier tout ceci dans une boucle en gardant le fichier recepteur ouvert. Le tout se compile bien; mais j'obtiens une erreur de segmentation quand je fais tourner le programme.


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#5 Le 02/03/2011, à 19:31

Darunia

Re : [résolu] concatener des fichiers en C

Fait voir le code, t'as du te planter quelque pat wink

Hors ligne

#6 Le 02/03/2011, à 20:55

temps

Re : [résolu] concatener des fichiers en C

Oui ok, le but, je crée et j'ouvre un fichier nommé son.o.aiff, qui se trouve dans un répertoire contenant tous les fichiers biinaires entre 0 et 254 ; ensuite j'ouvre un fichier nommé son.jo, je traite les données contenues dans son.jo et je concatene les résultats dans o.aiff. J'essaie de faire tout ceci en binaire. Le repertoire contenant la base des fichiers bianire se trouve ici http://www.constructeur-exo.com/gkri-son-base/

/* Imaginer et creer par Andre pierre jocelyn*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(int argc, char *argv[])

{


FILE* debutbash = NULL;
debutbash = fopen("gkri-son-base/o.aiff", "wb+");/*je creer o.aiff*/
    if (debutbash != NULL)
 {
FILE* entete = NULL;
    int bin = 0;

    entete = fopen("gkri-son-base/lentete.aiff", "rb");

    if (entete != NULL)
  {
        bin = fgetc(entete); /* initialise valbin*/

    /* Boucle de lecture des caractères un à un*/
    while (bin != EOF) /* On continue tant que fgetc n'a pas retourné EOF (fin de fichier)*/
   {
          fprintf(debutbash,"%d", bin); /* On recopie dans o.aiff le caractère stocké*/
          bin = fgetc(entete); /* lecture caractère suivant*/
   }

    fclose(entete), entete = NULL;;

/*fprintf(debutbash,"%s", debutcode ); */

  }

   fclose(debutbash), debutbash = NULL;;
 }
/*j ouvre mon fichier de donner*/
    FILE* oups = NULL;




    oups = fopen("son.jo", "r");

    if (oups != NULL)
  {

    int nbdepoints, sens, amplitude;
    double jo;

   while (  fscanf(oups,"%d %d %d %lf", &amplitude, &nbdepoints, &sens, &jo) !=EOF )

    /*   fscanf(oups,"%d %d %d %d", &amplitude, &nbdepoints, &sens, &jo);    != NULL      */
   {
double codebash;

if(sens==1)
    {
FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");/* pour ajouter a. possible  w ou r+  w+ tester  */

    if (script != NULL)

     {

         int boucle = 1;
  while (boucle < nbdepoints+1)
      {
codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100;
/*
fprintf(script,"%d ", (int)codebash );
*/
FILE* joris = NULL;
    int valbin = 0;

    joris = fopen("gkri-son-base/((int)codebash)", "rb");

    if (joris != NULL)
       {
        valbin = fgetc(joris); // On initialise valbin

    // Boucle de lecture des caractères un à un
    while (valbin != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
        {
          fprintf(script,"%d", valbin); // On recopie dans o.aiff le caractère stocké
          valbin = fgetc(joris); // On lit le caractère suivant
        }

    fclose(joris), joris = NULL;;
/*fin modif*/

   boucle++;
       }

   fclose(script), script = NULL;;
      }

     }
    }

if(sens==2)
{
FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");

    if (script != NULL)
    {

    int boucle;
    boucle = nbdepoints;
while ( boucle > 0)
          {
  codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100;
/*
fprintf(script,"%d ", (int)codebash );
*/
FILE* joris = NULL;
    int valbin = 0;

    joris = fopen("gkri-son-base/((int)codebash)", "rb");

    if (joris != NULL)
    {
        valbin = fgetc(joris); // On initialise valbin

    // Boucle de lecture des caractères un à un
    while (valbin != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
    {
          fprintf(script,"%d", valbin); // On recopie dans o.aiff le caractère stocké
          valbin = fgetc(joris); // On lit le caractère suivant
    }

    fclose(joris), joris = NULL;;
/*fin modif*/
  boucle--;
           }

   fclose(script), script = NULL;;
      }

     }
    }

if(sens==3)
    {

     FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");

    if (script != NULL)
    {

  int boucle = 1;
  while (boucle < nbdepoints+1)
          {

  codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100+126;
/*
fprintf(script,"%d ", (int)codebash );
*/
FILE* joris = NULL;
    int valbin = 0;

    joris = fopen("gkri-son-base/((int)codebash)", "rb");

    if (joris != NULL)
    {
        valbin = fgetc(joris); // On initialise valbin

    // Boucle de lecture des caractères un à un
    while (valbin != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
    {
          fprintf(script,"%d", valbin); // On recopie dans o.aiff le caractère stocké
          valbin = fgetc(joris); // On lit le caractère suivant
    }

    fclose(joris), joris = NULL;;
/*fin modif*/
   boucle++;
           }

   fclose(script), script = NULL;;
      }

     }
    }
if(sens==4)
{
    FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");

    if (script != NULL)
    {

    int boucle;
    boucle = nbdepoints;
while ( boucle > 0)
          {
  codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100+126;
/*
fprintf(script,"%d ", (int)codebash );
*/
FILE* joris = NULL;
    int valbin = 0;

    joris = fopen("gkri-son-base/((int)codebash)", "rb");

    if (joris != NULL)
    {
        valbin = fgetc(joris); // On initialise valbin

    // Boucle de lecture des caractères un à un
    while (valbin != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
    {
          fprintf(script,"%d", valbin); // On recopie dans o.aiff le caractère stocké
          valbin = fgetc(joris); // On lit le caractère suivant
    }

    fclose(joris), joris = NULL;;
/*fin modif*/
   boucle--;
           }

   fclose(script), script = NULL;;
      }

     }
    }
        fclose(oups);


  }
 }
  return 0;
}

voici un code de son.jo qui donne le son O

30 39 1 10
30 24 2 14
25 24 3 14
25 48 4 20
4 15 1 14
4 11 2 14
12 21 3 14
12 15 4 14
41 29 1 16
41 27 2 16
22 26 3 14
22 46 4 22
8 14 1 14
8 16 2 14
18 19 3 14
18 22 4 14
42 29 1 16
42 30 2 16
28 28 3 16
28 40 4 20
8 13 1 14
8 17 2 14
17 20 3 14
17 20 4 20
44 30 1 16
44 29 2 16
30 29 3 16
30 43 4 20
7 11 1 14
7 14 2 14
21 28 3 16
21 18 4 14
52 31 1 16
52 30 2 16
37 29 3 16
37 38 4 20
13 15 1 14
13 18 2 14
30 21 3 14
30 25 4 14
60 28 1 16
60 32 2 16
44 25 3 14
44 40 4 20
19 16 1 14
19 21 2 14
35 23 3 14
35 24 4 14
67 30 1 16
67 31 2 16
49 25 3 14
49 38 4 20
20 18 1 14
20 19 2 14
42 26 3 14
42 23 4 14
77 33 1 16
77 29 2 16
59 26 3 14
59 36 4 14
23 17 1 14
23 22 2 14
43 27 3 14
43 23 4 14
80 35 1 17
80 28 2 16
65 22 3 14
65 38 4 16
22 18 1 14
22 22 2 14
47 26 3 14
47 25 4 14
84 38 1 20
84 27 2 15
72 24 3 14
72 35 4 17
26 21 1 14
26 22 2 14
53 26 3 14
53 24 4 14
89 39 1 20
89 26 2 14
74 25 3 14
74 34 4 16
28 19 1 14
28 24 2 14
56 27 3 14
56 25 4 14
88 33 1 14
88 33 2 16
73 25 3 14
73 34 4 16
26 21 1 14
26 22 2 14
55 26 3 14
55 27 4 14
90 41 1 22
90 25 2 14
80 25 3 14
80 32 4 16
24 22 1 14
24 21 2 14
58 28 3 16
58 25 4 14
93 39 1 20
93 29 2 16
87 25 3 15
87 33 4 20
28 21 1 14
28 24 2 14
61 27 3 14
61 24 4 14
94 44 1 22
94 24 2 14
88 24 3 14
88 34 4 16
29 25 1 14
29 20 2 14
61 26 3 14
61 25 4 14
94 45 1 22
94 23 2 14
91 25 3 14
91 33 4 16
30 23 1 14
30 23 2 14
62 26 3 14
62 25 4 14
98 45 1 22
98 23 2 14
93 25 3 14
93 35 4 16
33 24 1 14
33 21 2 14
61 25 3 14
61 24 4 14
99 42 1 20
99 23 2 14
90 25 3 14
90 37 4 18
30 28 1 15
30 15 2 14
55 24 3 14
55 24 4 14
98 41 1 20
98 24 2 14
87 24 3 14
87 39 4 20
29 21 1 14
29 22 2 14
52 22 3 14
52 25 4 14
94 41 1 20
94 25 2 14
82 25 3 14
82 39 4 20
27 21 1 14
27 19 2 14
49 23 3 14
49 24 4 14
89 40 1 20
89 25 2 14
78 23 3 14
78 42 4 20
23 21 1 14
23 17 2 14
44 23 3 14
44 23 4 14
86 41 1 20
86 25 2 14
75 24 3 14
75 41 4 20
22 22 1 14
22 15 2 14
46 24 3 14
46 22 4 14
84 41 1 20
84 25 2 14
72 24 3 14
72 40 4 20
20 19 1 14
20 18 2 14
41 24 3 14
41 23 4 14
82 39 1 20
82 26 2 14
68 24 3 14
68 39 4 20
19 18 1 14
19 17 2 14
43 25 3 14
43 23 4 14
84 39 1 20
84 25 2 14
67 24 3 14
67 40 4 20
19 18 1 14
19 17 2 14
43 26 3 14
43 22 4 14
83 38 1 20
83 25 2 14
65 25 3 14
65 39 4 20
18 18 1 14
18 17 2 14
45 26 3 14
45 22 4 14
85 37 1 17
85 25 2 14
67 25 3 14
67 39 4 20
18 17 1 14
18 18 2 14
47 26 3 14
47 22 4 14
87 36 1 17
87 26 2 14
69 24 3 14
69 39 4 20
21 18 1 14
21 19 2 14
45 25 3 14
45 21 4 14
84 36 1 17
84 26 2 14
66 24 3 14
66 38 4 20
22 19 1 14
22 17 2 14
43 25 3 14
43 21 4 14
79 34 1 14
79 27 2 14
62 26 3 14
62 37 4 20
20 19 1 14
20 16 2 14
40 24 3 14
40 21 4 14
76 33 1 14
76 28 2 16
57 25 3 14
57 38 4 20
24 18 1 14
24 18 2 14
42 23 3 14
42 20 4 14
76 32 1 16
76 28 2 16
55 25 3 14
55 38 4 20
23 18 1 14
23 17 2 14
48 22 3 14
48 20 4 14
74 31 1 16
74 27 2 15
52 29 3 14
52 36 4 20
22 17 1 14
22 17 2 14
32 22 3 14
32 18 4 14
65 29 1 16
65 28 2 16
48 30 3 16
48 36 4 20
20 17 1 14
20 16 2 14
27 20 3 14
27 18 4 14
58 27 1 15
58 29 2 16
37 34 3 18
37 37 4 19
12 12 1 14
12 14 2 14
21 19 3 14
21 16 4 14
54 29 1 16
54 25 2 14
32 34 3 16
32 38 4 20
10 12 1 14
10 12 2 14
22 20 3 14
22 16 4 14
55 30 1 16
55 24 2 14
31 35 3 17
31 36 4 18
16 13 1 14
16 15 2 14
27 19 3 14
27 14 4 14
58 29 1 16
58 23 2 14
38 48 3 22
38 24 4 14
21 14 1 14
21 15 2 14
22 16 3 14
22 13 4 14
58 26 1 14
58 21 2 14
33 25 3 14
33 22 4 14
18 13 1 14
18 14 2 14
18 14 3 14
18 13 4 14
63 24 1 14
63 22 2 14
30 21 3 14
35 26 4 14
22 14 1 14
22 15 2 14
17 13 3 14
17 11 4 14
59 22 1 14
59 21 2 14
37 22 3 14
37 24 4 14
24 14 1 14
24 18 2 14
10 9 3 14
10 8 4 14
56 24 1 14
56 17 2 14
37 23 3 14
37 23 4 14
50 25 1 14
50 23 2 14
42 22 3 14
42 22 4 14
50 23 1 14
50 23 2 14
48 26 3 14
48 26 4 14
25 21 1 14
25 21 2 14
35 20 3 14
35 60 4 14
30 56 1 25
30 15 2 14
35 19 3 14
35 57 4 25
32 46 1 22
32 25 2 14
35 19 3 14
35 57 4 25
30 30 1 16
30 37 2 18
36 24 3 14
36 52 4 25
37 38 1 20
37 25 2 14
33 22 3 14
33 51 4 25
33 40 1 20
33 25 2 14
31 21 3 14
31 54 4 25
38 30 1 16
38 28 2 16
35 23 3 14
35 48 4 22
38 34 1 18
38 24 2 14
36 25 3 14
36 46 4 22
42 37 1 18
42 26 2 14
33 22 3 14
33 51 4 22
39 31 1 18
39 24 2 14
30 22 3 14
30 49 4 22
35 30 1 18
35 26 2 14
29 24 3 14
29 44 4 22
36 36 1 18
36 21 2 14
32 25 3 14
32 41 4 22
38 33 1 18
38 22 2 14
28 21 3 14
28 48 4 22
36 29 1 18
36 22 2 14
22 19 3 14
22 52 4 22
32 26 1 14
32 22 2 14
23 19 3 14
23 45 4 22
30 32 1 16
30 20 2 14
30 19 3 14
30 40 4 22
34 36 1 18
34 20 2 14
31 23 3 14
31 40 4 22
35 30 1 16
35 22 2 14
27 19 3 14
27 44 4 22
31 30 1 16
31 20 2 14
25 18 3 14
25 44 4 22
28 30 1 16
28 20 2 14
24 21 3 14
24 38 4 22
27 29 1 16
27 20 2 14
21 18 3 14
21 44 4 22
25 29 1 16
25 19 2 14
20 20 3 14
20 39 4 22
18 31 1 16
18 18 2 14
15 18 3 14
15 37 4 22
15 33 1 16
15 17 2 14
17 20 3 14
17 31 4 22
15 37 1 16
15 17 2 14
16 22 3 14
16 27 4 22
12 37 1 16
12 18 2 14
16 23 3 14
16 24 4 22
24 25 1 14
24 29 2 16
14 25 3 14
14 26 4 22
12 27 1 14
12 27 2 14
9 22 3 14
9 25 4 22

Dernière modification par temps (Le 02/03/2011, à 21:09)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#7 Le 02/03/2011, à 21:49

Darunia

Re : [résolu] concatener des fichiers en C

Hors ligne

#8 Le 02/03/2011, à 22:01

temps

Re : [résolu] concatener des fichiers en C

Merci, j'ai téléchargé le fichier, je viens de l'ouvrir, je vais l'adapter à mon fichier, je poste ce que j'obtiens.
Comme le dis le fil plus bas, le fichier téléchargé ne m'a pas aidé, mais un ami m'a indiqué aujourd'hui qu'il concatenanit en C sans probleme avec le commande :
system cat
bien que finalement je ne concatene plus, j'indique toutefois la solution pour ceux qui veulent concatener.

Dernière modification par temps (Le 06/03/2011, à 12:53)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#9 Le 02/03/2011, à 22:39

Haleth

Re : [résolu] concatener des fichiers en C

J'ai juste une question : ca sert à quoi ? (pour me renseigner, pas pour critiquer !)


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#10 Le 03/03/2011, à 01:54

temps

Re : [résolu] concatener des fichiers en C

OK, j'ai testé mais visiblement ouvrir un fichier dans un fichier deja ouvert puis faire des traitements mathématiques construit sur une base expo ne plait pas au langage C. J'ai sur un autre fil le système qui fonctionne en utilisant le langage C pour créer un bash, ici j'affine que pour le plaisir. mais je ne baisse pas les bras, je vais utiliser une autre technique, si je concatenais c'était par facilité sous bash avec la fonction cat, mais sous le langage C, en fait il me suffit de créer une simple table de conversion et ensuite d'écrire directement dans le fichier o.aiff.
Pour répondre à Haleth, le système sert à démontrer une hypothèse que je défends depuis 1993 concernant les sciences, en d'autres mots l'algèbre est incohérente et ne permet pas de modéliser. Ici je présente une application qui prouve mes dire, car je modélise les sons de la voix humaine, contrairement aux autres techniques qui encodent, nous avons bien ici une modélisation, pas d'algèbre, pas de sinus ou cosinus et pourtant un son parfais jamais égalé. Cerise sur le gateau le format de mes fichiers son est fonction de la complexité des sons et non de leurs durées, toujours bien plus léger et plus la durée est importante et plus le format son.jo représente un intérêt économique. Développement possible dans le futur après développement de pouvoir diffuser des films même sur du bas débit, applications en robotique, en ...  Pour les pro de musique voici un outil qui peut créer des sons qui n'ont même pas encore été imaginé. Il est déja fonctionnel en récupérant les fichiers que j'ai mis sur un autre fil, Le C marié au bash


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#11 Le 03/03/2011, à 03:30

temps

Re : [résolu] concatener des fichiers en C

Bien pour la suite, j'ai deux techniques qui fonctionnent, la première d'écrire directement dans le fichier me permet d'avoir quelque chose de plus léger donc c'est cette technique que je retiens, mais après plusieurs test j'ai aussi réussi à concatener en C, voici le lien qui m'a donné la solution : http://www.debian-fr.org/concatener-nom … 24442.html
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#12 Le 03/03/2011, à 12:30

Haleth

Re : [résolu] concatener des fichiers en C

Je voit ! C'est génial !


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#13 Le 03/03/2011, à 14:28

temps

Re : [résolu] concatener des fichiers en C

Je vois que j'ai pas mis comment je fais pour ecrire dans le fichier o.aiff
je l'indique ici

/* Imaginer et creer par Andre pierre jocelyn*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(int argc, char *argv[])

{

char jo0 = 0x00;
char jo1 = 0x01;
char jo2 = 0x02;
char jo3 = 0x03;
char jo4 = 0x04;
char jo5 = 0x05;
char jo6 = 0x06;
char jo7 = 0x07;
char jo8 = 0x08;
char jo9 = 0x09;
char jo10 = 0x0A;
char jo11 = 0x0B;
char jo12 = 0x0C;
char jo13 = 0x0D;
char jo14 = 0x0E;
char jo15 = 0x0F;
char jo16 = 0x10;
char jo17 = 0x11;
char jo18 = 0x12;
char jo19 = 0x13;
char jo20 = 0x14;
char jo21 = 0x15;
char jo22 = 0x16;
char jo23 = 0x17;
char jo24 = 0x18;
char jo25 = 0x19;
char jo26 = 0x1A;
char jo27 = 0x1B;
char jo28 = 0x1C;
char jo29 = 0x1D;
char jo30 = 0x1E;
char jo31 = 0x1F;
char jo32 = 0x20;
char jo33 = 0x21;
char jo34 = 0x22;
char jo35 = 0x23;
char jo36 = 0x24;
char jo37 = 0x25;
char jo38 = 0x26;
char jo39 = 0x27;
char jo40 = 0x28;
char jo41 = 0x29;
char jo42 = 0x2A;
char jo43 = 0x2B;
char jo44 = 0x2C;
char jo45 = 0x2D;
char jo46 = 0x2E;
char jo47 = 0x2F;
char jo48 = 0x30;
char jo49 = 0x31;
char jo50 = 0x32;
char jo51 = 0x33;
char jo52 = 0x34;
char jo53 = 0x35;
char jo54 = 0x36;
char jo55 = 0x37;
char jo56 = 0x38;
char jo57 = 0x39;
char jo58 = 0x3A;
char jo59 = 0x3B;
char jo60 = 0x3C;
char jo61 = 0x3D;
char jo62 = 0x3E;
char jo63 = 0x3F;
char jo64 = 0x40;
char jo65 = 0x41;
char jo66 = 0x42;
char jo67 = 0x43;
char jo68 = 0x44;
char jo69 = 0x45;
char jo70 = 0x46;
char jo71 = 0x47;
char jo72 = 0x48;
char jo73 = 0x49;
char jo74 = 0x4A;
char jo75 = 0x4B;
char jo76 = 0x4C;
char jo77 = 0x4D;
char jo78 = 0x4E;
char jo79 = 0x4F;
char jo80 = 0x50;
char jo81 = 0x51;
char jo82 = 0x52;
char jo83 = 0x53;
char jo84 = 0x54;
char jo85 = 0x55;
char jo86 = 0x56;
char jo87 = 0x57;
char jo88 = 0x58;
char jo89 = 0x59;
char jo90 = 0x5A;
char jo91 = 0x5B;
char jo92 = 0x5C;
char jo93 = 0x5D;
char jo94 = 0x5E;
char jo95 = 0x5F;
char jo96 = 0x60;
char jo97 = 0x61;
char jo98 = 0x62;
char jo99 = 0x63;
char jo100 = 0x64;
char jo101 = 0x65;
char jo102 = 0x66;
char jo103 = 0x67;
char jo104 = 0x68;
char jo105 = 0x69;
char jo106 = 0x6A;
char jo107 = 0x6B;
char jo108 = 0x6C;
char jo109 = 0x6D;
char jo110 = 0x6E;
char jo111 = 0x6F;
char jo112 = 0x70;
char jo113 = 0x71;
char jo114 = 0x72;
char jo115 = 0x73;
char jo116 = 0x74;
char jo117 = 0x75;
char jo118 = 0x76;
char jo119 = 0x77;
char jo120 = 0x78;
char jo121 = 0x79;
char jo122 = 0x7A;
char jo123 = 0x7B;
char jo124 = 0x7C;
char jo125 = 0x7D;
char jo126 = 0x7E;/*  valeur max positive */



char jo127 = 0xFF; /*  # debut valeur negative */
char jo128 = 0xFE;
char jo129 = 0xFD;
char jo130 = 0xFC;
char jo131 = 0xFB;
char jo132 = 0xFA;
char jo133 = 0xF9;
char jo134 = 0xF8;
char jo135 = 0xF7;
char jo136 = 0xF6;
char jo137 = 0xF5;
char jo138 = 0xF4;
char jo139 = 0xF3;
char jo140 = 0xF2;
char jo141 = 0xF1;
char jo142 = 0xF0;
char jo143 = 0xEF;
char jo144 = 0xEE;
char jo145 = 0xED;
char jo146 = 0xEC;
char jo147 = 0xEB;
char jo148 = 0xEA;
char jo149 = 0xE9;
char jo150 = 0xE8;
char jo151 = 0xE7;
char jo152 = 0xE6;
char jo153 = 0xE5;
char jo154 = 0xE4;
char jo155 = 0xE3;
char jo156 = 0xE2;
char jo157 = 0xE1;
char jo158 = 0xE0;
char jo159 = 0xDF;
char jo160 = 0xDE;
char jo161 = 0xDD;
char jo162 = 0xDC;
char jo163 = 0xDB;
char jo164 = 0xDA;
char jo165 = 0xD9;
char jo166 = 0xD8;
char jo167 = 0xD7;
char jo168 = 0xD6;
char jo169 = 0xD5;
char jo170 = 0xD4;
char jo171 = 0xD3;
char jo172 = 0xD2;
char jo173 = 0xD1;
char jo174 = 0xD0;
char jo175 = 0xCF;
char jo176 = 0xCE;
char jo177 = 0xCD;
char jo178 = 0xCC;
char jo179 = 0xCB;
char jo180 = 0xCA;
char jo181 = 0xC9;
char jo182 = 0xC8;
char jo183 = 0xC7;
char jo184 = 0xC6;
char jo185 = 0xC5;
char jo186 = 0xC4;
char jo187 = 0xC3;
char jo188 = 0xC2;
char jo189 = 0xC1;
char jo190 = 0xC0;
char jo191 = 0xBF;
char jo192 = 0xBE;
char jo193 = 0xBD;
char jo194 = 0xBC;
char jo195 = 0xBB;
char jo196 = 0xBA;
char jo197 = 0xB9;
char jo198 = 0xB8;
char jo199 = 0xB7;
char jo200 = 0xB6;
char jo201 = 0xB5;
char jo202 = 0xB4;
char jo203 = 0xB3;
char jo204 = 0xB2;
char jo205 = 0xB1;
char jo206 = 0xB0;
char jo207 = 0xAF;
char jo208 = 0xAE;
char jo209 = 0xAD;
char jo210 = 0xAC;
char jo211 = 0xAB;
char jo212 = 0xAA;
char jo213 = 0xA9;
char jo214 = 0xA8;
char jo215 = 0xA7;
char jo216 = 0xA6;
char jo217 = 0xA5;
char jo218 = 0xA4;
char jo219 = 0xA3;
char jo220 = 0xA2;
char jo221 = 0xA1;
char jo222 = 0xA0;
char jo223 = 0x9F;
char jo224 = 0x9E;
char jo225 = 0x9D;
char jo226 = 0x9C;
char jo227 = 0x9B;
char jo228 = 0x9A;
char jo229 = 0x99;
char jo230 = 0x98;
char jo231 = 0x97;
char jo232 = 0x96;
char jo233 = 0x95;
char jo234 = 0x94;
char jo235 = 0x93;
char jo236 = 0x92;
char jo237 = 0x91;
char jo238 = 0x90;
char jo239 = 0x8F;
char jo240 = 0x8E;
char jo241 = 0x8D;
char jo242 = 0x8C;
char jo243 = 0x8B;
char jo244 = 0x8A;
char jo245 = 0x89;
char jo246 = 0x88;
char jo247 = 0x87;
char jo248 = 0x86;
char jo249 = 0x85;
char jo250 = 0x84;
char jo251 = 0x83;
char jo252 = 0x82;
char jo253 = 0x81;
char jo254 = 0x80;


FILE* debutaiff = NULL;
debutaiff = fopen("gkri-son-base/o.aiff", "wb+");
    if (debutaiff != NULL)
 {

fprintf(debutaiff,"FORM" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,">" );
fwrite(&jo240, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"AIFFCOMM" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo18, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo1, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,">" );
fwrite(&jo96, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo8, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"@" );
fwrite(&jo14, sizeof(char), 1, debutaiff);
fwrite(&jo210, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"D" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"SSND" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,">h" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
int boucle = 1;
  while (boucle < 21)
{
fwrite(&jo127, sizeof(char), 1, debutaiff);
boucle++;
}

   fclose(debutaiff), debutaiff = NULL;;

 }

Dernière modification par temps (Le 03/03/2011, à 15:51)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#14 Le 03/03/2011, à 18:23

temps

Re : [résolu] concatener des fichiers en C

Je but sur la manipulation des chaines de caractères. Quand j'associe les lettres jo au chiffre calculé de manière pour retrouver ma table de conversion, j'ai une erreur, si quelqu'un veut bien regarder le code ?

Je donne la solution, l'erreur que je faisais dans cette table, c'est que je définissais des constantes comme si c'était des variables. Quand j'ai remplacé le tout par #define jo0 0x0 à la place de char jo0 = 0x00;   cela a bien fonctionné


/* Imaginer et creer par Andre pierre jocelyn*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>




int main(int argc, char *argv[])

{

char jo0 = 0x00;
char jo1 = 0x01;
char jo2 = 0x02;
char jo3 = 0x03;
char jo4 = 0x04;
char jo5 = 0x05;
char jo6 = 0x06;
char jo7 = 0x07;
char jo8 = 0x08;
char jo9 = 0x09;
char jo10 = 0x0A;
char jo11 = 0x0B;
char jo12 = 0x0C;
char jo13 = 0x0D;
char jo14 = 0x0E;
char jo15 = 0x0F;
char jo16 = 0x10;
char jo17 = 0x11;
char jo18 = 0x12;
char jo19 = 0x13;
char jo20 = 0x14;
char jo21 = 0x15;
char jo22 = 0x16;
char jo23 = 0x17;
char jo24 = 0x18;
char jo25 = 0x19;
char jo26 = 0x1A;
char jo27 = 0x1B;
char jo28 = 0x1C;
char jo29 = 0x1D;
char jo30 = 0x1E;
char jo31 = 0x1F;
char jo32 = 0x20;
char jo33 = 0x21;
char jo34 = 0x22;
char jo35 = 0x23;
char jo36 = 0x24;
char jo37 = 0x25;
char jo38 = 0x26;
char jo39 = 0x27;
char jo40 = 0x28;
char jo41 = 0x29;
char jo42 = 0x2A;
char jo43 = 0x2B;
char jo44 = 0x2C;
char jo45 = 0x2D;
char jo46 = 0x2E;
char jo47 = 0x2F;
char jo48 = 0x30;
char jo49 = 0x31;
char jo50 = 0x32;
char jo51 = 0x33;
char jo52 = 0x34;
char jo53 = 0x35;
char jo54 = 0x36;
char jo55 = 0x37;
char jo56 = 0x38;
char jo57 = 0x39;
char jo58 = 0x3A;
char jo59 = 0x3B;
char jo60 = 0x3C;
char jo61 = 0x3D;
char jo62 = 0x3E;
char jo63 = 0x3F;
char jo64 = 0x40;
char jo65 = 0x41;
char jo66 = 0x42;
char jo67 = 0x43;
char jo68 = 0x44;
char jo69 = 0x45;
char jo70 = 0x46;
char jo71 = 0x47;
char jo72 = 0x48;
char jo73 = 0x49;
char jo74 = 0x4A;
char jo75 = 0x4B;
char jo76 = 0x4C;
char jo77 = 0x4D;
char jo78 = 0x4E;
char jo79 = 0x4F;
char jo80 = 0x50;
char jo81 = 0x51;
char jo82 = 0x52;
char jo83 = 0x53;
char jo84 = 0x54;
char jo85 = 0x55;
char jo86 = 0x56;
char jo87 = 0x57;
char jo88 = 0x58;
char jo89 = 0x59;
char jo90 = 0x5A;
char jo91 = 0x5B;
char jo92 = 0x5C;
char jo93 = 0x5D;
char jo94 = 0x5E;
char jo95 = 0x5F;
char jo96 = 0x60;
char jo97 = 0x61;
char jo98 = 0x62;
char jo99 = 0x63;
char jo100 = 0x64;
char jo101 = 0x65;
char jo102 = 0x66;
char jo103 = 0x67;
char jo104 = 0x68;
char jo105 = 0x69;
char jo106 = 0x6A;
char jo107 = 0x6B;
char jo108 = 0x6C;
char jo109 = 0x6D;
char jo110 = 0x6E;
char jo111 = 0x6F;
char jo112 = 0x70;
char jo113 = 0x71;
char jo114 = 0x72;
char jo115 = 0x73;
char jo116 = 0x74;
char jo117 = 0x75;
char jo118 = 0x76;
char jo119 = 0x77;
char jo120 = 0x78;
char jo121 = 0x79;
char jo122 = 0x7A;
char jo123 = 0x7B;
char jo124 = 0x7C;
char jo125 = 0x7D;
char jo126 = 0x7E;/*  valeur max positive */



char jo127 = 0xFF; /*  # debut valeur negative */
char jo128 = 0xFE;
char jo129 = 0xFD;
char jo130 = 0xFC;
char jo131 = 0xFB;
char jo132 = 0xFA;
char jo133 = 0xF9;
char jo134 = 0xF8;
char jo135 = 0xF7;
char jo136 = 0xF6;
char jo137 = 0xF5;
char jo138 = 0xF4;
char jo139 = 0xF3;
char jo140 = 0xF2;
char jo141 = 0xF1;
char jo142 = 0xF0;
char jo143 = 0xEF;
char jo144 = 0xEE;
char jo145 = 0xED;
char jo146 = 0xEC;
char jo147 = 0xEB;
char jo148 = 0xEA;
char jo149 = 0xE9;
char jo150 = 0xE8;
char jo151 = 0xE7;
char jo152 = 0xE6;
char jo153 = 0xE5;
char jo154 = 0xE4;
char jo155 = 0xE3;
char jo156 = 0xE2;
char jo157 = 0xE1;
char jo158 = 0xE0;
char jo159 = 0xDF;
char jo160 = 0xDE;
char jo161 = 0xDD;
char jo162 = 0xDC;
char jo163 = 0xDB;
char jo164 = 0xDA;
char jo165 = 0xD9;
char jo166 = 0xD8;
char jo167 = 0xD7;
char jo168 = 0xD6;
char jo169 = 0xD5;
char jo170 = 0xD4;
char jo171 = 0xD3;
char jo172 = 0xD2;
char jo173 = 0xD1;
char jo174 = 0xD0;
char jo175 = 0xCF;
char jo176 = 0xCE;
char jo177 = 0xCD;
char jo178 = 0xCC;
char jo179 = 0xCB;
char jo180 = 0xCA;
char jo181 = 0xC9;
char jo182 = 0xC8;
char jo183 = 0xC7;
char jo184 = 0xC6;
char jo185 = 0xC5;
char jo186 = 0xC4;
char jo187 = 0xC3;
char jo188 = 0xC2;
char jo189 = 0xC1;
char jo190 = 0xC0;
char jo191 = 0xBF;
char jo192 = 0xBE;
char jo193 = 0xBD;
char jo194 = 0xBC;
char jo195 = 0xBB;
char jo196 = 0xBA;
char jo197 = 0xB9;
char jo198 = 0xB8;
char jo199 = 0xB7;
char jo200 = 0xB6;
char jo201 = 0xB5;
char jo202 = 0xB4;
char jo203 = 0xB3;
char jo204 = 0xB2;
char jo205 = 0xB1;
char jo206 = 0xB0;
char jo207 = 0xAF;
char jo208 = 0xAE;
char jo209 = 0xAD;
char jo210 = 0xAC;
char jo211 = 0xAB;
char jo212 = 0xAA;
char jo213 = 0xA9;
char jo214 = 0xA8;
char jo215 = 0xA7;
char jo216 = 0xA6;
char jo217 = 0xA5;
char jo218 = 0xA4;
char jo219 = 0xA3;
char jo220 = 0xA2;
char jo221 = 0xA1;
char jo222 = 0xA0;
char jo223 = 0x9F;
char jo224 = 0x9E;
char jo225 = 0x9D;
char jo226 = 0x9C;
char jo227 = 0x9B;
char jo228 = 0x9A;
char jo229 = 0x99;
char jo230 = 0x98;
char jo231 = 0x97;
char jo232 = 0x96;
char jo233 = 0x95;
char jo234 = 0x94;
char jo235 = 0x93;
char jo236 = 0x92;
char jo237 = 0x91;
char jo238 = 0x90;
char jo239 = 0x8F;
char jo240 = 0x8E;
char jo241 = 0x8D;
char jo242 = 0x8C;
char jo243 = 0x8B;
char jo244 = 0x8A;
char jo245 = 0x89;
char jo246 = 0x88;
char jo247 = 0x87;
char jo248 = 0x86;
char jo249 = 0x85;
char jo250 = 0x84;
char jo251 = 0x83;
char jo252 = 0x82;
char jo253 = 0x81;
char jo254 = 0x80;


FILE* debutaiff = NULL;
debutaiff = fopen("gkri-son-base/o.aiff", "wb+");
    if (debutaiff != NULL)
 {

fprintf(debutaiff,"FORM" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,">" );
fwrite(&jo240, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"AIFFCOMM" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo18, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo1, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,">" );
fwrite(&jo96, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo8, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"@" );
fwrite(&jo14, sizeof(char), 1, debutaiff);
fwrite(&jo210, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"D" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,"SSND" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fprintf(debutaiff,">h" );
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
fwrite(&jo0, sizeof(char), 1, debutaiff);
int boucle = 1;
  while (boucle < 21)
{
fwrite(&jo127, sizeof(char), 1, debutaiff);
boucle++;
}

   fclose(debutaiff), debutaiff = NULL;;

 }
/*j ouvre mon fichier de donner*/
    FILE* oups = NULL;




    oups = fopen("son.jo", "r");

    if (oups != NULL)
  {

    int nbdepoints, sens, amplitude;
    double jo;

   while (  fscanf(oups,"%d %d %d %lf", &amplitude, &nbdepoints, &sens, &jo) !=EOF )

    /*   fscanf(oups,"%d %d %d %d", &amplitude, &nbdepoints, &sens, &jo);    != NULL      */
   {
double codebash;

if(sens==1)
    {
FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");/* pour ajouter a. possible  w ou r+  w+ tester  */

    if (script != NULL)

     {

         int boucle = 1;
  while (boucle < nbdepoints+1)
      {
codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100;
/*
fprintf(script,"%d ", (int)codebash );
*/

char passe[]={"jo%s", (int)codebash};

fwrite(&passe, sizeof(char), 1, script);


/*fin modif*/

   boucle++;
       }

   fclose(script), script = NULL;;

  }

    }

if(sens==2)
{
FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");

    if (script != NULL)
    {

    int boucle;
    boucle = nbdepoints;
while ( boucle > 0)
          {
  codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100;
/*
fprintf(script,"%d ", (int)codebash );
*/

char passe[]={"jo%s", (int)codebash};

fwrite(&passe, sizeof(char), 1, script);
/*fin modif*/
  boucle--;
           }

   fclose(script), script = NULL;;


     }
    }

if(sens==3)
    {

     FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");

    if (script != NULL)
    {

  int boucle = 1;
  while (boucle < nbdepoints+1)
          {

  codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100+126;
/*
fprintf(script,"%d ", (int)codebash );
*/
char passe[]={"jo%s", (int)codebash};

fwrite(&passe, sizeof(char), 1, script);
/*fin modif*/
   boucle++;
           }

   fclose(script), script = NULL;;


     }
    }
if(sens==4)
{
    FILE* script = NULL;

    script = fopen("gkri-son-base/o.aiff", "ab");

    if (script != NULL)
    {

    int boucle;
    boucle = nbdepoints;
while ( boucle > 0)
          {
  codebash = 126 * amplitude * ( 1 - exp (-boucle/jo))/100+126;
/*
fprintf(script,"%d ", (int)codebash );
*/
char passe[]={"jo%s", (int)codebash};

fwrite(&passe, sizeof(char), 1, script);
/*fin modif*/
   boucle--;
           }

   fclose(script), script = NULL;;


     }
    }
  }
        fclose(oups);



 }
  return 0;
}

Dernière modification par temps (Le 03/04/2011, à 14:10)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne