IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Impression chaine de caractères char*


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Impression chaine de caractères char*
    Bonjour

    J'ai une fonction qui lit un fichier texte et qui extrait une partie des données comprises dans ce fichier texte.
    Je récupère donc un buffer.
    Je souhaite ensuite imprimer ce buffer. J'arrive à envoyer des données vers l'imprimante mais le programme plante ensuite.

    Auriez vous une solution pour imprimer une chaine de caracteres (plusieurs pages) ?

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    As-tu debugger ton code ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Oui. La méthode fait partie de la classe CFile.

    Voici mon code. "contenu" est de type CString."bufRappot" est le buffer à imprimer. Il est de type char*.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    *********************************************************
     
    	sizeContenu = contenu.GetLength();
     
    	bufRapport = new char[sizeContenu];
     
    	bufRapport = contenu.GetBuffer(0);
     
                 // la message box est la pour verifier que le contenu est "correct"
    	MessageBox (owner, bufRapport, "LSB_V8_API_TEST", MB_OK);
     
     
     
    /*	
        memset (&pd, 0, sizeof(PRINTDLG));
        memset (&di, 0, sizeof(DOCINFO));
      
        di.cbSize = sizeof(DOCINFO);
        di.lpszDocName = "Rapport de test";
      
        pd.lStructSize = sizeof(PRINTDLG);
        pd.Flags = PD_PAGENUMS | PD_RETURNDC;
        pd.nFromPage = 1; 
        pd.nToPage = 1; 
        pd.nMinPage = 1; 
        pd.nMaxPage = 1;
    	pd.hwndOwner = owner;
        szMessage = 0;
     
     
     if (PrintDlg (&pd)) 
        { 
            if (pd.hDC) 
            { 
                if (StartDoc (pd.hDC, &di) != SP_ERROR) 
                { 
     
                  if (sizeContenu) 
                  { 
     
                    char LignePrint[100]; 
     
                    int Index1 = 0;
                    int Index2 = 2;
                    int Exit = 0;
                    if (sizeContenu > 0)
                    { 
                      for (int i=0;i < sizeContenu;i++)
                      { 
                        LignePrint[Index1] = bufRapport[i]; 
                        if (bufRapport[i] == '\n') 
                        { 
                          Index2 ++; 
                          LignePrint[Index1] = '\0'; 
                          TextOut (pd.hDC,100, Index2*100, LignePrint, strlen(LignePrint)); 
                          Index1 = 0; 
                        } 
                        else Index1 ++; 
                        if (Index2 == 60) 
                        { 
                           EndPage (pd.hDC); 
                           EndDoc (pd.hDC); 
                           StartDoc (pd.hDC, &di); 
                           Index2 = 2; 
                        } 
                      }
                      Index2 ++;
                      LignePrint[Index1] = '\0'; 
                      TextOut (pd.hDC,100, Index2*100, LignePrint, strlen(LignePrint)); 
                        EndPage (pd.hDC); 
                      EndDoc (pd.hDC);
                    } 
                    else MessageBox (NULL, "Le document est vide", "LSB_V8_API_TEST", MB_OK); 
                  } 
                } 
                else 
                { 
                    szMessage = "ERREUR Type 1";
                } 
            } 
            else 
            { 
                szMessage = "ERREUR Type 2";
            } 
        } 
        if (szMessage)
        { 
            MessageBox (NULL, szMessage, "LSB_V8_API_TEST", MB_OK); 
    		delete szMessage;
        }
     
        Close();
     
     
    	return;
    }

Discussions similaires

  1. difference entre deux chaines de caractères char*
    Par mandrain dans le forum Débuter
    Réponses: 2
    Dernier message: 12/06/2014, 18h51
  2. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  3. Réponses: 7
    Dernier message: 02/11/2009, 14h40
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo