AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Übersetzung in VB-Code

Ein Thema von hansklok · begonnen am 26. Nov 2014 · letzter Beitrag vom 8. Dez 2014
Antwort Antwort
DbSam

Registriert seit: 27. Nov 2014
5 Beiträge
 
#1

AW: Übersetzung in VB-Code

  Alt 27. Nov 2014, 13:44
Hallo zurück,

ja, natürlich würde Deine Zeile Code auch ausreichen.
Ein Array kann man leider nicht als Konstante deklarieren, genau das war aber die Frage.
Außerdem muss man immer daran denken, welches Enum nun gerade für dieses Array genommen werden soll.
Etc. pp. Also insgesamt funktionsfähig, aber doch sehr wackelig.

Mein Codebeispiel dient als Demonstration dieser Funktionalität, gekapselt in einer Klasse. Diese ist problemlos erweiterbar, ergibt einfach lesbaren Code(wenn anständige Namen vergeben wurden ) und verhindert falsche Zugriffe(vgl. Wertabfrage außerhalb des Arrays) schon beim programmieren. In größeren Projekten sind solche gekapselten Funktionalitäten ein unschlagbarer Vorteil.

Dass es andere Wege gibt, welche anscheinend einfacher sein könnten, das habe ich nicht ausgeschlossen.
Wenn man in einer objektorientierten Umgebung arbeitet und bei der Umstellung an ein paar Stellen auf Probleme stößt, warum dann nicht gleich richtig lösen?

Außerdem kann man an den zwei Delphi-Codefetzen doch nur erahnen, wann, wo und wie oft dies nun benötigt wird. Je nachdem kann man das nun ausbauen oder nicht...

Mal sehen wie sich Hans dazu äußert...



Gruß Carsten

Edit:
Wobei ich mich frage, warum diese Werte nicht in eine separate (Steuerungs-)Tabelle ausgelagert werden und man dann damit arbeitet. Aber das ist eine andere Frage.

Geändert von DbSam (27. Nov 2014 um 14:11 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Übersetzung in VB-Code

  Alt 27. Nov 2014, 14:42
Alles klar.

In C# macht 'man' (also einige Programierer) das z.B. über Attribute. Das sollte so auch in VB gehen. Da wird dann jedem Enum ein Attribut (z.B. 'TextRepresentation') verpasst und das repräsentiert dann eben den Text.

Der Vorteil ist der, das der String direkt am Enum 'klebt'. Das finde ehrlich gesagt, noch besser, als eine Liste zu erweitern.

PS: Hast Du bei deinem Codeschnippel auch die 'Add', 'Clear', 'Delete' etc Methoden verborgen, sodaß man die Liste nicht selbst erweitern kann?
  Mit Zitat antworten Zitat
DbSam

Registriert seit: 27. Nov 2014
5 Beiträge
 
#3

AW: Übersetzung in VB-Code

  Alt 27. Nov 2014, 15:07
Hhmm, wie schaut das dann in C# genau aus?
Ein Enum ist in VB ein Enum. Du kannst den Wert aber auch als String ausgeben, was aber bei Leerstrings wie hier im Beispiel nicht funktioniert.

Zu Deinem PS:
Nein, da hast Du recht, habe ich vorhin nicht dran gedacht.
Jetzt vollständig gekapselt, von Außen nur noch GetValue und das Enum erreichbar:
Habe der Einfachheit halber noch eine Klasse als Hülle drum gelegt...
Code:
Public Class Approx
    Private o As New GEDCOMDateApproximatedColl
    Public Enum eGEDCOMApproximated
        daExact
        daAbout
        daCalculated
        daEstimated
    End Enum

    Public Function GetValue(ByVal Item As eGEDCOMApproximated) As String
        Return o.GEDCOMDateApproximated(Item)
    End Function

    Private Class GEDCOMDateApproximatedColl
        Inherits CollectionBase

        Friend Sub New()
            Me.Add("")
            Me.Add("ABT")
            Me.Add("CAL")
            Me.Add("EST")
        End Sub

        Friend Function GEDCOMDateApproximated(ByVal Item As eGEDCOMApproximated) As String
            Dim o As GEDCOMApproximated = CType(Me.InnerList(Item), GEDCOMApproximated)
            Return o.Value
        End Function

        Private Sub Add(ByVal Item As String)
            Dim o As New GEDCOMApproximated
            o.Value = Item
            Me.InnerList.Add(o)
        End Sub

        Friend Class GEDCOMApproximated
            Friend Property Value As String
        End Class
    End Class
End Class
Deklaration und Aufruf so:
Code:
   'Deklaration wie und wo benötigt:
    Public GEDCOMDateApproximated As New Approx

    'Aufruf in etwa so:
    Private Sub Beispiel() Handles Button1.Click
        MessageBox.Show(Me.GEDCOMDateApproximated.GetValue(Approx.eGEDCOMApproximated.daAbout))
    End Sub

Gruß Carsten
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Übersetzung in VB-Code

  Alt 27. Nov 2014, 18:39
VB.Net ??

Kann nicht ersehen das hier VB.NET gemeint war.
Lese hier nur was von VB-Code (VisualBasic)

Aber egal.

gruss
  Mit Zitat antworten Zitat
DbSam

Registriert seit: 27. Nov 2014
5 Beiträge
 
#5

AW: Übersetzung in VB-Code

  Alt 27. Nov 2014, 22:41
Gruß zurück,

Du meinst, Hans will sein Delphi in die mittlerweile 'Mumiensprache' VB6 übersetzen?
So etwas macht man doch nicht mehr wirklich im Jahr 2014, denk/dachte ich.


Gruß Carsten
  Mit Zitat antworten Zitat
hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#6

AW: Übersetzung in VB-Code

  Alt 27. Nov 2014, 23:37
Gruß zurück,

Du meinst, Hans will sein Delphi in die mittlerweile 'Mumiensprache' VB6 übersetzen?
So etwas macht man doch nicht mehr wirklich im Jahr 2014, denk/dachte ich.


Gruß Carsten
...nun, ich habe VisualBasic für diejenigen erwähnt, die Xojo nicht kennen. Es gibt da sehr viele Gemeinsamkeiten.

An alle anderen: vielen Dank für den Input. Ich werde mir alles in Ruhe ansehen und Feedback geben.

Herzlichen Dank
  Mit Zitat antworten Zitat
DbSam

Registriert seit: 27. Nov 2014
5 Beiträge
 
#7

AW: Übersetzung in VB-Code

  Alt 27. Nov 2014, 23:51
Zitat:
An alle anderen: vielen Dank für den Input.
Bitte, gern geschehen.

Vielleicht schreibst Du das nächste mal besser gleich was Du willst und nicht solch einen Mumpitz.


Mit freundlichen Grüßen
Carsten

PS:
Wobei Du das auch in Xojo kapseln solltest.

Geändert von DbSam (27. Nov 2014 um 23:53 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Übersetzung in VB-Code

  Alt 8. Dez 2014, 03:08
Gruß zurück,

Du meinst, Hans will sein Delphi in die mittlerweile 'Mumiensprache' VB6 übersetzen?
So etwas macht man doch nicht mehr wirklich im Jahr 2014, denk/dachte ich.


Gruß Carsten
...nun, ich habe VisualBasic für diejenigen erwähnt, die Xojo nicht kennen. Es gibt da sehr viele Gemeinsamkeiten.

An alle anderen: vielen Dank für den Input. Ich werde mir alles in Ruhe ansehen und Feedback geben.

Herzlichen Dank
Genau das meinte/meine ich.
Wie gesagt kann nirgendwo ersehen das VB.NET gemeint war.
Und zur INFO!
http://de.wikipedia.org/wiki/Xojo

Es gibt KEINE Portierung nach .NET

Zitat:
Dankeschön für euren Input. Es war mir eine große Hilfe
Na ja es wurde doch alles vorher schon gesagt.
Zitat:
...aus meinem Beitrag gehen alle Eckpunkte exakt hervor
Leider nein. Ansonsten hätten nicht so viele hier .NET Code angewendet.

gruss
  Mit Zitat antworten Zitat
hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#9

AW: Übersetzung in VB-Code

  Alt 8. Dez 2014, 02:10
Ok, zugegeben es hat etwas gedauert, aber ich habe nun eine sehr einfache Lösung gefunden:
Code:
Enum TGEDCOMApproximated As Integer
  daExact
  daAbout
  daCalculated
  daEstimated
End Enum

Function GEDCOMDateApproximatedArray(Value As TGEDCOMApproximated) As String
  Select Case Value
    Case TGEDCOMApproximated.daAbout
      Return "ABT"
    Case TGEDCOMApproximated.daCalculated
      Return "CAL"
    Case TGEDCOMApproximated.daEstimated
      Return "EST"
    Case TGEDCOMApproximated.daExact
      Return "" End Select
End Function
Dankeschön für euren Input. Es war mir eine große Hilfe
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz