Zum Inhalt springen

Shadowman

Mitglieder
  • Gesamte Inhalte

    474
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Shadowman

  1. Wenn er Binärdaten überträgt, im Data-Block aber Text kommt (Zitat Repac3r: Ich kann nämlich nicht sicherstellen, was für Zeichen Data enthält.) muss er diese ja sowieso umwandeln. Somit muss er eine Konvertierungsmethode implementieren um aus dem Text einen Binärsatz zu machen. Wenn er die Codes vor der Konvertierung anfügt und mit Konvertiert (natürlich dann auch umgekehrt bei der Verarbeitung) kann er auch beim eintreffen des Datenstroms auf diese Werte (natürlich binär) prüfen. Wenn jetzt das Argument kommt, dass diese Zeichenkombination immer vorkommen kann: Jede binäre Kombination könnte rein Theoretisch in einer Folge auftreten. Hier geht es doch lediglich darum die Warscheinlichkeit zu reduzieren (oder liege ich da falsch?) Mit Datentransfer habe ich mich noch nicht so tiefgehend auseinandergesetzt
  2. Standard Ascii Codes mit Bedeutung: 0x01 -> Start of Header 0x02 -> Start of Text 0x03 -> End of Text 0x04 -> End of Transmission so würde ich es aufbauen: 0x01ID#Type#MaxCountPackets#CurrentCountPackets0x02Data0x030x04 Das wäre glaube ich am saubersten
  3. Wenn du sicherstellen kannst, dass in keinem Block eine weitere Raute vorkommen kann und du somit eine feste Anzahl an Trennzeichen hast, müsste es gehen. Wenn du das nicht sicherstellen kannst (wenn du zum Beispiel den Data Teil text sendest und dieser auch Rauten enthalten kann), kannst du nicht mit Sicherheit bestimmen, wann ein Paket zuende ist. In diesem Fall solltest du ein anderes Zeichen für Start und Ende verwenden.
  4. Hallo zusammen, ich habe eine Klasse erstellt, welche mir Word Vorlagen laden und verarbeiten soll. Beim Aufruf eines Dokuments mache ich folgendes: this.doc = word.Documents.Add(path + this.id + ".DOC", Missing.Value, Missing.Value, Missing.Value); this.doc.BuiltInDocumentProperties("Title").Value = this.id + ".doc"; this.useVars(); this.doc.Protect(Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyFormFields, Missing.Value, "test", Missing.Value, Missing.Value); this.show(); useVars() setzt per Schleife automatisch alle FormFelder im Dokument um. show() ist lediglich dafür da Word in den Vordergrund zu rufen. // Dokument anzeigen private void show() { this.word.Visible = true; } Vorhandene FormFields werden nicht gefüllt, sondern ersetzt, um sie nach dem automatischen Füllen vor Veränderung zu stützen. Nicht gefüllte FormFields sollen danach aber noch füllbar sein. Wenn ich als ProtectionType wdAllowOnlyReading benutze, kann ich nichts mehr machen (so wie es dann auch sein sollte), bei wdAllowOnlyFormFields jedoch nicht. In diesem Fall kann ich fröhlich im Dokument rumschreiben wie es mir gerade gefällt. Mache ich einen massiven Fehler, habe ich etwas falsch verstanden, oder ist wdAllowOnlyFormField nicht der Status, dass man nur noch in FormFields schreiben darf? Ich verzweifle gerade etwas. Gruß Shadowman
  5. Hast du versucht deine Basisdokumente mit einem Schreibschutz zu versehen? Dies müsste eigentlich das direkte Speichern unterbinden und den "Speichern unter" Dialog erzwingen btw. weißt du, ob es möglich ist eine Textmarke zu ersetzen, anstatt sie zu füllen?
  6. Oh mein Gott!!! Die erste von mir geschriebene Variante hat funktioniert. Ich habe in meinem Testfall nur schon zwei weitere Datenquellen angegeben, welche als Dateien noch nicht angelegt sind. Aus diesem Grund kam dort kein aufruf der Klasse. Jetzt läuft es. Vielen Dank für deine Hilfe!
  7. Ich werde versuchen die korrekten Begriffe zu verwenden. Dazu werde ich mir aber nochmal genau anschauen müssen, was was war. Ich habe jetzt eine Testvariante eingebaut, jedoch kann ich sie noch nicht testen, da gerade die Datenbankverbindung angeschmiert ist. Ich glaube aber schon, dass ich das begriffen habe, was du beschrieben hast, nur baue ich ansteinend den path falsch auf. Die Klasse liegt im Namespace "Projekt.Classes.Datasource.session" Datenstruktur: Projekt/Classes/Datasource/session/user_class.cs Ich habs jetzt folgendes versucht: var path = @"Projekt.Classes.Datasource.session.user_data, Projekt"; var path = @"Projekt.Classes.Datasource.session, user_data"; In beiden Fällen ist type jedoch null.
  8. Ok, also hole ich etwas weiter aus. Attibut -> Variable einer Klasse Ich habe eine Klasse "dokument", dieses Dokument hat ein Attribut vom Typ List "datenquellen". Jede Datenquelle kann unterschiedliche Bezugsquellen haben (datenbank, session, etc.). Jede Datenquelle enthält einige informationen zur Datenquelle an sich und ein eigenes Attribut, welches eine Instanz der Klasse sein soll, welche die tatsächlichen Datenbeschaffung übernimmt. Attribute: private iDatasource cSource; private List<sParameter> lInput; private List<sParameter> lFill Methode run: public void run(ref List<KeyValuePair<String, String>> vars, ref List<String> input) { List<sParameter> t_fill = new List<sParameter>(); List<sParameter> t_input = new List<sParameter>(); DataBinder.Eval(this.cSource,"new " + this.name + "()"); cSource.run(ref t_vars, ref t_input); lFill.AddRange(t_fill); lInput.AddRange(t_input); } Ich weiß leider nicht, was du mit einem "vollqualifizierten Namen" der Klasse meinst, aber als Beispiel: - this.name ist "user_data" - Dateiname ist "user_data.cs" - Klassenname ist "user_data"
  9. Hallo zusammen, ich habe mir ein sehr einfaches Interface geschrieben, was ich dazu nutzen möchte, einem Attribut zur laufzeit einen Typen zuzuweisen. Das ganze kommt durch folgenden Gedanken: Ich habe eine Liste mit Namen von Objekten in meiner Datenbank und kann sie beliebig anderen Elementen zuordnen. Jeder Eintrag soll durchlaufen werden und dann soll einer Generic.List die entsprechende Klasse zum ausgelesenen Namen hinzugefügt werden um sie nachher weiter zu verarbeiten. Ich habe bereits DataBinder.Eval gefunden, . Von der Beschreibung her hatte ich es mal mit dem DataBinder.Eval versucht, jedoch leider keinen erfolg, da er anscheinend nur mit Variablen und nicht mit Klassen funktioniert: iDatasource t_source = null; DataBinder.Eval(t_source,"new " + this.name + "()"); in this.name ist der name der Klasse enthalten. Kann ich das Irgendwie dynamisch bewerkstelligen, oder muss ich per switch-case für jede Möglichkeit einen Fall einrichten? Ich hoffe mir kann da jemand helfen, falls noch was unklar sein sollte, Asche auf mein Haupt und einfach fragen . Gruß Shadowman
  10. super, vielen dank für die Infos/Seite. Da habe ich dann erstmal was zu tun
  11. Wie bereits gesagt, ich brauche vernünftige Quellen und nicht das Kraut&Rüben Konzept, was auf den meisten Seiten herrscht
  12. Ich habe eine MVC Anwendung. Innerhalb dieser MVC Anwendung verwende ich in den aspx Dateien 'asp:' Tags. Mit der Aussage, dass ich bei ASP.NET MVC keine Benutzersteuerelemente von ASP.NET benötige hast du mich durcheinander gebracht. Ich Brauche zwingend Elemente, welche ich dynamisch füllen und damit arbeiten kann. Wenn ich jetzt Funktionen hinterlegen möchte, muss ich die warscheinlich in der entsprechenden Controller Klasse hinterlegen (richtig?). Leider habe ich genau zu diesem Thema keinerlei Anleitungen gefunden, weswegen dann die Vermutung aufkam, dass es anders gehen müsste. Kannst du mir dazu vielleicht eine gute Seite schicken, auf der die genaue Verwendung des Controllers und das ansteuern von Elementen der View beschrieben wird, oder das vielleicht sogar erklären, wenn du Zeit hast? Mfg Shadowman
  13. Ich glaube ich habe mein Problem gefunden. Ich habe keine WebForms erstellt, sondern MVC 2 Seiten, welche keine code behind Datei haben. Genau so habe ich mir das vorgestellt. Danke für diesen Tipp! Allerdings habe ich bei der Umstellung das Problem, dass ich jetzt folgenden Fehler beim Aufruf der Seite bekomme: Die Ansicht bei "~/Views/Admin/Group.aspx" muss von ViewPage, ViewPage<TViewData>, ViewUserControl oder ViewUserControl<TViewData> abgeleitet werden. Das liest sich, als wenn ich jetzt am Controller auch etwas umstellen muss. Meine cs Datei sieht ähnlich aus wie deine, bis auf dass ich noch keine Funktionen hinterlegt habe. Der Controller sieht noch so aus, wie er für die normale View war: // // GET: /Admin/Group public ActionResult Group() { return View(); }
  14. Ja ich möchte den Code auch garnicht in der aspx Seite haben, da sonst die Verwendung vom MVC Pattern hinfällig wäre. Das Problem ist ja eben die code behind Datei, welche nicht vorhanden ist. Ich werde das gleich nochmal genauer prüfen. Vielleicht habe ich auch was falsch gemacht. Ich werde dann genau beschreiben was ich mache und was ich finde, damit man es besser nachvollziehen kann.
  15. Ich habe in meiner Datenbank eine Tabelle mit Gruppen, welche ich auf einer aspx Seite ausgeben möchte. Dies habe ich mit einer asp:Table versucht, wo ich aber feststellen musste, dass es in ASP-Elementen nicht möglich ist das Ergebnis meines Querys zeilenweise innerhalb der Seite zu durchlaufen und währenddessen neue Zeilen in die asp:Table Element zu schreiben. Ich habe mir dann etwas zu GridViews angeguckt und auch hier feststellen müssen, dass ich das irgendwie mit der DataSource nicht wirklich hinbekomme. <% oracle db = new oracle(); System.Data.Common.DbDataReader group = null; db.prepare("SELECT * FROM zdvs_groups ORDER BY name ASC"); db.execute(); while(db.fetch(ref group)) { %> <!-- hier soll die Zeile ausgegeben werden --> <% } db.close(); %> Solchen Programmcode kann man laut einigen Quellen nicht innerhalb von Elementen ausführen, welche runat="server" als Parameter haben. Jetzt habe ich versucht das ganze in einer normalen HTML Table darzustellen, bekomme jetzt aber den Fehler "Der Typ- oder Namespacename "global_asax" ist im Namespace "ASP" nicht vorhanden." Bei einer .master Seite hat man die Möglichkeit in einer .cs Datei im Hintergrund zu steuern und Felder zu befüllen. Dies geht aber nicht bei normalen Seiten (zumindest finde ich sowas nicht). Kann mir bitte jemand einen Tipp geben, wie ich die Befüllung aus der View rausnehmen kann und es endlich hinbekomme eine Darstellung der Gruppen zu schaffen? Gruß Shadowman
  16. Ah, hier hätte ich schon gestern was schreiben können. Ich habe den Namensraum meiner Klasse direkt beim Cast mit übergeben, jedoch hatte ich beim erstellen des Projekts einen Buchstabendreher drin. Der ist aber nicht aufgefallen. Aus diesem Grund konnte meine Klasse nicht gefunden werden und auch bei meinen Versuchen (bei denen ich mein Projekt richtig geschrieben habe) konnte ich weiterhin meine eigenen Objekte nicht finden. Der Buchstabendreher ist mir dann aufgefallen und seitdem geht alles. Das mit <%@ import namespace="" %> ist allerdings sehr hilfreich, weil ich die ganze Zeit etwas gesucht habe, dass ich Namespaces oder Klassen direkt verwenden kann. Trotzdem Danke! Kann geschlossen werden
  17. Ich habe die Vorgabe keine externen Frameworks einzusetzen. Das was von Microsoft direkt vorhanden ist kann ich nutzen, sonst leider nichts, deswegen habe ich mir auch die eigene DB Klasse geschrieben. Naja, dieses Thema hat sich ja eh schon erledigt, da ich es einfach so gelassen habe, wie ichs in der alternative schon drin hatte. Jetzt habe ich jedoch ein ganz anderes Problem, was auch wieder daher kommt, dass ich ein absoluter Anfänger bin, was ASP.NET angeht: Ich habe in meiner Datenbank eine Tabelle mit Gruppen, welche ich auf einer aspx Seite ausgeben möchte. Dies habe ich mit einer asp:Table versucht, wo ich aber feststellen musste, dass es in ASP-Elementen nicht möglich ist das Ergebnis meines Querys zeilenweise innerhalb der Seite zu durchlaufen und währenddessen neue Zeilen in die asp:Table Element zu schreiben. Ich habe mir dann etwas zu GridViews angeguckt und auch hier feststellen müssen, dass ich das irgendwie mit der DataSource nicht wirklich hinbekomme. <% oracle db = new oracle(); System.Data.Common.DbDataReader group = null; db.prepare("SELECT * FROM zdvs_groups ORDER BY name ASC"); db.execute(); while(db.fetch(ref group)) { %> <!-- hier soll die Zeile ausgegeben werden --> <% } db.close(); %> Solchen Programmcode kann man laut einigen Quellen nicht innerhalb von Elementen ausführen, welche runat="server" als Parameter haben. Jetzt habe ich versucht das ganze in einer normalen HTML Table darzustellen, bekomme jetzt aber den Fehler "Der Typ- oder Namespacename "global_asax" ist im Namespace "ASP" nicht vorhanden." Bei einer .master Seite hat man die Möglichkeit in einer .cs Datei im Hintergrund zu steuern und Felder zu befüllen. Dies geht aber nicht bei normalen Seiten (zumindest finde ich sowas nicht). Kann mir bitte jemand einen Tipp geben, wie ich die Befüllung aus der View rausnehmen kann und es endlich hinbekomme eine Darstellung der Gruppen zu schaffen? Gruß Shadowman
  18. weil ich ein neuling in .net bin und das noch nicht kannte (direkt mal durchlesen)
  19. Die Klasse soll über wenige Schnittstellen beliebige Datenbankabfragen ausführen und die Ergebnisse zurückgeben können. Zusätzlich muss es möglich sein mit Hilfe von Abstraktion unterschiedliche Datenbanksysteme anbinden zu können. Über die Methode prepare wird das entsprechende SQL-Statement übergeben, welches Platzhalter enthalten kann. Platzhalter werden mit der Methode addParam an die Klasse übergeben und vor dem execute in das Statement eingebaut. Execute stellt die Verbindung zur Datenbank her und stellt intern einen Reader bereit, welcher dann Zeilenweise über die Methode fetch() durchlaufen werden kann. Zum Abschluss terminiert die Methode close die Datenbankverbindung. Die unterschiede der beiden Versionen der Methode fetch sollten nur die sein, dass ich die referenz auf den reader als Rückgabewert erhalte, anstatt die Zielvariable als referenzierten Parameter zu übergeben. Dieses Rückgabeverhalten war aber nur meinerseits optional erwünscht, um eine ähnliche Handhabung der für mich gewohnten prepared statements aus PHP zu implementieren.
  20. Hallo zusammen, ich bin noch neu in ASP.NET, aber bin schon auf einige Probleme gestoßen. Aktuell möchte ich auf meiner Masterseite eine Methode eines User-Objekts ansprechen, welches ich in der Session hinterlegt habe. Das User-Objekt ist eine selbst erstellte Klasse, bei der ich jedoch die Methoden nicht verwenden kann, da Sie rem Compiler an der Stelle nicht bekannt sind. Ich bekomme die Meldung: "object" enthält keine Definition für "hasPermission", und es konnte keine Erweiterungsmethode "hasPermission" gefunden werden, die ein erstes Argument vom Typ "object" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) Jetzt kommt meine eigentliche Frage: Ich habe einen Cast zum Typ user versucht, jedoch scheint meine Klasse in der Site.Master garnicht bekannt zu sein. An welcher Stelle könnte ich ein Using verwenden, damit die Klasse bekannt ist? Oder muss ich das irgendwie anders lösen? Mfg Shadowman
  21. Ein bisschen genauere Aussagen wären vielleicht sogar hilfreich
  22. Ich mag auch keine do-while schleifen! Ganz ekeliges Zeug Ich wollte die Verwendung der Rückgabewerte auf ein absolutes minimum beschränken, genauso wollte ich nichts über den Reader mit aus der Klasse geben. Das Objekt was ich rausschicke (unter Umständen wird sich das nämlich verändern und dann verwende ich möglicherweise keinen Typ mit einem Read() mehr) soll komplett über eigene Methoden angesprochen werden, wegen der Polymorphie. Nennen wir es einfach mal persönliche Gründe
  23. meinst du so if((data = db.fetch()) != null) oder so data = db.fetch(); do { // mach etwas data = db.fetch(); } while(data != null);
  24. In der Berufsschule wurde uns damals gesagt, dass eine Variablenzuweisung immer true zurück gibt, da es kein Vergleichsoperator ist, sondern ein Zuweisungsoperator. Im Grunde möchte ich nur Zeilenweise das fetch() (und somit auch den reader) durchlaufen, bis kein Ergebnis mehr kommt und gleichzeitig die Readerzeile einer Variable zuweisen. Also bleibt mir wohl nichts anderes übrig, als es wie bisher mit dieser Variante zu machen: public bool fetch(ref DbDataReader ret)
  25. Aber ich prüfe doch garnicht, ob fetch() den datentyp bool zurück gibt, sondern ob die Anweisung (data = fetch()) == true ist? oder müss ich dafür den = operator von fetch überladen?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...