Laden...

Forenbeiträge von Seikilos Ingesamt 753 Beiträge

09.10.2008 - 19:53 Uhr

Merkwürdige Frage, allerdings habe ich eine Methode, deren Signatur so aussieht:


public meinNs.MeinTyp foo();

Der Haken ist, es gibt sehr viele Namespaces, aber immer den Rückgabetyp MeinFoo.

Dh ich hätte eine Menge Methoden ala:


public meinNs.MeinTyp foo();
public meinNs2.MeinTyp foo();
public meinNs3.MeinTyp foo();

Methoden Körper wäre gleich, mein Ziel wäre, den Namespace als Template Parameter an die Funktion (nicht Klasse!) zu übergeben.

Ich glaube, es würde gehen, wenn die Methoden komplett generisch wären:


public T foo<T>();

Aber das würde ich sehr gerne vermeiden, da nun nicht mal ansatzweise klar ist, was der Rückgabetyp ist und man so vollkommen vom Aufrufenden abhängig ist

09.10.2008 - 19:47 Uhr

Ist es möglich einen Typen als Parameter zu übergeben?

Ich muss generisch in einer Methode typeof(xy) nutzen, nun kann sich dieser Typ allerdings ändern und ich würde gerne dies parametrisieren.

09.10.2008 - 06:43 Uhr

Ich bekomme Klassen, gekapselt in Namespaces, deren Inhalt sich teilweise ständig verändert.
Mehrere dieser Klassen müssen im Code genutzt werden, nun haben die Namespaces zum teil eine gemeinsame Schnittmenge an Klassen.

Ich kann nun nicht einfach using a; using b; schreiben, weil der Compiler dann nicht mehr unterscheiden kann, aus welchem NS die jeweilige Klasse kommen soll.
Daher meine Frage, kann ich Methodenweit definieren, welches Namespace lokal genutzt werden soll?

Ich meine eine Alternative zu a.Foo und b.Foo

07.10.2008 - 19:55 Uhr

Gut, dann bin ich drauf vorbereitet, danke herbivore.

Und danke für den Tipp mit der Datei 0815Coder

07.10.2008 - 19:38 Uhr

Access muss mit meiner Middleware kommunizieren, diese muss mit Daten gefüttert werden.

Der Access Dev kann mir keine Schnittstelle via Console bieten, weil er diese nicht abfangen kann, ergo muss ich entweder Dateien einlesen, was mehr Arbeit für mich ist, oder alles über Tausend Kommandoparameter lösen.

Es wird also niemand per Hand die Middleware aufrufen, daher ist die Menge an Parametern nicht so schön, aber eher unkritisch

07.10.2008 - 19:29 Uhr

Danke für die Info, das hilft mir. Ich hätte vermutet, das Windows da irgendwelche Restriktionen auferlegt.

07.10.2008 - 19:20 Uhr

Kann ich beliebig viele und beliebig lange Zeichenketten als Parameter beim Aufruf einer C# /.net exe anhängen? Oder gibt es Restriktionen von einer Seite?

27.09.2008 - 23:03 Uhr

Werde ich testen, danke.
Auf jeden Fall hab ich keine zirkulären Abhängigkeiten.
Aber ist nicht alles XML in jedes beliebige Format überführbar? Ich mein XML ist doch auch linear

27.09.2008 - 19:56 Uhr

gibt es eigentlich einen String Serializer für generierte Klassen? XML macht der XmlSerializer, das ist super, aber gibts auch einen Serializer, der es in eine CSV datei schreiben könnte?

27.09.2008 - 14:10 Uhr

Ha, hab das vorhin auch entdeckt, aber danke für die Bestätigung, ersparrt mir ne Menge idiotischer Tipparbeit 😠

🙂

Edit: wieso vor DeSer validieren? Das XML kommt ja nicht von mir

27.09.2008 - 13:11 Uhr

Ich habe eine XSD, diese konnte ich mittels xsd.exe in eine cs Klasse mit allen relevanten Elementen unwandeln, nun fehlt mir aber noch eine Möglichkeit, eine XML in diese Klassen zu parsen.

Es gibt ja wege mit einem SQLDataAdapter und der Fill Methode solche Klassen aus SQL zu generieren (siehe hier ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/wd_adonet/html/54333cbf-bb43-4314-a7d4-6dc1dd1c44b3.htm)

Aber wie krieg ich das gleiche mit einer XML Datei die ich in einer Klasse representieren muss=

25.09.2008 - 17:18 Uhr

aaah, großartig, danke!

25.09.2008 - 16:34 Uhr

Ich hab ein Problem und zwar mach ich ein Unit test, bei dem das Ergebnis eine Exception sein soll, aber wie genau kann ich dies mit der Assert Klasse abfragen, so das der Test als bestanden gilt?

25.09.2008 - 15:37 Uhr

Was du tatsächlich machen kann, hängt doch von den Fähigkeiten des Aufrufers ab und nicht so sehr davon, was man in C# machen kann.

Ich weiß, aber über diese Seite habe ich die Macht 🙂, daher versuch ich es hier zu biegen, wie es geht.

Aber gut, alles weitere muss ich mit der anderen Seite klären.

Danke Leute

25.09.2008 - 15:32 Uhr

Ich betreue Access ja nicht und ich bezweifele ob die andere Seite die Ressourcen dafür hat, sich in solche Dinge einzuarbeiten

25.09.2008 - 15:31 Uhr

War Plan B 🙂

25.09.2008 - 15:23 Uhr

Ich hab ein Szenario in dem C# als Middleware fungiert und von einem Programm aufgerufen wird.

Nun ist der Fall so, dass der Aufrufer wohl so simpel ist, dass er keine IO Streams abgreifen kann, jedoch eine Menge an String-Daten von der Middleware bekommen muss.

Wie löst man dies am Besten? ne String Main wäre ne Idee, ist aber nicht erlaubt als Entry Point 😕, wobei das ne witzige Methode wäre, Daten zurückzugeben.

(Achja, die Anwendung, die es Aufruft wird Access sein)

23.09.2008 - 20:06 Uhr

Versuche ne XML gegen ein XSD zu validieren, der Validator rührt sich allerdings nicht, obwohl ich falsche Elemente baue:

... {
XmlDocument doc = new XmlDocument();
            doc.Schemas.Add(null, xsdFile);
           
            ValidationEventHandler v = new ValidationEventHandler(ValidationEventHandler);

            doc.AppendChild(doc.CreateElement("hokljk2"));
            // nix
            doc.Validate(null);
            // nix
            doc.Validate(v); 
            doc.Save(Console.Out);
}


 static void ValidationEventHandler(object sender, ValidationEventArgs e)
{
            throw new ArgumentException("Validierungs Fehler: " + e.Message);

}

Die XSD scheint in doc.Schemas drin zu sein, aber er wirft mir bei leibe keine Exception. Und das Element ist definitiv nicht in der XSD 🙂

Edit: Hier ein Copy Paste Code, der nicht funzen dürfte:


using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Reflection;
using System.Xml.Schema;
using System.Xml;


  static void Main(string[] args)
        {
            
                
                ValidationEventHandler v = new ValidationEventHandler(ValidationEventHandler);
                StringReader sr = new StringReader("<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"xy\"   xmlns=\"xy\"><xsd:element name=\"cat\" /></xsd:schema>");
                XmlSchema s = XmlSchema.Read(sr,v);
               
                XmlDocument doc = new XmlDocument();
                string xml = "<cats />";
                doc.Load(new StringReader(xml));
                doc.Schemas.Add(s);;
                doc.Schemas.Compile();
                doc.Validate(null);
                
                doc.Validate(v);

// Keine Exception...

return;

 }
 static void ValidationEventHandler(object sender, ValidationEventArgs e)
        {
            throw new ArgumentException("Validierungs Fehler: " + e.Message);

        }
23.09.2008 - 19:35 Uhr

Ich kappiere eine Sache nicht, die mir nicht durch das manual ersichtlich geworden ist:

 XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    //Create an attribute.
    XmlAttribute attr = doc.CreateAttribute("publisher");
    attr.Value = "WorldWide Publishing";

    //Add the new node to the document. 
    doc.DocumentElement.SetAttributeNode(attr);

Wenn ich doc.CreateAttribute schreibe, so bekomme ich ein XmlAttribute undmuss es dennoch noch irgendwo in doc plazieren. Wieso? Wäe CreateAttrubute nicht besser als static? Oder was verstehe ich da nicht?

17.09.2008 - 16:25 Uhr

XML DOM ist XMLDocument?

In der Help steht unter XML Dom viel, und viele Klassen werden aufgeführt, wie XMLNode, XMLElement usw, aber gibt es da eine Manager Klasse für? Sonst ist ja die Verwaltung dieser Klassen nicht so geschickt

17.09.2008 - 15:20 Uhr

Wobei ich keinen Ansatzpunkt für den XMLNamespacemanager für den XMLWriter finden kann.

17.09.2008 - 14:31 Uhr

Stimmt, scheint das gleiche Problem zu sein, danke 🙂

17.09.2008 - 14:15 Uhr

Hier ist doch der namespace nicht das Problem, oder?

Es geht mir um die Einträge xmlns:xsi und xsi:Schemalocation, die krieg ich ja nicht geschrieben

17.09.2008 - 12:15 Uhr

Ich versuche die folgende Zeile mittles C# zu generieren:


<ab:eXML xmlns:ab="http://domain.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="">

Mein Code sieht bis jetzt so aus:


writer.WriteStartElement("ab", "eXML", @"http://domain.de");

liefert mir ->


<ab:eXML xmlns:ab="http://domain.de">

Was ok ist, aber ich finde keinen weg, wie ich noch xmlns:xsi und xsi:schemaLocation in dieses Element integrieren kann, mein Versuch war:


writer.WriteStartElement("ab", "eXML", @"http://domain.de");
                // XSI

                writer.WriteStartAttribute("ab", "xsi", @"http://www.w3.org/2001/XMLSchema-instance");
                writer.WriteEndAttribute();

Doch daraus wird nicht das generiert, ewas ich brauche, nämlich

<ab:eXML p1:xsi="" xmlns:p1="http://www.w3.org/2001/XMLSchema-instance" xmlns:ab="http://domain.de">

(Ich vermute, dass diese Attribute nicht so einfach erstellt werden können?)

14.09.2008 - 22:24 Uhr

Ich habe eine XSD, diese habe ich genutzt um mittels xsd.exe eine c# Datei mit allen Klassen zu generieren, das hat gut geklappt.
Allerdings fehlen mir da noch ne Menge Angaben, hier ein XSD Ausschnitt aus dem Typ AddressType:

<xsd:complexType name="AddressType">
        <xsd:sequence>
            <xsd:element name="Street">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                        <xsd:maxLength value="256"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
...
     

das Attribut Street wurde durch xsd so umgewandelt:

public partial class AddressType
    {

        private string streetField;
 [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Street
        {
            get
            {
                return this.streetField;
            }
            set
            {
                this.streetField = value;
            }
        }
...

Nun sind ne Menge Infos untergegangen, wie zum Beispiel das maxLength Attribut, was ich ich nun dringend benötige.

Meine Frage ist, kann ich die XSD nun irgendwie einlesen um solche elemente wie maxLength per Hand extrahieren?

Oder gibt es einen XSD Parser, der das kann?
(Auch wenn die Elemente dem Parser unbekannt sind, so sollte er diese doch in die Klasse mitnehmen, egal wie)

14.09.2008 - 21:21 Uhr

Mein Fehler, klappt.

Danke dir!

14.09.2008 - 21:08 Uhr

Ich habe im Forum gesucht und im Web auch diesen Artikel gefunden : http://www.canerten.com/reflection-with-private-members/

Allerdings klappt es nicht.
Ich habe eine Klasse mit private und public Attributen (testweise) und public Methoden.

Der Code hier liefert alle Methoden korrekt ->

 // Get all Methods
            writeMessage("\tMethods");
            foreach(MethodInfo info in t.GetMethods())
            {

                writeMessage("\t\t"+info.ToString());
            }

(Type natürlich vorher geladen)

Dieser code hier liefer mir aber nur das public attribut der Klasse:


 writeMessage("\tAttributes");
            foreach (FieldInfo info in t.GetFields())
            {

                writeMessage("\t\t" + info.ToString());
            }

Ich habe eine Kombination der BindingFlags versucht: NonPublic | Public, aber dann sehe ich nichtmal das public Attribut (auch nicht, wenn ich das Public dort alleine stehen habe...)

Edit: Was noch merkwürdiger ist, ich bekomme bei BindingFlags.Default auch das Public Element nicht, obwohl es ja offensichtlich kein Binding spezifiziert... o_0 ?

13.09.2008 - 06:21 Uhr

Ich habe eine Frage, bei der mir die Suche noch nicht helfen konnte.

Ich habe eine XSD Datei, dank der Suche hab ich xsd.exe gefunden, damit kann ich mir eine c# Klasse der XSD zur Generierung von XML Daten erstellen, was schon mal eine enorme Hilfe ist.

Meine weitere Absicht besteht nun darin, eine GUI zu generieren, mit der ich die eine XML gemäß der generierten Klasse zu erstellen und dies möglichst generisch.
Das bedeutet, dass ich einen Weg suche, die "Complex Types" usw einer leeren XML Datei hinzuzufügen. Ich weiß nicht ob das über Reflections geht, oder wie ich möglichst generisch bleibe

29.06.2008 - 11:03 Uhr

Hibernate version:1.2

Mapping documents:

<class name="KFZ" table="kfz" discriminator-value="K">
    
    <id name="zulassung" type="String" length="20">
      <generator class="increment"/>
    </id>
    <discriminator column="fahrzeugKlasse" type="Char"/>

    <property name="preis" type="Decimal" length="2" />
    

    <subclass name="PKW" discriminator-value="P">
      <property name="anzahlTueren" type="Int32"/>
      <!--many-to-one  name="zulassung"  class="KFZ" /-->
      
    </subclass>
    
    <subclass name="LKW" discriminator-value="L">
      <property name="zuladung" type="Int32"/>
      <!--many-to-one  name="zulassung"  class="KFZ" /-->
    </subclass>

  </class>

Full stack trace of any exception that occurs:

"   bei NHibernate.Persister.Entity.AbstractEntityPersister.SetPropertyValues(Object obj, Object[] values)
   bei NHibernate.Impl.SessionImpl.InitializeEntity(Object obj)
   bei NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList hydratedObjects, Object resultSetId, ISessionImplementor session)
   bei NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
   bei NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
   bei NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)

   bei NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
   bei NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes)
   bei NHibernate.Hql.Classic.QueryTranslator.List(ISessionImplementor session, QueryParameters queryParameters)
   bei NHibernate.Impl.SessionImpl.Find(String query, QueryParameters parameters, IList results)
   bei NHibernate.Impl.SessionImpl.Find(String query, QueryParameters parameters)
   bei NHibernate.Impl.QueryImpl.List()
   bei KFZVerleih.KFZVerwaltung.loadData() in C:\\Studium\\Datenbank\\Labor 6\\KFZVerleih\\KFZVerwaltung.cs:Zeile 73.
   bei KFZVerleih.KFZVerwaltung..ctor(KFZVerleih gui) in C:\\Studium\\Datenbank\\Labor 6\\KFZVerleih\\KFZVerwaltung.cs:Zeile 57.
   bei KFZVerleih.KFZVerleih..ctor() in C:\\Studium\\Datenbank\\Labor 6\\KFZVerleih\\KFZ_Verleih.cs:Zeile 31.
   bei KFZVerleih.Program.Main() in C:\\Studium\\Datenbank\\Labor 6\\KFZVerleih\\Program.cs:Zeile 17.
   bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   bei System.Threading.ThreadHelper.ThreadStart()"

Name and version of the database you are using: mysql 5

[Copy paste aus dem NHibernate Forum]

Mein Problem ist folgendes: Ich erstelle KFZ Klassen, besser gesagt LKW und PKW, KFZ ist abstrakt und NHibernate schreibt diese auch richtig in die Datenbank (überprüft).
Jedoch bekomm ich eine Exception, wenn ich diese Objekte mit dem folgenden Code lesen will (Session usw bereits geöffnet)


kfzs = new List<KFZ>();
            q = session.CreateQuery("FROM KFZ");
            list = q.List();

Die Exception seht so aus:


MappingException
Invalid mapping information specified for type KFZVerleih.PKW, check your mapping file for property type mismatches

Das Problem wird mit den Typen Decimal, Float usw erzeugt, nicht mit Int32. Wenn ich die Klassen auf String und Int32 reduziere, klappt das obige Auslesen ohne Probleme. Mit Decimal usw bekomm ich die Objekte geschrieben (auch die Dezimalwerte sind korrent drin), aber das Auslesen endet in dieser für mich nicht hilfreichen Fehlermeldung.

12.06.2008 - 18:09 Uhr

Ja ich weiß, aber ich würd ungerne ein Wrapper um List bauen müssen, mit einer FindMe Methode, die das macht, was sie will 🙂

Aber gut, wenn es nicht anders geht, als entweder extern zu iterieren, oder einen Wrapper zu basteln, dann gehts nicht.

Danke für die Glühbirne 🙂

12.06.2008 - 18:08 Uhr

Ich habe VS 2008 und wundere mich, dass ich seit je her in der Toolbox ein DataGridView und ein DataSet habe, aber kein DataGrid. Wenn ich mit rechts auf die Toolbox klicke und die Items, die angezeigt werden solle angucke, so steht DataGrid dort aufgeführt (mit Hacken), aber finden kann ich es unter all Window Forms nicht, eigentlich nirgends in der Toolbox.
Wo ist das gute Stück denn?

12.06.2008 - 18:03 Uhr

Nein, so mein ich das nicht, der String muss schon dynamisch übergeben werden, an die Find Methode

12.06.2008 - 17:51 Uhr

Ich hab ein List<meinTyp> und würde gerne diese Liste mit einem eigenen Predicate durchsuchen, was nach einem String sucht, in der Regel will find jedoch ein Predicate vom Typ "meinTyp".

Ich stehe gerade auf dem Schlauch, kann Find dies nicht ?

12.05.2008 - 15:08 Uhr

Ich finde keine Einträge (merkwürdig) darüber, wie man in C# eine Doc Datei öffnet, mich interessieren die Formatierungen nicht, ich würde allerdings sehr gerne den Text in einer Doc Datei als Plain bekommen, ohne per Hand Zwischenschichten wie Copy & Paste einzuführen

08.05.2008 - 10:10 Uhr

Ich hab eine Datei, welche Umlaute enthält, diese versuche ich mittels

entries = new List<String>(File.ReadAllLines(file.Text));

in ein List<String> zu packen, dies klappt wunderbar, allerdings werden die Umlaute nicht korrekt dargestellt und ich bin mir nicht sicher, wo das Problem ist, ich hab dem ReadAllLines bereits den Parameter Encoding.UTF8, als auch ASCII gegeben, bei Ascii sind Umlaute alle in ? konvertiert, in UTF8 hab ichein Kästchen.
Die Datei wurde mit notepad gespeichert, müsste doch eigentlich ISO-8859-1 sein, welches von ASCII gelesen werden müsste?

Edit: Habe Encoding.GetEncoding("iso-8859-1") übersehen, Problem gelöst...

24.03.2008 - 10:51 Uhr

Ich kann ja mit RegidterHotKey einen globalen Hotkey definieren, aber sagen wir mal, mein Programm läuft im Hintergrund und lauscht auf irgend ein Hotkey, ich bin im Notepad, drücke diesen Hotkey, er wird von meinem Programm erkannt und soll nun irgend einen Plaintext an Notepad senden. Über welchen Weg erreicht man dies? Im grunde muss man dafür nicht mal den Process kennen und irgendwie das Clipboard mit dem Textfüllen und es irgendwie pasten.

Klingt wahrschienlich leichter, als es ist, wäre dankbar für Tipps

04.02.2008 - 18:36 Uhr

War eine generelle Frage, Abhängigkeiten, Pfade usw

04.02.2008 - 10:40 Uhr

Naja, es werden ja immer mehr und wäre halt super, wenn man das Rad nicht neu erfinden müsste

03.02.2008 - 11:06 Uhr

Hallo,
ich hab ein Projekt mit sehr vielen Projektmappen, nun sollen diese Mappen alle sehr ähnliches Projekteigenschaften bekommen, kann man irgendwie solche Eigenschenaften klonen? Alles per Hand ist sehr umständlich bei > 10 Projekten

31.01.2008 - 10:48 Uhr

Das klingt durchaus logisch, ich hab auf M in der Tat den meisten Speicherplatz. das erklärt es, aber auf D und E sind noch rund 50 GB pro Platte frei, seltsam, dass das Teil so ungenügsam ist.

Aber danke für die Aufklärung euch allen 🙂

30.01.2008 - 20:09 Uhr

Hmmmmm, hab alles nochmal in dem Maintenance Mode geprüft , alles auf D, sehr seltsam

30.01.2008 - 19:08 Uhr

Bei der Frage, wohin er die Anwendung installieren soll, war C:\Programme.. gelistet und unten die Übersicht aller 6 Platten, vorher/nachher. Ich hab auf D: gewechselt und immernoch stand bei M 250 mb, 2.4 GB auf C, 1.9 auf D, auf dem Rest 0 und auf M halt 250 mb...

Merkwürdig

30.01.2008 - 18:51 Uhr

Nein, ich schrieb ja oben, alles auf D

30.01.2008 - 18:33 Uhr

Ne, die sind auch auf D, M wirdnie angefasst, ich hab kein Plan, was er dort will.

30.01.2008 - 18:17 Uhr

Ich hab folgende Platten: C,D,E und K,L,M.
Die letzten drei sind eine zweitplatte, die ich ab und an boote. Die installation sollte auf D gehen, ich verstehe also, dass das Programm Daten auf C und auf D packen muss, aber warum packt es noch 250 MB auf M? M ist keine Boot Partition, wird nur auf der Zweitplatte als Backup genutzt, dennoch frisst es dort 250 MB, obwohl auf der Platte weder auf der aktuellen noch auf der anderen Installation installierte Programme gibt

03.01.2008 - 20:04 Uhr

Ja das meinte ich, direkt zugreifen 🙂
Wie haben dass in meiner Jugend denn diese Spiele Hack tools gemacht? Ich erinnere mich an tools, die aktive Prozesse ausgelesen haben, man konnte eine Adresse angeben, mit leben, munition oder so und diese Stelle wurde verändert oder eingefroren, also alle paar ms neugeschrieben

03.01.2008 - 19:05 Uhr

Gibt es einen Weg mit C# einen der bereits gestarteten Prozesse zu öffnen und diesen Prozess dann hingehend zu beinflussen?
Also Adressen-Werte ändern? Mir ist nicht ganz klar ob und wie man auf einen Prozess bzw den Speicher des Prozesses zugreift und modifiziert.

10.12.2007 - 10:33 Uhr

Cookiie, im Grunde mach ich das auch.

Herbivore: Was ich bei diesem Spruch der Optimierung nie verstanden habe, ist wenn man vorher kein Gramm darüber Nachdenkt und danach optimiert, so findet der Profiler im Code den Falschenhals, das schon, aber der Profiler sagt dir nicht, dass der gesammte Code zu langsam ist

08.12.2007 - 20:05 Uhr

Im Moment arbeitet die vorkalkulierte Matrix super.

Nun bin ich an einem anderen Problem dran, siehe Bild.

Das schwarze Kästchen hat eine Reichweite von n, ich kenne die exakte Pixelposition des Kästchens, und auch in welchem Sektor er sich befindet.
Aber was mir gerade nicht klar ist, wie ich nun die Menge der Sektoren finde, die auf dieser Radius Linie liegen. Wenn n kleiner der Sektor größe ist, sind das die 8 umliegenden Sektoren, aber so fällt mir kein weg ein.

Hm eventuell das den Kreis umspannende Rechteck nach Sektoren einzeln absuchen.
Wobei das is nicht gut, man kann ja nicht die Sektorkoordinate checken, sondern muss quasi die Sektor umgebende Fläche prüfen.

Jemand eine bessere Idee?

08.12.2007 - 12:52 Uhr

Hm, naja, ich krieg doch nicht die Werte die ich suche.
Hab mal ein Bild angehängt, ich brauche eigentlich die Entfernung, die Grau markiert ist, also 5 Sektoren (von mir aus auch 4).

Mal überlegen