Solved

vbscript - replace text in a file...

Posted on 2010-11-19
6
516 Views
Last Modified: 2012-05-10
I have a file that I need to reformat the html inside...right now it reads liek this:

<!-- BEGIN_PANEL_1 -->
<!-- BEGIN_PANEL_1 -->
<!-- BEGIN_PANEL_1 -->

....code...
<img src="images/
....

<!-- BEGIN_PANEL_2 -->
<!-- BEGIN_PANEL_2 -->
<!-- BEGIN_PANEL_2 -->

....code...
<img src="images/
....


<!-- BEGIN_PANEL_3 -->
<!-- BEGIN_PANEL_3 -->
<!-- BEGIN_PANEL_3 -->

....code...
<img src="images/..

....so on...


<!-- BEGIN_PANEL_1 -->
<!-- BEGIN_PANEL_1 -->
<!-- BEGIN_PANEL_1 -->

....code...
<img src="images_1/
....

<!-- BEGIN_PANEL_2 -->
<!-- BEGIN_PANEL_2 -->
<!-- BEGIN_PANEL_2 -->

....code...
<img src="images_2/
....


<!-- BEGIN_PANEL_3 -->
<!-- BEGIN_PANEL_3 -->
<!-- BEGIN_PANEL_3 -->

....code...
<img src="images_3/..


I need to read like this...

dim objArgs, objFile1, objFile2, FileStream1,FileStream2, i , slIN1, var_line_read, var_line_read_END, sLINE2, j, sline3, sline4, sline5, k, allLines, sline6



Set objArgs = Wscript.Arguments

Set objFSO = CreateObject("Scripting.FileSystemObject")



'Set objFile1 = objFSO.GetFile(objArgs(0))

'Set objFile2 = objFSO.GetFile(objArgs(1))



Set FileStream1 = objFSO.OpenTextFile("C:\Documents and Settings\NBxxR\PRG_PJTS\WIT\LIVE\Home_Page_ALL_IN_ONE-test.txt", 1, true)

Set FileStream2 = objFSO.OpenTextFile("C:\Documents and Settings\NBxxR\PRG_PJTS\WIT\LIVE\test.txt", 8, true)





   

   

   

   

   sLine1 = FileStream1.ReadAll()

   FileStream1.Close

   

   '  reformat the file....

   

   

   ' -----------------------------------------------------------------------------

   

  For i = 1 to 200

  

  

   var_line_read = "<!-- BEGIN_PANEL_" & i & " -->"

      j = j + 1

   var_line_read_END = "<!-- BEGIN_PANEL_" & j & " -->"

   

   	if sLine1 = var_line_read  then

   		Do while sline1 <> var_line_read_END

   		   sline1 = Replace(sline1,"<img src=""~/Content/images_"" ", "<img src=""~/Content/images_"" " & i)

   		

   		loop

   

   	else

   	end if

 

  Next 

   

 

 ' -------------------------------------------------------------------------------

 

 

   For i = 1 to 200

   

   

    var_line_read = "<!-- BEGIN_PANEL_x_" & i & " -->"

       j = j + 1

    var_line_read_END = "<!-- BEGIN_PANEL_x_" & j & " -->"

    

    	if sLine1 = var_line_read  then

    		Do while sline1 <> var_line_read_END

    		    sline1 = Replace(sline1,"<img src=""~/Content/images_x_"" ", "<img src=""~/Content/images_x_"" " & i)

    		

    		loop

    

    	else

    	end if

  

  Next

 

 

  

  

   Filestream2.writeline sline1





msgbox("complete")

Open in new window

0
Comment
Question by:GlobaLevel
  • 3
  • 2
6 Comments
 
LVL 25

Expert Comment

by:kevp75
ID: 34179582
this is a duplicate question of: http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_26627941.html

Please close one of these out, as you are violating the terms of this site.
0
 
LVL 29

Expert Comment

by:matrixnz
ID: 34179583
Couple of issues I can see:
sLine1 is actually the entire file it's not an array, you would have to split it to create the array by using something like Split(sLine1, Chr(10)) or VBCrLf.
The other thing is that while the rest of your script references an array, you're writing the code at the end rather than within the loop, so rather than

sline1 = Replace(sline1,"<img src=""~/Content/images_"" ", "<img src=""~/Content/images_"" " & i)
You would write the line to the file
FileStream2.Write(sline1,"<img src=""~/Content/images_"" ", "<img src=""~/Content/images_"" " & i))

Hope that helps.

Cheers
0
 
LVL 25

Accepted Solution

by:
kevp75 earned 500 total points
ID: 34179815
instead of doing readall, do a loop through each line.  (no need to make it an array)

something like
Do While Not(FileStream1.AtEndOfStream)
    sLine1 = Replace(FileStream1.ReadLine, "<img src=""~/Content/images_"" ", "<img src=""~/Content/images_"" " & i)
Loop
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 10

Author Comment

by:GlobaLevel
ID: 34198797
It didnt quite work in the sense that it didnt replace the text, although no errors were found...
0
 
LVL 25

Expert Comment

by:kevp75
ID: 34199010
can you post your new code?
0
 
LVL 10

Author Comment

by:GlobaLevel
ID: 34261250
thanks
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
This article will show, step by step, how to integrate R code into a R Sweave document
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now