Announcement

Collapse
No announcement yet.

typ-definition

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

  • typ-definition

    Hallo!

    Komme aus der Delphi-Welt und soll etwas in c# portieren.
    Bei folgendem scheitern meine bescheidenen Kenntnisse schon:
    <p>
    Delphi:
    CONST
    MaxPunkte = 300;
    TYPE
    TPunkt = RECORD
    x,y : integer;
    END;

    TPunktArray = ARRAY[1..MaxPunkte, 1..MaxPunkte] OF TPunkt;

    Folgende Frage also dazu:
    1. Kann ich diese Definitionen public im Namespace generell machen?
    2. Oder muß/kann dies nur in einer Klasse geschehen?
    3. Wie sieht das mit dem alten SetLength aus? Muß das Array irgenwie initialisiert werden? (Dann brauch man wohl eine Klasse?!?)
    <p>
    Das ist bislang mein Versuch:
    <p>
    namespace irgenwas
    {
    public struct TPunkt
    {
    public int x;
    public int y;
    }
    //Und nun?? Hier wird immer eine classe, struct oder delegate erwartet.
    //Das ist aber nicht gewünscht (Oder muß daraus eine Klasse gem
    //acht werden?

    public class MyClass
    {
    //Hier will ich structs mit elementen vom Typen TPunktarray definieren und verwenden

    }
    }

    Vielen dank im voraus und viele Grüße an die ewig Fleißigen,

    Nils

  • #2
    Anschlußproblem:<p>
    Gibt es eine elegante c#-Alternative zu Delphis FILE OF Typ?
    <pre>
    VAR
    Headerfile : FILE OF THeader;
    BEGIN
    AssignFile(..); Reset(..); Read(Headerfile);
    </pre><p>
    Habe bislang nur was über Streams gefunden. Dabei muß ich aber jedes Element einzeln über Read rauslesen; die Struktur (Quasi Record) ist also verlorengegangen.<p>
    Viele grüße, Nil

    Comment


    • #3
      Hallo,

      &gt;Gibt es eine elegante c#-Alternative zu Delphis FILE OF Typ?

      die eigentliche Frage ist die, ob es überhaupt Sinn macht, den "alten" Weg 1:1 mit .NET nachzubauen. Unter .NET ist alles ein Objekt, somit sind Klassen immer im Spiel. Und über die <i>Serializer</i> kann sich jede Klasse "automatisch" in einen Stream/eine Datei schreiben. Der Umweg über FILE OF Header ist somit gar nicht notwendig.

      Wenn die alte Anwendung vollständig nach .NET migriert werden soll, macht das Ändern der gespeicherten Datenstruktur Sinn. Wenn ein Mischbetrieb (Alt/Neu) vorgesehen ist, würde ich via P/Invoke aus dem C#-Programm auf eine "alte" DLL (die eventuell als Brückenkopf neu geschrieben wird) zugreifen, um die "alten" Daten lesen zu können

      Comment


      • #4
        Hallo!<p>
        Erstmal vielen Dank für die Antwort. Habe mir dieses serialize-Objekt mal angeschaut, weiß nur nicht so recht wie ich dem Binary-Formatter sagen soll, wie er den Stream interpretieren kann, habe bislang nur kleine Beispiele mit Strings gefunden. Das Projekt hat aber diese Struktur mit den ARRAY[300,300]. Habe jetzt mal den desierialize ausgeführt und erhalte folgende Fehlermeldung: Execption beim Serialize - Objekt, Zusätzliche Information : Inkompatible BinaryFormatter-Version. Erwartete Version 1.0, erhaltene Version : 1879066551.83 und so weiter..<p>
        Gibt es irgenwo ein gutes Code-Beispiel, daß ich mir mal anschauen könnte?<p>
        Vielen Dank, Nil

        Comment

        Working...
        X