2017-06-01 1 views
-4

L'exigence est qu'un utilisateur puisse choisir un format de nom de fichier à partir de balises prédéfinies.Format de nom de fichier personnalisé défini par l'utilisateur dans C#

Exemple InvoiceNo Date de VendorName

si l'utilisateur choisit InvoiceNo-date-vendorname alors le nom du fichier doit être généré comme: 001-20170512-ABCElectronics

si l'utilisateur choisit InvoiceNo-date puis le nom du fichier doit être généré comme: 001-20170512

si l'utilisateur choisit VendorName-InvoiceNo-date alors le nom du fichier doit être généré comme: ABCElectronics-001-20170512

forma t.Remplacer ("InvoiceNo", generateNo()); Will .Replace d'abord vérifier si la chaîne existe et ensuite exécute le 2ème paramètre? Le 2ème paramètre pourrait être une méthode longue. Dois-je d'abord vérifier si la balise existe dans le format de fichier, puis remplacer ou simplement utiliser la méthode .Remplacer sans vérifier?

Merci

+3

Qu'avez-vous essayé et où êtes-vous bloqués? Demandez-vous simplement comment concaténer les chaînes en C#? Ce n'est pas clair quel est le problème. – David

+0

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

+1

* "J'ai besoin d'un exemple de code" * n'est pas une question ... Qu'avez-vous essayé jusqu'ici? Où êtes-vous exactement coincé? S'il vous plaît jeter un oeil à la page Stack Overflow ci-dessous et essayer de mettre à jour votre question en conséquence: [Comment puis-je poser une bonne question?] (Https://stackoverflow.com/help/how-to-ask) – bassfader

Répondre

1

façon simple:

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

cela va changer la première occurrence de ces chaînes pour le code que vous désirez. Vous pouvez également le faire en une ligne comme x.Replace(y0,y1).Replace(z0,z1); si vous le souhaitez.

+1

D'une certaine manière je ne préfère pas hardcode ces "InvoiceNo", etc. Je pense que je vais les obtenir former la base de données et ensuite essayer de trouver et de changer dans le format de fichier choisi par l'utilisateur – Iffi

+1

input.Replace ("InvoiceNo", generateInvo ()); Will .Replace d'abord vérifier si la chaîne existe et ensuite exécute le 2ème paramètre? Le 2ème paramètre pourrait être une méthode longue. – Iffi

+0

non, il le remplacera au cas où "InvoiceNo" serait trouvé mais confirmerait –