2010-07-23 9 views
1

Salut à tous je l'ai fait un code pour enregistrer mon fichier comme suitEnregistrez le fichier dans un fichier texte unique et aussi dans le chemin i spécifié

 if (m_strStandardEntryClassCode == "PPD") 
     { 
      m_strPath += "/PPD_BatchHeader_" + m_strDate + ".txt"; 
     } 
     else 
     { 
      m_strPath += "/CCD_BatchHeader_" + m_strDate + ".txt"; 
     } 
     using (TextWriter tw = new StreamWriter(m_strPath)) 
     { 
      tw.Write(m_strRecordTypeCode.PadLeft(1, '0')); 
      tw.Write(m_strServiceClassCode.PadLeft(3, '0')); 
      tw.Write(m_strCompanyName.PadRight(16, ' ')); 
      tw.Write(m_strCompanyDiscretionaryData.PadRight(20, ' ')); 
      tw.Write(m_strCompanyIdentification.PadRight(10, ' ')); 
      tw.Write(m_strStandardEntryClassCode.PadRight(3, ' ')); 
      tw.Write(m_strCompanyEntryDescription.PadRight(10, ' ')); 
      tw.Write(m_strCompanyDescriptiveDate.PadLeft(6, '0')); 
      string m_strEffDate = m_strEffectiveEntryDate.Replace("/", ""); 
      tw.Write(m_strEffDate.PadLeft(6, '0')); 
      tw.Write(m_strOriginatorStatusCode.PadRight(1, ' ')); 
      tw.Write(m_strOriginationDFIIdentification.PadLeft(8, '0')); 
      tw.Write(m_strBatchNumber.PadLeft(7, '0')); 
      tw.Flush(); 
      tw.Close(); 
     } 

Maintenant, je voudrais enregistrer ces deux fichiers pour seul fichier et aussi en tant que multiple. Quelqu'un peut-il dire comment le faire ...

+0

Pouvez-vous expliquer la question mieux, s'il vous plaît, je ne suis pas vraiment sûr de ce que vous voulez – Vedran

+0

En fait, je sauve mes données selon le code ci-dessus dans deux fichiers texte différents avec nom différent. Maintenant ce que j'ai besoin est si je choisis une option de ma zone de liste déroulante de l'extrémité avant en tant que X et cliquez sur enregistrer je voudrais enregistrer les données présentes sur ce formulaire dans un fichier texte. Et si je choisis l'autre option comme Y je voudrais ajouter ces données de forme au même dossier de texte. Et en même temps, je voudrais l'enregistrer dans différents fichiers texte – Dotnet

+0

Initialement je l'enregistre dans 2 fichiers différents maintenant je voudrais l'enregistrer dans un fichier unique ainsi que avec un nom de fichier différent – Dotnet

Répondre

1

Vous voudriez quelque chose comme ceci.

Vos données sont les mêmes à chaque fois (ou du moins, je ne vois pas comment les données diffèrent), mais je suis sûr que vous aurez l'essentiel.

Vous devez utiliser File.Append pour ajouter de nouvelles données à un fichier et File.Open pour effacer et écrire de nouvelles données. Appelez MergedDataWrite deux fois. Si vous avez besoin d'écrire plusieurs fichiers.

public void SeparateDataWrite() 
{ 
    if (m_strStandardEntryClassCode == "PPD") 
    { 
    m_strPath += "/PPD_BatchHeader_" + m_strDate + ".txt"; 
    } 
    else 
    { 
    m_strPath += "/CCD_BatchHeader_" + m_strDate + ".txt"; 
    } 

    using (StreamWriter w = File.Open(m_strPath, FileMode.Create) 
    { 
    WriteData(w); 
    w.close(); 
    } 
} 

public MergedDataWrite() 
{ 
    using (StreamWriter w = File.Append("somefilename.txt") 
    { 
    WriteData(w); 
    w.Close(); 
    } 
} 

public void WriteData(TextWriter tw) 
{ 
      tw.Write(m_strRecordTypeCode.PadLeft(1, '0')); 
      tw.Write(m_strServiceClassCode.PadLeft(3, '0')); 
      tw.Write(m_strCompanyName.PadRight(16, ' ')); 
      tw.Write(m_strCompanyDiscretionaryData.PadRight(20, ' ')); 
      tw.Write(m_strCompanyIdentification.PadRight(10, ' ')); 
      tw.Write(m_strStandardEntryClassCode.PadRight(3, ' ')); 
      tw.Write(m_strCompanyEntryDescription.PadRight(10, ' ')); 
      tw.Write(m_strCompanyDescriptiveDate.PadLeft(6, '0')); 
      string m_strEffDate = m_strEffectiveEntryDate.Replace("/", ""); 
      tw.Write(m_strEffDate.PadLeft(6, '0')); 
      tw.Write(m_strOriginatorStatusCode.PadRight(1, ' ')); 
      tw.Write(m_strOriginationDFIIdentification.PadLeft(8, '0')); 
      tw.Write(m_strBatchNumber.PadLeft(7, '0')); 
      tw.Flush(); 
} 
0

Différentes façons de le faire, je dirais.

  1. Copiez le numéro de fichier 1 dans un fichier appelé quel fichier combiné unique doit être appelé.
  2. Ouvrez le nouveau fichier (le fichier combiné unique) à ajouter.
  3. Ouvrez le numéro de fichier 2 pour lire et lire tout le contenu.
  4. Ecrivez les données que vous venez de lire dans le fichier combiné unique.

Cette link a un échantillon de code simple pour faire quelque chose de similaire.

Une autre option serait de stocker toutes les données en mémoire, puis d'écrire les 3 fichiers directement de la mémoire.

+0

Au moment de cliquer sur Enregistrer est-il possible de sauvegarder – Dotnet

Questions connexes