Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1528 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Help CUPS]Programme de régulation d'impression

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Help CUPS]Programme de régulation d'impression

n°1177035
C501
ID PSN : Ur-501
Posté le 04-11-2009 à 12:38:54  profilanswer
 

Bonjour,
 
Je cherchais à programmer un petit logiciel de serveur d'impression sous UNIX (ici ca sera mac, mais je vois rien qui empècherait sa diffusion sur linux) mais deux points bloquent franchement sans que je sache pourquoi... Ca fait des mois que je suis dessus (noob mais accroché) donc bon j'ai décidé de me tourner vers vous ...
 
L'idée était pourtant simple :
- Un fichier pour les Noms (N)
- Un parallèle pour les mots de passe (M)
- Un pour les quotas (tj écrit dans le même ordre que les noms et mdp) (Q)
- et deux fichiers pour les opérations sur les quotas, un pour pouvoir écrire les nouveaux quotas après chaque impression (Qc) , un pour réinitialiser les compteurs tous les mois (Qb) (un petit script bash s'en occupe)
 
Mais j'ai deux problèmes :
- le système de réécriture de quota ne fonctionne pas, il n'écrit que le chiffre qui a baissé en oubliant tous les autres quotas d'avant (ou d'après ca jai pas testé)
- la fonction CUPS que je n'ai pas comprise malgré les tutos sur leur site  :sweat:  
 
Donc voila, si vous pouviez m'aider sur ces points, la réponse est sûrement très bête mais je ne la vois pas. Je m'acharne là dessus pour une association donc rassurez vous on a pas payé un noob comme moi pour ca, je me suis proposé d'essayer et c'est bête de rater si près du but :
 
C++ et une fonction Bash
 

Code :
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. #include <sstream>
  5. using namespace std;
  6. void ecriture (long Cpt, long quota)
  7. {
  8. ifstream Quota1("/Library/Lab/Q.rtf", ios::in);
  9. ofstream QuotaC("/Library/Lab/Qc.rtf", ios::trunc);
  10. if (Quota1 && QuotaC)
  11. {
  12.  cout << "Ouverture Réussie \n";
  13.  string ligne;
  14.  int i = 1;
  15.  while (i>Cpt)
  16.  {
  17.   getline(Quota1, ligne);
  18.   QuotaC << ligne;
  19.   cout << ligne;
  20.   i++;
  21.  }
  22.  QuotaC << quota;
  23.  getline(Quota1, ligne);
  24.  cout << "post cpt \n";
  25.  while (getline(Quota1, ligne))
  26.  {
  27.   QuotaC << ligne;
  28.  }
  29.  system("cp /Library/Lab/Qc.rtf /Library/Lab/Q.rtf" );
  30.  Quota1.close();
  31.  QuotaC.close();
  32. }
  33. }
  34. int main (int argc, char * const argv[])
  35. {
  36. string Nom, Mdp, Ass, ligne;
  37. long Cpt=1, quota;
  38.     cout << "Bonjour, entrez nom\n";
  39. cin >> Nom;
  40. cout <<"Entrez Mot de Passe\n";
  41. cin >> Mdp;
  42. ifstream fichnom("/Library/Lab/N.rtf" );
  43. if (fichnom)
  44. {
  45.  long A = 0;
  46.  while (getline(fichnom, ligne))
  47.  {
  48.   if (ligne == Nom) {A=1;}
  49.   if (ligne != Nom && A==0) {Cpt++;}
  50.  }
  51.  fichnom.close();
  52. }
  53. else
  54. {
  55.  cout << "Erreur Fichier Nom\n";
  56.  return 0;
  57. }
  58. ifstream fichmdp ("/Library/Lab/M.rtf" );
  59. if (fichmdp)
  60. {
  61.  long i=1;
  62.  while (i != Cpt)
  63.  {
  64.   getline(fichmdp, ligne);
  65.   i++;
  66.  }
  67.  getline(fichmdp, ligne);
  68.  if (ligne != Mdp) { fichmdp.close(); cout << "Erreur Mot de Passe \n"; return 0;}
  69.  fichmdp.close();
  70. }
  71. else
  72. {
  73.  cout << "Erreur fichier Mdp \n"; return 0;
  74. }
  75. ifstream fichquota ("/Library/Lab/Q.rtf" );
  76. if (fichquota)
  77. {
  78.  long j=1;
  79.  while (j != Cpt)
  80.  {
  81.   getline(fichquota, ligne);
  82.   j++;
  83.  }
  84.  getline(fichquota, ligne);
  85.  istringstream input(ligne);
  86.  input >> quota;
  87.  if (quota == 0) { fichquota.close(); cout << "Plus d'impressions possibles \n"; return 0;}
  88.  fichquota.close();
  89. }
  90. else
  91. {
  92.  cout << "Erreur fichier quota \n"; return 0;
  93. }
  94. string Rep;
  95. cout << "Il vous reste " << quota << " impression(s) \n";
  96. cout << "Voulez vous une impression ? Y pour oui / N pour non \n";
  97. cin >> Rep;
  98. while (Rep == "Y" )
  99. {
  100.  system("/usr/sbin/lpadmin -p -o job-quota-period=86400 \ -o job-page-limit=1" );
  101.  quota--;
  102.  ecriture(Cpt, quota);
  103.  cout << "Il vous reste " << quota << "impression(s) \n";
  104.  if (quota == 0) {cout << "Plus d'impressions possibles \n"; return 0;}
  105.  cout << "Voulez vous une autre impression ? Y pour oui / N pour non \n";
  106.  cin >> Rep;
  107. }
  108. return 0;
  109. }


 
J'ai posté dans cette section du fait du but (régulation sous UNIX) et de la fonction CUPS. Si un admin la juge mieux à sa place dans Progra / C++ je comprendrais :)


Message édité par C501 le 04-11-2009 à 17:52:38

---------------
Sleep is overrated...
mood
Publicité
Posté le 04-11-2009 à 12:38:54  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Help CUPS]Programme de régulation d'impression

 

Sujets relatifs
Virus? Rootkit? Deconnexion intempestive, Help![Logrotate ] need help!
Impression à partir de windows via CUPS : blocageCUPS : configurer imprimante connectée à un poste Windows
Vitesse de transfert faible entre deux disques durs, need help.Problème d'impression caractères spéciaux dans Okular !
[Résolu] Test chaine de caractères avec Shell : Help !Module ndiswrapper not found : help, je suis perdu!
Plus de sujets relatifs à : [Help CUPS]Programme de régulation d'impression


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR