Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

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

nombre réponses : 25

#0 Re : -1 »  Organisation / gestion de version pour projet composé » Le 24/07/2016, à 22:03

claudius01
Réponses : 3

Bonsoir,

Ma réponse sera inversement proportionnelle à tes explications et soucis...

Si SVN et autres Gestionnaires de Versions que tu cites ne te satisfont pas, je crains que tu doives en réinventer un autre ;-).

Plus sérieusement, remet toi en cause et organise ton projet qui est pour moi plusieurs projets avec des interdépendances qui peuvent se décliner en autant de repositories depuis lesquels chaque développeur pourra "piocher" sans devoir "descendre" la totalité desdits projets, chose qui n'est effectivement pas souhaitable et dans la mesure où chaque projet propose en final des livrables directement utilisables...

#1 Re : -1 »  Langage C : transformer une chaîne de caractères numériques en nombre » Le 25/07/2016, à 22:47

claudius01
Réponses : 6

Bonsoir,

Hitec-user a écrit :

... @ (post #8) [RESOLU] Langage C : code ascii d'un entier: Mon test fonctionne. isdigit ne m'a pas servi, j'ai préféré faire le test "à la main".

Très mauvaise habitude de refaire ce qui a déjà été écrit et qui fonctionne depuis des lustres ;-).

En reprenant uniquement la fonction int saisie_valide() à périmètre fonctionnel équivalent:

#include <stdio.h>
#include <ctype.h>

char saisie[5] = { '0', '2', '3', '4', '9' };

int saisie_valide() {

   int i=0;
   int test=1;

   while (i<sizeof(saisie) && test==1) {
      printf("saisie[%d] = [%d] = '%c'\n", i,  saisie[i], saisie[i]);

      /* if (((int)saisie[i]<48 || (int)saisie[i]>57) && (int)saisie[i]!=0) ou encore
         if (((int)saisie[i]<'0' || (int)saisie[i]>'9') && (int)saisie[i]!=0)
         => Expression dans laquelle on reconnait un isdigit() ;-)
      */
      if (!isdigit((int)saisie[i]) && (int)saisie[i] != 0)
         test=0;

      i++;
   }
   return test;
}

int main(void)
{
   int rtn = saisie_valide();
   printf("rtn saisie_valide() = [%d]\n\n", rtn);

   saisie[0] = '/';  /* Erreur volontaire sur 1er caractère */
   rtn = saisie_valide();
   printf("rtn saisie_valide() = [%d]\n\n", rtn);

   saisie[0] = '0';
   saisie[4] = ':';  /* Erreur volontaire sur dernier caractère */
   rtn = saisie_valide();
   printf("rtn saisie_valide() = [%d]\n\n", rtn);
   return 0;
}

pi@raspberrypi ~/Tmp $ gcc -Wall -o Hitec-user Hitec-user.c && ./Hitec-user
saisie[0] = [48] = '0'
saisie[1] = [50] = '2'
saisie[2] = [51] = '3'
saisie[3] = [52] = '4'
saisie[4] = [57] = '9'
rtn saisie_valide() = [1]

saisie[0] = [47] = '/'
rtn saisie_valide() = [0]

saisie[0] = [48] = '0'
saisie[1] = [50] = '2'
saisie[2] = [51] = '3'
saisie[3] = [52] = '4'
saisie[4] = [58] = ':'
rtn saisie_valide() = [0]

A l'occasion Hitec-user, jette un coup d'oeil sur: GNU libc: Function and Macro Index, liste exhaustive ou presque qui devrait être apprise et connue ou du moins consultée en 1er lieu car la syntaxe du Langage ... ne fait pas tout. Ceci est valable quel que soit le Langage et son écosystème...

#2 Re : -1 »  [RESOLU] Langage C : code ascii d'un entier » Le 13/07/2016, à 22:10

claudius01
Réponses : 10

Bonsoir,

Bienvenu Hitec-user sur ce forum et dans l’écosystème de ce puissant Langage C ;-)
Pour ton problème, il existe une série de macros définies comme suit: isalpha, isalnum, isascii, etc. and Co à coller juste derrière ton commentaire:

   ...
   /* bout de code qui vérifie le code ascii de x */
   if (isdigit(x)) {
      /* x est un chiffre entre entre '0' et '9' */
      valide = 1;
   }
   ...

NB: C'est bizarre, tu avais déjà inclus le <ctype.h> et je ne comprends pas ton commentaire sur la même ligne ?:-)

#3 Re : -1 »  [RESOLU] Langage C : code ascii d'un entier » Le 13/07/2016, à 22:57

claudius01
Réponses : 10

Effectivement, j'ai écrit une grosse bêtise car je ne n'utilise jamais scanf() qui est d'ailleurs à bannir, car s’arrêta de parser dès qu'un caractère non numérique sera saisi du fait du %d ...

Utilise donc une saisie caractère avec %c, %s ou mieux avec autre méthode comme getchar(), puis passer le résultat dans un strtol() qui peut travailler dans n'importe qu'elle base (ici, cela sera la base 10 ;-)

#4 Re : -1 »  Convertir texte en tableau en ligne de commande? [RÉSOLU] » Le 17/07/2016, à 19:26

claudius01
Réponses : 5

Bonjour,

Pour transformer du texte en html (très utilisé pour écrire de la documentation et être lue avec un navigateur), il y a aussi:
- Markdown
- reStructuredText

#5 Re : -1 »  Lire et ecrir un fichier XML » Le 10/07/2016, à 18:39

claudius01
Réponses : 4

Bonsoir,

Cf. libxml2 avec Paquet : libxml2 (2.9.1+dfsg1-3ubuntu4.8 et autres) [security], qui fonctionne sur de multiples plates-formes...

Très puissante cette libxml2 avec une extension xslt ;-)

NB: @ "Si par la même occasion quelqu’un sait s'il en existe une pour compresser et recompresser un fichier, je suis preneur." ... euh, il y a zlib également disponible sur de multiples plates-formes...

#6 Re : -1 »  [RESOLU] Sauvegarde Gedit avec numéros de lignes » Le 29/06/2016, à 22:09

claudius01
Réponses : 9

Bonsoir,

Bien que résolu, j'utilise pour ce genre d'opération awk qui permet de présenter le numéro de ligne comme bon me semble...

$ cat prg1.c | awk 'BEGIN{line=1}{printf("%2u    %s\n", line++, $0);}'

 1    #include <stdio.h>
 2    #include <string.h>
 3    #include <stdlib.h>
 4
 5    union VALUE_24_BITS {
 6      unsigned int i;
 7      struct {
 8        unsigned int lsb   : 8;
 9        unsigned int mid   : 8;
10        unsigned int msb   : 8;
11        unsigned int dummy : 8;
12      }s;
13    } value_24_bits;
14
...

ou encore:

$ cat prg1.c | awk 'BEGIN{line=1}{printf("[%05u]: %s\n", line++, $0);}'

[00001]: #include <stdio.h>
[00002]: #include <string.h>
[00003]: #include <stdlib.h>
[00004]:
[00005]: union VALUE_24_BITS {
[00006]:   unsigned int i;
[00007]:   struct {
[00008]:     unsigned int lsb   : 8;
[00009]:     unsigned int mid   : 8;
[00010]:     unsigned int msb   : 8;
[00011]:     unsigned int dummy : 8;
[00012]:   }s;
[00013]: } value_24_bits;
[00014]:
...

Toute la puissance de awk et le formatage du printf du Langage C pour faire ce que l'on veut voire plus au delà du numéro de ligne à présenter ;-)

#7 Re : -1 »  Recherche de langage pr programmation algorithmique : finance 2 marché » Le 17/06/2016, à 21:59

claudius01
Réponses : 8

Bonsoir,

Également et avec grand intérêt...

Sgt.KA: Cela serait bien le diable si parmi tous ces langages, tu ne trouves pas ton bonheur ;-)
- List of programming languages
- Concurrent computing

#8 Re : -1 »  compilation de slingscold » Le 25/05/2016, à 08:36

claudius01
Réponses : 5

Bonjour,

Peut être un problème d'ordre dans la définition de -lm à l'édition de lien (sujet déjà abordé sur le forum ;-)

#9 Re : -1 »  interraction avec un script shell » Le 22/05/2016, à 15:32

claudius01
Réponses : 27

Bonjour,

Une proposition peut-être idiote: Comme il semble que tu sois en local, ne peux-tu pas modifier le script php ?;-)

#10 Re : -1 »  interraction avec un script shell » Le 22/05/2016, à 15:58

claudius01
Réponses : 27

Ok, est-il possible alors de connaître comment est implémenté ce "yes" de confirmation dans le ou les scripts php ?

#11 Re : -1 »  interraction avec un script shell » Le 22/05/2016, à 16:37

claudius01
Réponses : 27

Peut-être qu'en recherchant dans le projet des termes comme "Please confirm that you..." et/ou "CONFIRM_DELETE", tu localiseras l'endroit où agir ... Je commence à comprendre pourquoi la commande "yes" de bash est inopérante ;-)

#12 Re : -1 »  interraction avec un script shell » Le 22/05/2016, à 17:52

claudius01
Réponses : 27
sny75 a écrit :

Le problème c'est que je ne trouve pas le bout de code : php /apps/user/www/public/index.php script
Je ne sais pas où chercher.

Shanx a écrit :

sny75, tu avais bien remplacé mon "yes" par "CONFIRM_DELETE", n'est-ce pas ?

sny75 a écrit :

oui!

Mais non j'ai mis YES sur le forum, j'ai fait le remplacement dans mon script ne t'inquiètes pas smile

Il est impossible d'envoyer automatiquement "CONFIRM_DELETE" donc ?

Désolé, mais j'ai du mal à suivre ce dialogue qui déroute mon esprit cartésien ;-)

#13 Re : -1 »  interraction avec un script shell » Le 22/05/2016, à 20:32

claudius01
Réponses : 27

Avant de synchroniser avec "expect", tu peux mettre un "set  timeout  30" (durée à définir @ aux dates/heures de la trace).
Cela permettra de lever le doute entre ce qui est attendu et ce qui doit être émis...
Cf. 2. Timeout On Expect String

#14 Re : -1 »  Python, écriture et encodage dans un fichier » Le 22/05/2016, à 12:55

claudius01
Réponses : 25

Bonjour,

msg21 a écrit :

Ya t-il un moyen que quand on fait open ou write on évite que le fichier se charge tout entier dans la mémoire ram pour ne pas la saturer ?

Tout d'abord, un fichier tout entier est rarement chargé en mémoire sauf naturellement si celui-ci est de taille "raisonnable" par rapport à la RAM (Linux fait ce qu'il veut @ à ses critères d'optimisation en occupation ressources mémoire, cpu, I/O, accès verrouillés, etc.)

Après, si la RAM est saturée (et là des mécanismes de swap rentrent en action ;-), de toute façon certaines pages représentant le fichier non utilisées à instant t iront sur disque pour libérer justement de la mémoire et seront rapatriées en RAM si besoin est. De plus, tout dépend du système de fichiers (cf. ZFS qui privilégie la mémoire et est sans limite de taille de fichier ;-).

En résumé, le sujet n'est pas simple et affaire de spécialistes que je ne suis pas, et comme je connais, msg21, ton expression des besoins en terme de calculs très gourmands en mémoire, je crains que tu doives t'orienter vers un traitement distribué sur plusieurs serveurs (cf. RESOLU ET PUBLIE Test d'un code python (SVP) post #33)...

#15 Re : -1 »  Paquet snap » Le 19/05/2016, à 19:49

claudius01
Réponses : 12

Bonsoir,

J'aurai tendance à penser qu'il ne faut pas se précipiter sur ce nouveau système de package sauf pour la culture générale car je crains qu'il y ait un gros retour arrière voire un abandon temporaire du concept du fait de la non adoption de la chose (et si en plus son utilisation n'est pas clair !;-).

Vous n'êtes pas sans savoir sans doute que Snap met en danger la sécurité d’Ubuntu 16.04 LTS (à confirmer / infirmer)

A suivre...

#16 Re : -1 »  Paquet snap » Le 19/05/2016, à 21:47

claudius01
Réponses : 12

Moi, ce qui me gène le plus dans ce système de packaging est que "tout" est livré ce qui peut paraître un avantage à première vue car l'ensemble est cohérent et autonome à l'installation et peut même cohabiter avec les mêmes librairies à d'autres versions mais en conséquence, c'est au responsable du package de s'assurer des évolutions de l'ensemble ... ce qui n'est en général pas une simple affaire sans parler des divers sujets auxquels il faut s'intéresser ;-)

Cf. Snap de Ubuntu, bonne ou mauvaise nouvelle ?

Maintenant, ce principe est déjà utilisé dans d'autres environnements jusqu'à parfois livrer une VM complète lorsque l'ensemble est très conséquent ;-)

#17 Re : -1 »  Probleme de lien apres mise a niveau » Le 18/05/2016, à 18:53

claudius01
Réponses : 2

Bonjour,

J'ajouterais @derderder, travaille-tu, bird12358, avec OpenCV ?
Auquel cas, cela est peut-être un simple ordre et/ou précision de définition des librairies dans l'édition de lien...
Cf. notamment: OpenCV linking problems

Il serait intéressant pour continuer à t'aider d'avoir l'ensemble de la commande ainsi que la sortie écran + version d'avant / après lors de la mise à jour de Ubuntu.

Merci par avance

#18 Re : -1 »  Question très simple en C » Le 12/05/2016, à 10:27

claudius01
Réponses : 12

Bonjour,

BenjiBoy, tu es sous Linux en Langage C et donc: Recherche linux langage c ecriture fichier...

Cf. en autre (mais il y a moult topics ;-), comme Cours Langage C - Lecture & Écriture dans des fichiers ;-)

#19 Re : -1 »  Question très simple en C » Le 18/05/2016, à 10:38

claudius01
Réponses : 12

Bonjour,

BenjiBoy a écrit :

... c'est vraiment pas trivial à découvrir le C ... Loin d'être instinctif.
...
J'ai mal syntaxé ?

- C'est comme tout, faut s'investir un peu voire beaucoup ;-)
- Mauvaise syntaxe du fprintf() effectivement: cf. man printf and Co...

#20 Re : -1 »  [RESOLU] Eclipse : Tomcat v7.0 server : Le champ "server name" vide. » Le 13/05/2016, à 13:01

claudius01
Réponses : 6

Bonjour,

steph33_1 a écrit :

... Malheureusement dans mon workspace, je ne trouve pas le dossier metadata.

Là déjà, je pense que tu as un énorme problème d'installation d'Eclispe car, sauf erreur de ma part, ce répertoire est de base quelle que soit l'utilisation dont on fait d'Eclipse (Java, Langage C, Plugings, etc. ;-)

Ne serait-ce pas un chemin que tu n'aurais pas identifié ?

#21 Re : -1 »  installation intel fortran sous ubuntu 14.04 » Le 13/05/2016, à 17:25

claudius01
Réponses : 7

Bonjour,

badr220 a écrit :

Je vous remercie de votre réponse en fait c'est vrai [que j'ai] déjà Fortran est déjà d'installé sur ma machine et je voulais installer un autre logiciel Wien2k qui nécessite un compilateur puissant un de mes collègues m'a conseillé d'utiliser Intel Fortran

- C'est quoi un compilateur "puissant" ?
- Sauf erreur de ma part, ifort nécessitera une licence; d'ailleurs le fichier NCOM_NCOM_L_CMP_FOR_NR2M-JDFWKMCZ.lic est en cela assez explicite ;-)

#22 Re : -1 »  Pas assez de mémoire ? » Le 11/05/2016, à 19:36

claudius01
Réponses : 11

Chose faite sur un CentOS 7.0 - 2 GBytes
-----------------------------------------------------

[claudius@CentOS-7 msg21]$ time python test1.py

number of cities=
(0, 'Time:', 0.0006401538848876953)
The program is looking for the Hamiltonien cycles...
(1, 'Time:', 0.0006880760192871094)
The program is looking for the Hamiltonien cycles...
(2, 'Time:', 0.0008611679077148438)
The program is looking for the Hamiltonien cycles...
(3, 'Time:', 0.001049041748046875)
The program is looking for the Hamiltonien cycles...
(4, 'Time:', 0.0017211437225341797)
The program is looking for the Hamiltonien cycles...
(5, 'Time:', 0.0027701854705810547)
The program is looking for the Hamiltonien cycles...
(6, 'Time:', 0.0055010318756103516)
The program is looking for the Hamiltonien cycles...
(7, 'Time:', 0.01064610481262207)
The program is looking for the Hamiltonien cycles...
(8, 'Time:', 0.020989179611206055)
The program is looking for the Hamiltonien cycles...
(9, 'Time:', 0.04163718223571777)
The program is looking for the Hamiltonien cycles...
(10, 'Time:', 0.08366107940673828)
The program is looking for the Hamiltonien cycles...
(11, 'Time:', 0.16598916053771973)
The program is looking for the Hamiltonien cycles...
(12, 'Time:', 0.3309650421142578)
The program is looking for the Hamiltonien cycles...
(13, 'Time:', 0.6724181175231934)
The program is looking for the Hamiltonien cycles...
(14, 'Time:', 1.3934299945831299)
The program is looking for the Hamiltonien cycles...
(15, 'Time:', 2.8240129947662354)
The program is looking for the Hamiltonien cycles...
(16, 'Time:', 5.862574100494385)
The program is looking for the Hamiltonien cycles...
(17, 'Time:', 11.961552143096924)
The program is looking for the Hamiltonien cycles...
(18, 'Time:', 24.185943126678467)
The program is looking for the Hamiltonien cycles...
(19, 'Time:', 48.99826502799988)
The program is looking for the Hamiltonien cycles...
(20, 'Time:', 98.29603719711304)
The program is looking for the Hamiltonien cycles...
('Time:', 98.55295014381409)
end

real    1m41.966s
user    1m40.292s
sys     0m1.393s

75% de la mémoire occupée à la dernière itération et 0% de swap ;-)

#23 Re : -1 »  Pas assez de mémoire ? » Le 12/05/2016, à 22:44

claudius01
Réponses : 11

Bonsoir,

???, sauf erreur de ma part, je ne vois dans le programme qu'un break déjà commenté; à savoir:

...
                print("Time:", time.time() - start)
                #break #break if we want only one cycle
...

Question: Faut-il le "décommenter" ?

#24 Re : -1 »  Pas assez de mémoire ? » Le 13/05/2016, à 10:17

claudius01
Réponses : 11

Bonjour,

Oups, j'avais pas vu la réédition de ton 1st post ;-)
Sinon, j'ai dû arrêter à 90% de RAM occupée sur les 2 GBytes configurées

[claudius@CentOS-7 msg21]$ time python test2.py

number of cities=
(0, 'Time:', 0.0009260177612304688)
The program is looking for the Hamiltonien cycles...
(1, 'Time:', 0.0010600090026855469)
The program is looking for the Hamiltonien cycles...
(2, 'Time:', 0.0012359619140625)
The program is looking for the Hamiltonien cycles...
(3, 'Time:', 0.001528024673461914)
The program is looking for the Hamiltonien cycles...
(4, 'Time:', 0.0030219554901123047)
The program is looking for the Hamiltonien cycles...
(5, 'Time:', 0.00427699089050293)
The program is looking for the Hamiltonien cycles...
(6, 'Time:', 0.006422996520996094)
The program is looking for the Hamiltonien cycles...
(7, 'Time:', 0.011628866195678711)
The program is looking for the Hamiltonien cycles...
(8, 'Time:', 0.020798921585083008)
The program is looking for the Hamiltonien cycles...
(9, 'Time:', 0.04274296760559082)
The program is looking for the Hamiltonien cycles...
(10, 'Time:', 0.08706092834472656)
The program is looking for the Hamiltonien cycles...
(11, 'Time:', 0.16997599601745605)
The program is looking for the Hamiltonien cycles...
(12, 'Time:', 0.33658504486083984)
The program is looking for the Hamiltonien cycles...
(13, 'Time:', 0.6668870449066162)
The program is looking for the Hamiltonien cycles...
(14, 'Time:', 1.35211181640625)
The program is looking for the Hamiltonien cycles...
(15, 'Time:', 2.733891010284424)
The program is looking for the Hamiltonien cycles...
(16, 'Time:', 5.589372873306274)
The program is looking for the Hamiltonien cycles...
(17, 'Time:', 11.512418985366821)
The program is looking for the Hamiltonien cycles...
(18, 'Time:', 23.469934940338135)
The program is looking for the Hamiltonien cycles...
(19, 'Time:', 47.485546827316284)
The program is looking for the Hamiltonien cycles...
(20, 'Time:', 95.51285290718079)
The program is looking for the Hamiltonien cycles...
('Time:', 95.77054500579834)
(21, 'Time:', 95.7706139087677)
The program is looking for the Hamiltonien cycles...

^C
Traceback (most recent call last):
  File "test2.py", line 115, in <module>
    if T[0]<=0 or (j in R(T) and j!=0):
  File "test2.py", line 31, in R
    U.append(T[i+1])
KeyboardInterrupt

real    2m6.098s
user    2m3.986s
sys     0m1.813s