Replace function not working












0












$begingroup$


I’m really stuck on some VB.Net code. And I’m really hoping you all can help.



Here's my code (with lots of help from Mary). There’s a master document (Bld_Master_Document.sgm”) which holds entities (&Ch1;), there and be an infinite number of entities. There are files that match the number of the entity (“Bld_Ch1.sgm”). I need to search the master document for the entity and paste the contents of the matching sgm file. The code works ACCEPT for the replace function line 24. I’ve tested a simple .Replace function with just strings and that works. But replace function doesn’t work when using the variables CreateList() makes (fc.OldString & fc.NewString).



Can you please take a look at my code. I’m hoping It’s something simple I’m missing.



Thank you for taking the time to work on this with me.
Maxine



Public Class Form1
Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
'Add a FolderBrowseDialog to your form designer
FolderBrowserDialog1.ShowDialog()
Dim searchDir As String = FolderBrowserDialog1.SelectedPath
MsgBox("Search Dir " & searchDir)
Dim existingFileMaster = Path.Combine(searchDir, "Bld1_Master_Document.sgm")
MsgBox("fOUND MasterBuild file " & existingFileMaster)
Dim lstFileChanges = CreateList(searchDir)

'The following method does NOT return an array of lines
Dim strMasterDoc = File.ReadAllText(existingFileMaster)
For Each fc In lstFileChanges
strMasterDoc = strMasterDoc.Replace(fc.OldString, fc.NewString)
Next
File.WriteAllText(existingFileMaster, strMasterDoc)
End Sub

Private Function CreateList(selectedPath As String) As List(Of FileChanges)
Dim lstFC As New List(Of FileChanges)
Dim count As Integer = Directory.GetFiles(selectedPath, "*.sgm").Count-1
'MsgBox("COUNT " & count)
For i = 1 To count
Dim fc As New FileChanges
fc.OldString = $"&CH{i};"
fc.FileName = $"Chapter{i}.sgm"
fc.NewString = File.ReadAllText(Path.Combine(selectedPath, fc.FileName))
lstFC.Add(fc)
Next
Return lstFC
End Function
End Class

Public Class FileChanges
Public Property OldString As String '&CH1.sgm
Public Property FileName As String 'Chapter1.sgm
Public Property NewString As String 'Contents of Chapter1.sgm, the string to insert
End Class









share|improve this question









New contributor




Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$

















    0












    $begingroup$


    I’m really stuck on some VB.Net code. And I’m really hoping you all can help.



    Here's my code (with lots of help from Mary). There’s a master document (Bld_Master_Document.sgm”) which holds entities (&Ch1;), there and be an infinite number of entities. There are files that match the number of the entity (“Bld_Ch1.sgm”). I need to search the master document for the entity and paste the contents of the matching sgm file. The code works ACCEPT for the replace function line 24. I’ve tested a simple .Replace function with just strings and that works. But replace function doesn’t work when using the variables CreateList() makes (fc.OldString & fc.NewString).



    Can you please take a look at my code. I’m hoping It’s something simple I’m missing.



    Thank you for taking the time to work on this with me.
    Maxine



    Public Class Form1
    Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
    'Add a FolderBrowseDialog to your form designer
    FolderBrowserDialog1.ShowDialog()
    Dim searchDir As String = FolderBrowserDialog1.SelectedPath
    MsgBox("Search Dir " & searchDir)
    Dim existingFileMaster = Path.Combine(searchDir, "Bld1_Master_Document.sgm")
    MsgBox("fOUND MasterBuild file " & existingFileMaster)
    Dim lstFileChanges = CreateList(searchDir)

    'The following method does NOT return an array of lines
    Dim strMasterDoc = File.ReadAllText(existingFileMaster)
    For Each fc In lstFileChanges
    strMasterDoc = strMasterDoc.Replace(fc.OldString, fc.NewString)
    Next
    File.WriteAllText(existingFileMaster, strMasterDoc)
    End Sub

    Private Function CreateList(selectedPath As String) As List(Of FileChanges)
    Dim lstFC As New List(Of FileChanges)
    Dim count As Integer = Directory.GetFiles(selectedPath, "*.sgm").Count-1
    'MsgBox("COUNT " & count)
    For i = 1 To count
    Dim fc As New FileChanges
    fc.OldString = $"&CH{i};"
    fc.FileName = $"Chapter{i}.sgm"
    fc.NewString = File.ReadAllText(Path.Combine(selectedPath, fc.FileName))
    lstFC.Add(fc)
    Next
    Return lstFC
    End Function
    End Class

    Public Class FileChanges
    Public Property OldString As String '&CH1.sgm
    Public Property FileName As String 'Chapter1.sgm
    Public Property NewString As String 'Contents of Chapter1.sgm, the string to insert
    End Class









    share|improve this question









    New contributor




    Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$















      0












      0








      0





      $begingroup$


      I’m really stuck on some VB.Net code. And I’m really hoping you all can help.



      Here's my code (with lots of help from Mary). There’s a master document (Bld_Master_Document.sgm”) which holds entities (&Ch1;), there and be an infinite number of entities. There are files that match the number of the entity (“Bld_Ch1.sgm”). I need to search the master document for the entity and paste the contents of the matching sgm file. The code works ACCEPT for the replace function line 24. I’ve tested a simple .Replace function with just strings and that works. But replace function doesn’t work when using the variables CreateList() makes (fc.OldString & fc.NewString).



      Can you please take a look at my code. I’m hoping It’s something simple I’m missing.



      Thank you for taking the time to work on this with me.
      Maxine



      Public Class Form1
      Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
      'Add a FolderBrowseDialog to your form designer
      FolderBrowserDialog1.ShowDialog()
      Dim searchDir As String = FolderBrowserDialog1.SelectedPath
      MsgBox("Search Dir " & searchDir)
      Dim existingFileMaster = Path.Combine(searchDir, "Bld1_Master_Document.sgm")
      MsgBox("fOUND MasterBuild file " & existingFileMaster)
      Dim lstFileChanges = CreateList(searchDir)

      'The following method does NOT return an array of lines
      Dim strMasterDoc = File.ReadAllText(existingFileMaster)
      For Each fc In lstFileChanges
      strMasterDoc = strMasterDoc.Replace(fc.OldString, fc.NewString)
      Next
      File.WriteAllText(existingFileMaster, strMasterDoc)
      End Sub

      Private Function CreateList(selectedPath As String) As List(Of FileChanges)
      Dim lstFC As New List(Of FileChanges)
      Dim count As Integer = Directory.GetFiles(selectedPath, "*.sgm").Count-1
      'MsgBox("COUNT " & count)
      For i = 1 To count
      Dim fc As New FileChanges
      fc.OldString = $"&CH{i};"
      fc.FileName = $"Chapter{i}.sgm"
      fc.NewString = File.ReadAllText(Path.Combine(selectedPath, fc.FileName))
      lstFC.Add(fc)
      Next
      Return lstFC
      End Function
      End Class

      Public Class FileChanges
      Public Property OldString As String '&CH1.sgm
      Public Property FileName As String 'Chapter1.sgm
      Public Property NewString As String 'Contents of Chapter1.sgm, the string to insert
      End Class









      share|improve this question









      New contributor




      Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $endgroup$




      I’m really stuck on some VB.Net code. And I’m really hoping you all can help.



      Here's my code (with lots of help from Mary). There’s a master document (Bld_Master_Document.sgm”) which holds entities (&Ch1;), there and be an infinite number of entities. There are files that match the number of the entity (“Bld_Ch1.sgm”). I need to search the master document for the entity and paste the contents of the matching sgm file. The code works ACCEPT for the replace function line 24. I’ve tested a simple .Replace function with just strings and that works. But replace function doesn’t work when using the variables CreateList() makes (fc.OldString & fc.NewString).



      Can you please take a look at my code. I’m hoping It’s something simple I’m missing.



      Thank you for taking the time to work on this with me.
      Maxine



      Public Class Form1
      Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
      'Add a FolderBrowseDialog to your form designer
      FolderBrowserDialog1.ShowDialog()
      Dim searchDir As String = FolderBrowserDialog1.SelectedPath
      MsgBox("Search Dir " & searchDir)
      Dim existingFileMaster = Path.Combine(searchDir, "Bld1_Master_Document.sgm")
      MsgBox("fOUND MasterBuild file " & existingFileMaster)
      Dim lstFileChanges = CreateList(searchDir)

      'The following method does NOT return an array of lines
      Dim strMasterDoc = File.ReadAllText(existingFileMaster)
      For Each fc In lstFileChanges
      strMasterDoc = strMasterDoc.Replace(fc.OldString, fc.NewString)
      Next
      File.WriteAllText(existingFileMaster, strMasterDoc)
      End Sub

      Private Function CreateList(selectedPath As String) As List(Of FileChanges)
      Dim lstFC As New List(Of FileChanges)
      Dim count As Integer = Directory.GetFiles(selectedPath, "*.sgm").Count-1
      'MsgBox("COUNT " & count)
      For i = 1 To count
      Dim fc As New FileChanges
      fc.OldString = $"&CH{i};"
      fc.FileName = $"Chapter{i}.sgm"
      fc.NewString = File.ReadAllText(Path.Combine(selectedPath, fc.FileName))
      lstFC.Add(fc)
      Next
      Return lstFC
      End Function
      End Class

      Public Class FileChanges
      Public Property OldString As String '&CH1.sgm
      Public Property FileName As String 'Chapter1.sgm
      Public Property NewString As String 'Contents of Chapter1.sgm, the string to insert
      End Class






      vb.net






      share|improve this question









      New contributor




      Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 7 hours ago









      LarsTech

      105116




      105116






      New contributor




      Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 7 hours ago









      Maxine HammettMaxine Hammett

      11




      11




      New contributor




      Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Maxine Hammett is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          0






          active

          oldest

          votes











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "196"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          Maxine Hammett is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216266%2freplace-function-not-working%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          Maxine Hammett is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          Maxine Hammett is a new contributor. Be nice, and check out our Code of Conduct.













          Maxine Hammett is a new contributor. Be nice, and check out our Code of Conduct.












          Maxine Hammett is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Code Review Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216266%2freplace-function-not-working%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to make a Squid Proxy server?

          第一次世界大戦

          Touch on Surface Book