Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Dr.Z
Thema: BindingSource auf NULL prüfen
Am im Forum: Datentechnologien

Die BindingSource wird ja definitiv nicht "null" sein, da du ja eine neue Instanz erzeugst und bereits Daten übergibst. Wenn du ein leeres Ergebnis zurück bekommst, müsste doch die DataTable leer / null sein, oder irre ich mich da?

Thema: SHFileOperation - Kopiervorgang nicht erfolgreich
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

erst einmal Danke für eure Antworten.
@husky410: Werde ich mir mal angucken, vllt ist eine Lösung dabei, die mir entgegenkommt.
@inflames2k:
Entwicklungssystem als auch späteres Zielsystem sind Windows XP.
Die Möglichkeit die Server als Netzlaufwerk einzubinden besteht. Da ich mir die Pfade aber aus einer Datenbank hole, finde ich das irgendwie "unsauber" - oder nicht?

Thema: SHFileOperation - Kopiervorgang nicht erfolgreich
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich möchte ein paar Dateien von \\ServerA\Fraigabe\ nach \\ServerB\Freigabe\ kopieren.
Bisher habe ich das immer mit File.Copy gelöst und dies funktioniert auch Einwandfrei.
Da ich gerne eine Kopier-Fortschritsanzeige für die aktuelle Datei hätte, habe ich auf die Klasse ShellProvider von inflames2k zurückgegriffen.

Nur bekomme ich immer die Fehlermeldung, die schon in diesem Beitrag
SHFileOperation kopiert nicht von CD-Laufwerk:

Fehler
Datei kann nicht kopiert werden: Die Quelldatei oder vom Quelldatenträger kann nicht gelesen werden.
Die Beiträge in diesem Thread konnten mein Problem bisher nicht lösen

Mein Programm ist so aufgebaut, dass ich auf ServerA die zu kopierenden / zu verschiebenden Dateien suche und erst in ein tmp-Verzeichnis (auf ServerB) kopieren will und von dort in das entsprechende Zielverzeichnis (ebenfalls auf ServerB) verschieben möchte.

Die folgende Methode läuft in einem Thread, damit die GUI nicht hängt:


public void Move()
        {
            bool moved = true;
            DirectoryInfo di = Directory.GetParent(destination);
            string tempPath = di.FullName;

            string[] temp = new string[files.Length];

            try
            {
                for (int i = 0; i < files.Length; i++)
                {
                    // - Dateien aus Backup in tmp-Verzeichnis kopieren.
                    PreCopy(files[i]);
                    temp[i] = Path.Combine(tempPath, Path.GetFileName(files[i])); 
                    tempPath += files[i];
                    MyShellProvider.Copy(files[i], temp[i], true);
                    //File.Copy(files[i], temp[i], true);
                    tempPath = di.FullName;
                    CopiedOne();
                }

                for (int i = 0; i < temp.Length; i++)
                {
                    // - Dateien aus tmp-Verzeichnis in entsprechendes Zielverzeichnis kopieren.
                    PreMove(files[i]);
                    string DestPath =Path.Combine(destination, Path.GetFileName(files[i]));
                    MyShellProvider.Move(temp[i], DestPath, true);
                    //File.Move(temp[i], DestPath);
                    MovedOne();
                }
            }
            catch (Exception ex)
            {
                moved = false;
                errorMessage = ex.Message;
            }

            MovedAll(moved);
            //return moved;
        }

Den Fehler liefert mir schon die ShellProvider-Klasse - zum einen mit der obigen Fehlermeldung, zum anderen ist der Rückgabewert dieser Methode

private int RunFileOperation(string sSource, string sDestination, FO_Func func, FILEOP_FLAGS_ENUM flags)
in der ShellProviderKlasse 1026.

Hat jemand eine Idee, wo das Problem liegen kann?
Vielen Dank für eure Hilfe und Mühe. :-)

Dr. Z

Thema: Projekt für die Abschlussprüfung
Am im Forum: Smalltalk

Ich persönlich würde zum Datenbankdesign + x tendieren.
So hast du mit der Datenbank schon mal eine Grundlage für alle späteren von dir genannten Möglichkeiten.
Wenn du dann noch den Teil der Webseiten gestaltet bekommst, in dem es um die Datenpflege geht, hast du schon viel von deinen 70 Stunden verbraucht.

Das ist aber nur das, wie ich es machen würde - welchen Teil du letztendlich bearbeitest, bleibt natürlich ganz alleine dir und deinen Interessen überlassen.

Alles andere kannst (wenn du denn dann nach deiner Prüfung noch im Betrieb bist ;-) ) dann noch machen - oder es wird eines von diesen "never-ending-projekten" die gerne mal aus einer solchen Abschlussprüfung hervor gehen :)

Wie gesagt: Setz dich hin und zerlege dir mal die einzelnen genannten Aufgabenbereiche bis ins kleinste Detail und schreib dir Zeiten dafür auf wie lange du dafür benötigen würdest. Die Zeiten sollten nicht ins Blaue geraten sein, sondern auf vorherigen Erfahrungswerten basieren, denn schließlich wirst du ja nicht zum ersten mal eine DB oder Webseiten erstellen.

Dann wirst du sehr schnell sehen, dass sich alles nicht realisieren lässt.

Thema: Projekt für die Abschlussprüfung
Am im Forum: Smalltalk

So auf den ersten Blick finde ich das Projekt an sich sehr umfangreich.

Die zentrale Frage ist:
Gibt es denn schon eine Datenbank in der die Infromationen vorhanden sind auf die du dann zurück greifen kannst, oder fällt das ganze Datenbankdesign dann auch noch mit in die Entwicklungsphase?

Ich denke, dass die auch schon so genügend zu tun haben wirst - und dir vllt zu viel Arbeit machst.

Aber letztendlich kann dir unsere Meinung doch egal sein, denn
1. Ist es dein Abschlussprojekt
2. Musst du dir das Thema auswählen, welches
a. Die am besten gefällt
b. einen Nutzen haben wird
c. in der vorgegebenen Zeit realisieren lässt
3. solltest du ein Thema wählen in dem du absolut fit bist - sogar fitter als als dein Prüfer. So kannst du sichergehen, dass du alle deren Fragen beantworten und nicht plötzlich (auch bei der Durchführung) vor unvorhergesehen Problemen stehst.

Thema: Projekt für die Abschlussprüfung
Am im Forum: Smalltalk

@bredator:
Ja, nur kann man das nicht unbedingt in die Zeitplanung schreiben ;)

Noch ein Tipp: Lege den Zeitplan so, dass du zwei Wochenenden in der Projektphase hast. Deine Dokumentation wird es dir danken.

Thema: Projekt für die Abschlussprüfung
Am im Forum: Smalltalk

Hi,

ob die von dir angesprochenen Punkte zeitlich zu realisieren sind, musst du doch selber ermiteln. Schließlich will die IHK von dir auch einen detallierten Zeitplan in dem die einzelnen Aufgabenschwerpunkte inhaltlich und zeitlich gegliedert sein müssen.

Am einfachsten ist es, wenn du anhand deines Erfahrungsschatzes das mögliche Projekt in die einzelnen Teileaufgaben gliederst und versuchst die einzelnen Aufgaben mit realistischen Zeitangaben zu versehen.

Schließlich wirst du sehen, ob du mit den vorgegebenen (70?) Stunden hin kommst, oder nicht.

Tip: Unterschätze nicht die Dokumentation vom Zeitumfang her.

Thema: Grafik zur Laufzeit aus Datei laden
Am im Forum: Grafik und Sound

picturebox.Image = Image.FromFile(Pfad zum Bild); ?

Thema: Programmspeicherauslastung beim einlesen von Bildern
Am im Forum: Grafik und Sound

Vielen Dank für die Hilfe!

Werde mich mal mit dem genannten Programm auseinander setzen.

Thema: Programmspeicherauslastung beim einlesen von Bildern
Am im Forum: Grafik und Sound

Ja genau, der Taskmanager.
Also ist's eigentlich kein "Problem" im eigentlichen Sinne?

Habe mal ausprobiert, wie sich das Ganze mit eine sehr vielen Bildern verhält. Die Speicherauslastung geht immer bis ca. 450MB hoch und fängt dann wieder bei ca 30MB an. Dieses Spiel wiederholt sich so lange, bis alle Bilder angezeigt sind.

Thema: Programmspeicherauslastung beim einlesen von Bildern
Am im Forum: Grafik und Sound

Danke für die Antwort.

Mit dem Thread hast du recht. Das mit dem Application.DoEvents() war nur die quick and dirty Kurzversion :)

Habe das mit dem Thumbnail grade mal eingepflegt:


pb.Image = Image.FromFile(files[i]).GetThumbnailImage(120, 90, null, IntPtr.Zero);
Erste Erkennstnis: Programmwachstum besteht weiterhin.
Beobachtung:
Sowohl mit als auch ohne Thumbnail sinkt die Speicherauslastung irgednwann wieder ein auf ca. 40MB und beginnt dann wieder, bei jedem erneuten Anzeigen an zu steigen.

Habe ich sehr viele Bilder, sinkt die Auslastung zwischen durch wieder und steigt weiter an.
Dieses Spiel wiederholt sich so lange, bis alle Bilder angezeigt sind.

Thema: Programmspeicherauslastung beim einlesen von Bildern
Am im Forum: Grafik und Sound

Zeile 183 gibts bei mir gar nicht ;-)

Also, der Code sieht so aus:


private void CreatePreview(string dir, string pattern)
        {
            pgb_load.Value = 0;

            //entfernen der alten, nicht mehr benötigten PictureBoxen
            for (int i = 0; i < pnl_picture.Controls.Count; i++)
            {
                pnl_picture.Controls.RemoveAt(i);
                i--;
            }

            
            //filtern der Suchergebnisse
            List<string> files = new List<string>();
            files.AddRange(Directory.GetFiles(dir, pattern));

            for (int i = 0; i < files.Count; i++)
            {
                if (files[i].Contains("thumb"))
                {
                    files.RemoveAt(i);
                    i--;
                }
            }

            int j = 0;
            int Top = 0;
            int Left = 0;

            pgb_load.Maximum = files.Count;

            //Anzeigen der gefundenen Bilddaten
            //immer 4 pro Zeile
            for (int i = 0; i < files.Count; i++)
            {
                PictureBox pb = new PictureBox();
                pb.Image = Image.FromFile(files[i]);
                pb.Height = 90;
                pb.Width = 120;                

                ...
                Anordnen der Bilder
                ...

                pb.Top = Top;
                pb.Left = Left;
                pb.SizeMode = PictureBoxSizeMode.StretchImage;
                pnl_picture.Controls.Add(pb);
                pgb_load.Value++;
                Application.DoEvents();
                j++;
            }
        }

That's it. Nicht wirklich was kompliziertes in meinen Augen.

Thema: Programmspeicherauslastung beim einlesen von Bildern
Am im Forum: Grafik und Sound

Hallo zusammen,

ich scanne einen Barcode und muss zu diesem Barcode im System Bilder suchen und in einer Miniaturansicht anzeigen.

Eigentlich alles soweit kein Problem. Das Einzige was mir aufgefallen ist, dass nach jedem Anzeigevorgang der Bilder die Speicherauslastung um 20MB (bei 4 Bildern) ansteigt und auch so bleibt - bis zum nächsten Anzeigen.

An sich nicht schlimm, wenn die Anwendung nur einmal täglich, oder nach jedem Gebrauch wieder geschlossen werden würde. Dies ist aber nicht der Fall, sie wird sehr oft am Tag benutzt werden.

Die Pictureboxen mit denen ich die Bilder Anzeige erzeuge ich zur Laufzeit dynamisch.
Als übergeordnetes Steuerelement nutze ich ein Panel und füge die PictureBoxen diesem zu.

Ich habe schon versucht, die erzeugten Pictureboxen vor dem nächsten Anzeigen zu löschen mit

MyPanel.Controls.RemoveAt(index)
als auch
das Komplette Pnael zu löschen und neu zu erzeugen, aber das ändert nichts an der Problematik, dass sich die Speicherauslastung meiner Anwendung nicht verringert.

Würde mich sehr über ein paar hilfreiche Tips freuen!

Thema: Problem bei Insert von vielen Daten in SQLite DB
Am im Forum: Datentechnologien

In einer Schleife die in einer Schleife läuft.
Man das auch besteimmt direkt in einem Rutsch in die DB schreiben.
Da weiß ich aber grade nicht wie. Denke, dass es dann noch schneller geht.

Dr.Z

Thema: Problem bei Insert von vielen Daten in SQLite DB
Am im Forum: Datentechnologien

Wenn mich nicht alles täuscht, dann fehlt dir dein SQL-Stament.
"Insert Into" oder "Update"

Thema: TextBox - Enter abfangen - MessageBox anzeigen
Am im Forum: GUI: WPF und XAML

Hi, ja, das hatte ich gemeint. :-) War auch nur ne spontane Idee, die ich hatte.
Nebenbei heißt die if-schleife nicht if-schleife, weils keijne schleife ist, sondern nur eine Abfrage :)

Ich denk nochmal drüber nach ;-)

Thema: TextBox - Enter abfangen - MessageBox anzeigen
Am im Forum: GUI: WPF und XAML

Dann setze doch den Focus vor dem Überpüfen einfach auf das Form zurück.

Viele Grüße

Dr. Z

Thema: mehrere Drucker ansprechen
Am im Forum: Rund um die Programmierung

Hat sonst noch wer eine Idee?

Ich habe da mal was programmiert, aber das funktioniert auch noch nicht so richtig:


files = Directory.GetFiles(@"\\10.156.107.130\Jobs\canon_1\HotFolder\", "*.pdf", SearchOption.TopDirectoryOnly);
                    if (files.Length > 0)
                    {
                        p = 1;
                        //late bind to the wsh network com object
                        //create an instance of a reflection type
                        Type t = Type.GetTypeFromProgID("WScript.Network");
                        //create an instance using the system activator, consuming the type
                        Object o = Activator.CreateInstance(t);
                        //invoke the method using the object we created
                        t.InvokeMember("SetDefaultPrinter", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] { "LFP1" });
                        Thread.Sleep(1000);

                        Process proc = new Process();
                        proc.StartInfo.CreateNoWindow = false;
                        proc.StartInfo.Verb = "print";
                        proc.StartInfo.FileName = files[0];
                        proc.Start();
                        proc.WaitForExit(5000);
                        proc.CloseMainWindow();
                        proc.Close();
                    }

so verfahre ich auch mit den anderen beiden Druckern, direkt im anschluss daran. nur klappt das nicht wirklich. ich schaffe es einen job zu drucken. Beim nächsten DruckJob mit dem nächsten Drucker schmiert mit das Programm mit einer

InvalidOperationException: Die angeforderten Informationen sind nicht verfügbarm da der Prozess beendet wurde.
ab.

Dr.Z

Thema: mehrere Drucker ansprechen
Am im Forum: Rund um die Programmierung

Danke für deine schnelle Antwort. Mit diesen Klassen habe ich mich auch schon beschäftigt, nur ist mir da schleierhaft, wie ich dort vorgefertigte .pdf Dateien an einen drucker senden kann.

Ich kann doch nur Streams an die einzelnen Drucker senden und eine pdf Datei ist ja in dem Sinne kein Stream.

Zitat
Habe schonmal dran gedacht, immer den Standardrucker zu ändern, je nach dem in welchem Ordner grade eine .pdf Datei erzeugt wird.
Aber das ist ja sicherlich auch nicht das gelbe vom Ei.

Das war so gedacht, dass ich das Programmiertechnisch löse und nicht jedesmal manuell in die einzelnen Ordner gucke und den entsprechenden Drucker zum Standardrucker mache.

Dr.Z

Thema: mehrere Drucker ansprechen
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich habe folgendes Problem:
Es gibt drei Ordner und drei an den PC angeschlossene Drucker. Die Dokumente die in Ordner_A laden, sollen auf Drucker_A gedurckt werden. Ebenso verhält es sich mit den anderen Ordnern und Druckern:
Ordner_A -> Drucker_A
Ordner_B -> Drucker_B
Ordner_C -> Drucker_C

Bei den Dateien, die gedruckt werden sollen, handelt es sich um .pdf Dateien.

Ich habe schon gesucht, wie man die Datei einfach drucken kann. Mit folgendem Code


Process proc = new Process ();
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.Verb = “print”;
proc.StartInfo.FileName = “C:\\test.pdf”;
proc.Start();
proc.WaitForExit(10000);
proc.CloseMainWindow();
proc.Close();
ist es mir möglich, pdfs Dateien entsprechend zu drucken, allerdings nur auf dem Standardrucker. Gibt es evtl eine ergänzung, wie ich den Drucker festlegen kann, auf dem ich drucken kann?
Habe schonmal dran gedacht, immer den Standardrucker zu ändern, je nach dem in welchem Ordner grade eine .pdf Datei erzeugt wird.
Aber das ist ja sicherlich auch nicht das gelbe vom Ei.

Habt ihr da einen Vorschlag, oder kennt ihr vllt gar ein freeware tool, welches mir diese Arbeit abnehmen würde?

Dr.Z

Thema: Nur Teilweises Datenbankupdate
Am im Forum: Datentechnologien

Hi Bernd,

Danke für deine Antwort und mit zwei kleinen Modifikation klappt das ganze. ;-)

1. Dem da.SelectCommand kann man keinen String direkt zuweisen. Musste mit mit Hilfe von

SQLCOmmand cmd = new SQLComman("SELECT * FROM " + dt.TableName";
einen Command zusammen bauen.

2. Dann noch dem SQLCommand.Connection Propertie die SQLCOnnection zur DB mitgegeben werden.

SQLCommand.Connection = SQLConnection;

Anschließend wie du bereits erwähnt hast den CommandBuilder initialisieren und los gehts mit

SQLDataDataAdapter.Update(DataSet, TableName);

Vielen Dank für deine Hilfe

Thema: DataSet führt keine aktualisierung aus
Am im Forum: Web-Technologien

Hi,

ich habe das gleiche Problem. Ich hole mir dir DB in mein Programm, füge Zeilen an die einzelnen Tabellen an und möchte die Datenbank dann wieder mit SQLDataAdapter.Update(DataSet) in die Datenbank schieben. Leider funktioniert dieser Vorgang bei mir nicht bzw. nciht vollständig. Es wird nur die erste Tabelle (die nur eine Kundennummer enthält) aktualisiert.

Ale weiteren Tabellen werden nicht aktualisiert.

Das Thema habe ich hier Nur teilweises Datenbankupdate eröffnet.

Hast du mitlerweile einen Lösungsweg gefunden? Ich trickste mich da momentan mehr oder weniger selber aus.

Thema: Nur Teilweises Datenbankupdate
Am im Forum: Datentechnologien

Hi Bernd,

danke für deine Antwort. Da habe ich mich wohl undeutlich ausgedrückt. Das ist nur ein Beispiel für eine Tabelle. Die Anderen Tabellen fülle ich genau so.

Also auch die Zeile erstellen, mit Daten füllen und dann an die Tablle anfügen.

Diese Anweisungen werden in einer Schleife durchlaufen. Ist diese beendet will ich das ganze DataSet dann wieder in die Datenbank schieben, aber das scheint ja aus einem mir nicht bekannten Grund nicht zu funktionieren. Habt ihr sonst noch eine Idee?

-----------------------------------------------------------------------------------------------
UPDATE:

Da sonst niemand eine Idee hat, präsentiere ich euch einfach mal meine momentane Vorgehensweise:

Da das Updaten der kompletten Datenbank mittels des DataSets nicht funktioniert, arbeite ich mit dem normalen SQLCommand. Ich mache ein Insert mit den entsprechenden Daten auf die Datenbank.
Vorher überprüfe ich jedoch mittels

DataTable.Select(SQLStatement);
ob dieser Datensatz schon in der Tabelle vorhanden ist.
Bei dieser DataTable handelt es sich allerding um eine Tabelle in meinem lokalen DataSet.

Ist der anzufügende Datensatz noch nicht vorhanden, so wird er mit dem oben angesprochenen SQLCommand an die Datenbank direkt angefügt. Zusätzlich muss ich diesen Datensatz an mein internes DataSet anfügen, damit die folgenden Abfrageprüfungen einen Sinn ergeben und nicht ins Leere laufen.


Das ganze klappt zwar, aber ich finde dies ist nicht wirklich elegant gelöst. Optimal wäre es meiner Meinung nach, wenn man das DataSet mit neuen Daten / Zeilen / Datensätzen füllt und mittels eines

SQLDataAdapter.Update(DataSet);

wieder alles in die Datenbank schieben könnte.

Für neue / weitere Hilfen, Anregungen und Infos würde ich mich freuen.

Thema: Nur Teilweises Datenbankupdate
Am im Forum: Datentechnologien

Ich benutze doch einen SQL Data Adapter. Mit diesem stelle ich die Verbindung zur DB her und hole mir doch mit

MyAdapter.Fill(db_dpterm);
alle Tabellen meiner DB in mein DataSet.
Ich kann ja auch alle einzelnen Tabellen per Index oder vorheriges TableMapping ansprechen und Werte hinzufügen.

Nur das Updaten fnktioniert nicht (richtig). Oder meinst du, dass ich für jede einzelne Tabelle ein eigenes DataSet respektive einen SQLAdapter erstellen?

Thema: Nur Teilweises Datenbankupdate
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MS SQL Server 2005 Express Edition

Hallo zusammen.

ich komme einfach nicht mehr weiter. Auch die Suche im Forum hat mir viele nützliche Tips geliefert, aber jetzt bin ich wirklich mit meinen Ideen am Ende.
Habe auch die KApitel des OpenBooks dazu gelsen X( ?(

Ich habe eine Datenbank mit 4 Tabellen.

Mit


MyAdapter = new SqlDataAdapter(SQLStatement, MySQLConnection);
db_dpterm = new DataSet("db_dpterm");
MyAdapter.Fill(db_dpterm);

hole ich mir die (leere) Datenbank in mein Programm.

Anschließend möchte ich in die einzelnen Tabellen des DatsSets neue Zeilen anfügen. Das klappt auch alles soweit:


if (!TableContainsKey(tbl_Auftrag, "auftragsnr= " + Auftragsnummer + " AND kundennr=" + Kundennummer + " AND teileID=" + TeileID.ToString()))
            {
                DataRow NewRow = db_dpterm.Tables["tbl_Auftrag"].NewRow();
                NewRow[0] = Auftragsnummer;
                NewRow[1] = Kundennummer;
                NewRow[2] = TeileID.ToString();
                NewRow[3] = Datum;
                db_dpterm.Tables["tbl_Auftrag"].Rows.Add(NewRow);
            }
(Dies ist ein Beispiel für eine Tabelle. Alle anderen Tabellen fülle ich genau so. Das ganze wird (für alle Tabellen) in einer Schleife durchlaufen)


Vor meinem


MyAdapter.Update(db_dpterm);
weisen die Tabellen des DataSets alle die richtigen Einträge auf.
Mache ich das Update und möchte ich mir die Daten über die MS SQL Mangement Studio Console angucken, stelle ich erstaunt fest, dass nur die eine Tabelle (Tabelle Kunde --> eine Spalte --> Kundennummer) neue Werte besitzt.

Alle anderen Tabellen sind weiterhin komplett leer. Ich komm einfach nicht dahinter, woran das liegt.

Wenn wenigstens keine Tablle mit Werten gefüllt werden würde, wäre das irgendwie verständlicher, aber nur die eine Tabelle und die anderen nicht? da steige ich einfach nicht hinter.
Hoffe ihr habt da noch eine greifende Idee, ich häng nun schon fast den ganzen Tag dran. Ich habe sämtliche möglichkeiten ausprobiert.

Thema: Drucken: Anzahl der Zeichen pro Zeile
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich beschäftige mich momentan mit dem Drucken aus C# heraus. Das klappt an sich eigentlich ganz gut.
Um das drucken an sich wesentlich flexibler zu gestalten, habe ich mich gefragt, ob es möglich ist, anhand der Schriftgröße und z.B der Papiergröße des Druckers eine maximale Zeilenanzahl bzw. Zeichenanzahl pro Zeile zu ermitteln.

Als Schrifttyp verwende ich immer "FontFamily.GenericMonospace". Das heißt, alle Zeichen besitzen die selbe Breite.

Da aber die Schriftgröße von Druck zu Druck varieren kann, wollte ich fragen, ob es eine möglichkeit gibt zu ermitteln, wieviele Zeichen pro Zeile und Zeilen mir insgesamt zur Verfügung stehen.

Bei einer Seitengröße von 200 + 400 LE und einer Schriftgröße von 11 kann ich ja nicht wie folgt vorgehen:
200 / 11 = 18,18... -> 18 Zeichen Pro Zeile
400 / 11 = 36,36... -> 36 Zeichen Pro Zeile.

Das geht ja nicht. :-)
Habt ihr da eine Idee, wie ich da genau vorgehen kann / soll / muss?

vielen Dank

Dr. Z

Thema: Aus Konsole heraus Drucken
Am im Forum: Rund um die Programmierung

Hallo zusammen :-)

Vielen Dank für eure Antworten.

Einen entsprechenden Verweis hinzufügen hat mein Problem gelöst. Nun habe ich alle Klassen zur Verfügung, die ich zum Drucken benötige.

vielen Dank nochmal an euch beiden.

Thema: Aus Konsole heraus Drucken
Am im Forum: Rund um die Programmierung

Hallo, danke für deine Antwort.

Schon das Wort "Verweis" hat mich glaub ich auf den richtigen Pfad gebracht. Ich habe nun einfach einen Verweis zum Projekt hinzugefügt und werde dieses nun mal testen.

vielen Dank für deine Antwort.

Thema: Aus Konsole heraus Drucken
Am im Forum: Rund um die Programmierung

Hallo zusammen,

es muss doch möglich sein, aus der Konsole heraus zu drucken, oder etwa nciht? Bei einer Windows-Forms-Anwendung steht mir der Namespace System.Drawing.Printing zur Verfügung. In einer Konsolenanwendung aber nicht.

Kann mir jemand den entscheidenden Tip geben?

Danke für eure Hilfe

Dr. Z

Thema: auf (Label-)Drucker drucken
Am im Forum: Rund um die Programmierung

Hallo Joetempes,

danke für deine Antwort, das hört sich sehr einfach und logisch an. Werde das mal ausprobieren. :-)

Was mir daran vllt nicht so gefällt, ist die Tatsache, dass das ganze ja nicht wirklich unabhängig ist. Ich müsste ja jedesmal, wenn ich in einem anderen Projekt ein Etikett drucken müsste, dieses Form komplett neu anlegen.

Hatte mir das Konzept in etwa so vorgestellt, dass ich eine Klasse / Methode erzeuge, die entweder eine Datei oder halt den String entgegen nimmt und dann druckt. So müsste ich immer nur diese KLasse / Methode in meine anderen Projekte bei bedarf implementieren und könnte auch hier Etikettendesignunabhängig (wow, was für ein Wort :-) drucken.

Von daher würde mir eine varaibler Lösungsansatz mehr zusprechen.

Danke für deine Antwort.


Dr. Z