2017-06-01 18 views
-4

Die Anforderung besteht darin, dass ein Benutzer ein Dateinamenformat aus vordefinierten Tags auswählen kann.Benutzerdefiniertes benutzerdefiniertes Dateinamenformat in C#

Beispiel InvoiceNo Datum Herstellername

wenn Benutzer InvoiceNo-Date-vendor wählt dann den Dateinamen wie generiert werden soll: 001-20170512-ABCElectronics

wenn Benutzer InvoiceNo-Date wählt dann den Namen Datei sollte erzeugt werden, wie: 001-20170512

wenn Benutzer Herstellername-InvoiceNo-Date wählt dann sollte der Dateiname wie generiert werden: ABCElectronics-001-20170512

forma t.Replace ("InvoiceNo", generateNo()); Wird .Replace zuerst prüfen, ob ein String existiert und dann den 2. Parameter ausführt? Der zweite Parameter könnte eine lang andauernde Methode sein.

Sollte ich zuerst prüfen, ob ein Tag existiert im Dateiformat und dann ersetzen oder einfach verwenden. Replace-Methode ohne Überprüfung?

Dank

+3

Was haben Sie versucht und wo stecken Sie fest? Fragen Sie nur, wie Sie Zeichenfolgen in C# verketten? Es ist nicht klar, was das Problem ist. – David

+0

'it.Replace (" InvoiceNo ", theInvoiceNumber) .Replace (" Date ", theDate) ...' –

+1

* "Ich brauche ein Codebeispiel" * ist keine Frage ... Was hast du bisher versucht? Wo genau stecken Sie fest? Bitte werfen Sie einen Blick auf die folgende Stack Overflow-Seite und versuchen Sie, Ihre Frage entsprechend zu aktualisieren: [Wie stelle ich eine gute Frage?] (Https://stackoverflow.com/help/how-to-ask) – bassfader

Antwort

1

einfache Art und Weise:

input = input.Replace("InvoiceNo",generateInvo()); 
input = input.Replace("Date",generateDate()); 
input = input.Replace("Vendorname",generateVendor()); 

dies wird das erste Vorkommen dieser Strings für den Code, den Sie ändern wollen. Sie können dies auch in einer Zeile wie x.Replace(y0,y1).Replace(z0,z1); tun, wenn Sie möchten.

+1

Irgendwie bevorzuge ich nicht, diese "InvoiceNo" usw. zu kodieren. Ich denke, ich werde sie aus der Datenbank holen und dann versuchen, das Dateiformat zu finden und zu ändern, das vom Benutzer – Iffi

+1

input.Replace ("InvoiceNo", generateInvo ()); Will .Replace zuerst prüfen, ob ein String existiert und führt dann den 2. Parameter aus? Der zweite Parameter könnte eine lang andauernde Methode sein. – Iffi

+0

nein wird es nicht, es wird ersetzt, falls "InvoiceNo" gefunden wird, aber nicht bestätigt –

Verwandte Themen