vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
String.Format in erweiterter Form 
Autor: akop303
Datum: 02.09.15 15:05

Hallo Leute,

ich arbeite gerade an einem großem Projekt für die Firma. Auch wenn dieser noch am Anfang steht, ist es abzusehen das eine Bestimmte Funktion immer wieder benötigt wird.

In einem String müssen an verschiedenen Stellen mehrere Datensätze durch einen bestimmten Zeichen getrennt, eingefügt werden.

Dafür habe ich folgende Funktion geschrieben:
Public Function FormatWithLines(TextPattern As String, LinePattern() As String, _
  params()()() As Object, Optional lineSeparator As String = vbCrLf) As String
    Dim lines As New List(Of String)
    For a As Integer = 0 To LinePattern.Length - 1
      Dim tmpLines As New List(Of String)
      Dim Pattern As String = LinePattern(a)
      For i As Integer = 0 To params(a).Length - 1
        tmpLines.Add(String.Format(Pattern, params(a)(i)))
      Next
      lines.Add(String.Join(lineSeparator, tmpLines))
    Next
    Return String.Format(TextPattern, lines.ToArray())
  End Function
In den meisten Fällen(z.B. Export Funktionen, Erstellung der Rechnungen usw.) müssten dann die Daten so wie so erst mal gesammelt werden und der Aufruf sieht dann wahrscheinlich nicht so schlimm aus.

Nun arbeite ich gerade an einer Datenbank-Schnittstelle, die Unterschiedliche Datenbanken unterstützen soll und aber außer SELECT, UPDATE und so weiter auch CREATE TABLE, CREATE INDEX und co. unterstützen soll. Unter anderen auch MS SQL und z.B. Interbase. Die Beiden haben aber teilweise unterschiedliches Syntax für die Änderungen an der Struktur, dementsprechend müssen die SQLs nach verschiedenen Schemas aufgebaut sein.

Meine Idee war es diese Funktion dafür zu verwenden.
Der Aufruf ist dann aber ziemlich unleserlich

z.B.:
FormatWithLines("Test1 {0} {1}", {"{0}{1}", "{0}-{1}-{2}"}, {New Object()() _
  {New Object() {"t", 1}, New Object() {"t", 2}}, New Object()() {New Object() _
  {1, 2, 3}}}, ",") ' Ergibt: "Test1 t1,t2 1-2-3"
Meine Frage:
Gibt es dafür fertige Lösungen? Oder hat jemand eine Idee, wie es einfacher(leserlicher) gehen kann?


Mit freundlichen Grüßen
akop303

___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: String.Format in erweiterter Form 
Autor: Manfred X
Datum: 02.09.15 15:45

Wo bekommst Du diese Angaben zu der Gestaltung des Textes her?
Die werden wohl kaum hart codiert.
Zudem sind vermutlich bestimmte Schablonen für die Gestaltung
der verschiedenen Textsorten möglich, wobei einzufügende Textabschnitte
jeweils in ein bestimmtes Feld der Schablone gehören.

Falls Schablonen nicht möglich sind, würde ich eine Klasse erstellen,
deren Instanzen jeweils einen einzufügenden Textabschnit enthalten
plus Startposition im Text plus Formatangabe(n) - eventuell als Liste.
(Übergabe der Werte im Konstruktor).
Dazu eine Methode, der ein Text übergeben wird und die anhand der
gegebenen Format/Start-Parameter den gespeicherten Textabschnitt
in diesen Text einfügt und zurückgibt.

Für die Bildung von SQL-Kommandos gibt es in ADO.Net Commandbuilder.

Beitrag wurde zuletzt am 02.09.15 um 16:04:46 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: String.Format in erweiterter Form 
Autor: akop303
Datum: 02.09.15 16:17

Die Angaben zu Gestaltung des Textes habe ich noch nicht. Diese werden mit Sicherheit aus der (noch nicht Existierender) Datenbank stammen. Mit einer Ausnahme. Die SQLs zur Anlage einer Tabelle, Trigger, Indexes, ... werden in den dafür vorgesehenen Klassen hart Codiert.

Ich verstehe aber nicht so ganz was du mit Schablonen meinst?

___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: String.Format in erweiterter Form 
Autor: Manfred X
Datum: 02.09.15 16:53

Mit Schablonen meine ich, daß es vorgefertigte
Textformulare gibt, in die an bestimmten Stellen
(Felder) variabel Textabschnitte eingetragen werden.

Deine Format-Patterns für den GesamtText und für einzelne Zeilen
deuten auf das Vorliegen einer entsprechenden Zielsetzung hin.



Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: String.Format in erweiterter Form 
Autor: akop303
Datum: 03.09.15 09:09

Aso, klar. Die wird es später geben.

___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel