none
String Array in Resource speichern RRS feed

  • Frage

  • Ich will in Resources.resx Textstrings speichern, die später in ein Array übertragen werden sollen:

    txt[0]="eins"
    txt[1]="zwei"

    usw.Wie kann ich das in der Resourcendatei eingeben?

    Wenn ich bspw.

    Name  Wert
    txt1  eins
    txt2  zwei

    eintrage, wie kann ich dann die Namen in einer Schleife durchlaufen? Nach dem Motto:

    var text = txt??

    Das geht ja leider auch nicht in der Resource:

    Name    Wert
    txt[0]  eins
    txt[1]  zwei

    Im Web finde ich dazu kein Beispiel.



    Mittwoch, 26. März 2014 21:00

Alle Antworten

  • Hallo,
    die Resourcen sind einzelne String-Variablen. Die kann man nur über einen Umweg in einer Schleife durchlaufen. Dieser Umweg nennt sich Reflection und ließt den geschriebenen Code zur Laufzeit aus. Das ist aber weder performant noch sicher gegen Tippfehler. Darum solltest du darauf besser verzichten.

    Die normalen Resourcen geben dir keine Möglichkeit ein Array zu speichern. Lediglich einzelne Strings und Dateien sind möglich. Somit wirst du wohl nicht richtig drum herum kommen alles einzeln zu übertragen.

    Erkläre mal bitte was genau du vor hast, eventuell gibt es noch einen ganz anderen Lösungsweg.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Mittwoch, 26. März 2014 21:33
  • Ich will ca. 100 Strings definieren, die dann in eine Auswahlliste geladen werden sollen (Irgendwann soll das auch noch zweisprachig werden - wenn ich irgendwann mal eine Anleitung dazu finde, wie das wirklich funktioniert, denn alles, was ich dazu finde, klappt irgendwie nicht oder nur halb). Es macht halt keinen Sinn, wenn ich dazu dann 100 Anweisungen mit festen Variablennamen erstellen muß. Dann kann ich das String Array auch gleich im Code ablegen. Mir ist auch klar, daß ich eine Textdatei nehmen kann, die ich dann mit einer eigenen Einleseroutine auswerte. Ich dachte nur, daß Ressourcen so toll wären. Aber ich komme aus einer anderen Programmierwelt und kämpfe mit so manchen Visual Studio Eigenarten...
    Donnerstag, 27. März 2014 07:21
  • Hi,
    wenn es Dir um Auswahllisten geht, dann speichere die Einträge für eine Liste mit einem Trennzeichen in einem String. Mit Split und neuer Listeninstanz kannst Du dann mit wenig Aufwand die Liste bereitstellen.

    Alternativ wäre auch eine Textdatei als Ressource möglich. Diese Textdatei musst Du dann aber mit etwas mehr Aufwand in eine Liste umwandeln.

    --
    Peter

    Donnerstag, 27. März 2014 07:53
  • Hm. Elegant ist das nicht, wenn 100 Texte in einem String hintereinander stehen. Aber gut, das geht natürlich. Ich dachte, daß geht zeitgemäßer.

    Danke.

    Freitag, 28. März 2014 07:12
  • Hi,
    warum ist eine Textdatei als Ressource keine zeitgemäße Lösung? Sie ist einfach zu erstellen - 100 Zeilen mit den 100 Zeichenketten - und zu pflegen und kann aber in Abhängigkeit von der Sprache im Programm geladen werden.

    --
    Peter

    Freitag, 28. März 2014 09:20