Announcement

Collapse
No announcement yet.

Netzwerkdrucker mit C oder C++ ansprechen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Netzwerkdrucker mit C oder C++ ansprechen

    Hallo leute,

    ich bin neu hier im Board. Nach eine lange erfolglose Suche in google habe ich mich entschlossen hilfe zu holen.
    Mein Problem liegt darin, ich würde gerne einen script in c++ schreiben, womit ich meinen Daten die ich im Programm eingegeben habe, die mit einen Netzwerkdrucker ausgeben kann.

    Ich würde mich unheimlich für eure hilfe freuen ^^

    Danke schon vorraus an die Leute die mir helfen konnten und an die Leuten die sich darüber gedanken gemacht haben ^^

    gruss
    Günter

  • #2
    a) Gibt es in C/C++ keine Scripts. C/C++ sind Compilersprachen. Insofern gibt es Sourcecode der compiliert und gelinkt wird. Nur Interpretersprachen wie PERL, PHP u.a. haben Scripts. Scripts werden nicht übersetzt, sondern zur Laufzeit dem Interpreter zur Ausführung übergeben

    b) Sollte die Klasse TPrinter deine Wünsche erfüllen können. Genaueres kann man aufgrund der nicht geschilderten Anforderungen (was wann wie gedruckt werden soll) nicht sagen. Als Beispiel mag der Ausdruck eines TMEMO Objektes dienen

    http://www.marquardtnet.info/cecke/q...quicky_30.html

    Dabei ist es unerheblich, ob es sich um einen lokalen Drucker oder einen Netzwerkdrucker handelt
    Christian

    Comment


    • #3
      Danke für deinen Antwort aber ich sehe das ich mich nicht ganz ausdrücken konnte. Zum vereinfachung stelle ich meinen Code hierrein.

      Code:
      //Einfaches Dateiverarbeitungsprogramm Telefon
      //Speicherung als Textdatei
      #pragma hdrstop
      #include <condefs.h>
      #include <iostream.h>
      #include <iomanip.h>
      #include <fstream.h> //Header für die Datei(File)verarbeitung
      
      
      //---------------------------------------------------------------------------
      #pragma argsused
      //Globale Strukturdeklaration notwendig für die Funktionen
      const int maxi=3;
      struct adressen
      {
              char name[10];
              int tel_nr;
      }freunde[maxi];
      
      //Prototypen
      void adr_ein();
      void adr_speichern();
      void adr_lesen();
      void adr_zeig();
      void adr_drucken();
      
      //Hauptprogramm
      int main(int argc, char* argv[])
      {
      adr_lesen();
      int wahl;
      do
        {
          cout << "Adressverwaltung mit Textdatei" << endl << endl;
          cout << "1. Daten eingeben" << endl;
          cout << "2. Daten anzeigen" << endl;
          cout << "3. Daten drucken" << endl;
          cout << "9. Ende " << endl;
          cin >> wahl;
      
          switch(wahl)
          {
          case 1 :
              {
              adr_ein();
              break;
              }
          case 2:
              {
              adr_zeig();
              break;
              }
          case 3:
              {
              adr_drucken();
              break;
              }
          }
        }while (wahl != 9);
      adr_speichern();
      
      return 0;
      }
      
      //Funktionsdeklaration
      void adr_ein()
      {
      for (int i=0;i<maxi;i++)
              {
              cout << "Name: ";
              cin >> freunde[i].name;
              cout << "Tel-Nr.:";
              cin >> freunde[i].tel_nr;
              }
      }
      
      //**********************************
      void adr_speichern()
      {
      fstream datei;
      datei.open("adr.txt", ios::out);
      
      for (int i=0;i<maxi;i++)
              {
              datei << freunde[i].name;
              datei << freunde[i].tel_nr << endl;
              }
      datei.close();
      }
      
      //**********************************
      void adr_lesen()
      {
      fstream datei;
      datei.open("adr.txt", ios::in);
      
      for (int i=0;i<maxi;i++)
              {
              datei >> freunde[i].name;
              datei >> freunde[i].tel_nr;
              }
      datei.close();
      }
      
      //**********************************
      void adr_zeig()
      {
      system("cls");
      cout << "Telefonliste" << endl;
      for (int i=0;i<maxi;i++)
              {
              cout << left << setw(10) << freunde[i].name ;
              cout << setw(10) << freunde[i].tel_nr << endl;
              }
      cout << endl;
      system("pause");
      }
      
      //**********************************
      void adr_drucken()
      {
      fstream datei;
      datei.open("lpt1", ios::out);
      cout << "Telefonliste" << endl;
      for (int i=0;i<maxi;i++)
              {
              datei << left << setw(10) << freunde[i].name;
              datei << setw(10) << freunde[i].tel_nr << endl;
              }
      datei.close();
      }
      Also das ist das Programm, den ich mit C++Builder 4 in Konsolen-Experte erstellt habe. Das Programm macht folgendes. Man hat einen menü mit den möglichkeiten daten einzugeben, -anzeigen, -drucken.
      So druckt es auch zuhause, aber das problem ist in der Schule nicht, da wir da einen Netzwerk drucker haben. Das störts zwar keinen, aber ich würde es trotzdem gerne wissen wie das funzt ^^

      Comment


      • #4
        a) hat die Frage nix mit dem C++Builder direkt zu tun, da zwar mit diesem entwickelt wird, aber nicht die Funktionalität (VCL-Klassen) genutzt werden.

        b) Der Netzwerkdrucker ist schlicht und einfach nicht am ltp1

        datei.open("lpt1", ios:ut);

        Da du nun eben NICHT die Funktionalität des C++Builders nutzt musst du alles "zu Fuss" machen. Das bedeutet hier: Aus der Registry die vorhanden Drucker auslesen und diesen Namen dort eintragen.

        Habe

        http://entwickler-forum.de/archive/i...hp/t-3490.html

        den mal hier gepostet
        Christian

        Comment


        • #5
          hi christian marquardt,

          ich muss dich mal kurz wieder nerven ^^ ich kriege das einfach nicht hin, gibst da noch ne andere lösung ??? Ausserdem das was du das Programmiert hast ist ja für ne Windows-Anwendung. Aber ich brauche es für eine Konsole.

          Wäre super wenn du mir doch noch weiter helfen könntest.

          gruß

          günter

          Comment


          • #6
            Du kannst auch in einer Konsolenanwendung window.h mit einbinden. Andere Lösung kenne ich nicht
            Christian

            Comment


            • #7
              ok danke für eure hilfe ich habe es jetzt gefunden wie ich über das Netzwerk drucken kann. Es ist ganz Simple und einfach das man nicht sofort drauf kommen kann ^^

              Comment


              • #8
                Es ist ganz Simple und einfach das man nicht sofort drauf kommen kann ^^
                Wie schön.....


                .....aber mitteilen willst du es nicht??
                Christian

                Comment


                • #9
                  Entschuldigung das ich das nicht vorher reingestellt habe, habe ich total vergessen

                  Code:
                  void dat_drucken2()                                         //Drucken in Raum10 übers Netzwerk
                  {
                  fstream datei;
                  datei.open("\\\\anna\\laserraum10", ios::out);
                  
                  datei << "                 ####################" << endl;
                  datei << "                 # Gehaltauswertung #" << endl;
                  datei << "                 ####################" << endl << endl;
                  
                  datei << "Name" << setw(20) << "Abteilung" << setw(9) << "Gehalt" << setw(15)<< "Praemiensatz" << setw(14) << "Praemiensumme";
                  datei << "\n=================================================================";
                  
                  for (int i=0;i<maxi;i++)
                          {
                          datei << "\n" << setw(10) << left << angestellte[i].name;
                          datei << right << setw(10) << angestellte[i].abteilung;
                          datei << setw(10) << angestellte[i].gehalt;
                          datei << setw(10) << angestellte[i].praemiensatz << " %";
                          datei << setw(11)  << praemiensumme << " EUR";
                          }
                  datei.close();
                  }
                  Und zwar das funktioniert so, wenn man in der Schule drucken möchte, dann muss man den Drucker ansprechen. Doch das geht leider nicht wenn man einfach den Pfad reinschreibt.
                  Lösung ist es, man muss ganz am Anfang wo normalerweise zwei "\\" stehen zusätzlich noch zwei dranhängen also sähe das dann so aus "\\\\" und dann folgt der Raum Name (bei mir im Beispiel wist das "anna"). Dann folgen noch zwei "\\" anstatt nur einer und dann kommt der Druckername rein (im Bsp. "laserraum10").

                  mfg
                  guenter67

                  Comment

                  Working...
                  X