HelpDeskCentennialrd
asked on
Read External File in VBScript
Ok, this question it very simple just any one example.
I whant read one external file (Data.log). This file have four column and many lines like this.:
First Name Last Name Movielphone HomePhone
Peter Gomez (305)555-5555 (305) 444-4444
Anni Gomez (305)555-5555 (305) 444-4444
In this script have four variable First Name, Last Name, Movielphone and HomePhone. I need to read all value in my external file for create other process.
Example.:
WshS.run ".\delprofi.bat " & First Name & Last Name & Movielphone & HomePhone
Thanks
ASKER
Thanks for your comments but my questions it more How I can Read one external file and get the value for my variables if the data to be in columns like my example.
Are those tab delimited? Ex FirstName <TAB> LastName
Does This Work
-------------------------- ----Untest ed ...Very Busy today
Const objDBlist = "C:\text.txt"
Const ForReading = 1
Const BatchFile = "C:\Batch.bat"
Public LastName(),FirstName(),Mov ielphone() ,HomePhone ()
x=0
Set Wshell = CreateObject("Wscript.Shel l")
Set objTextFile = objFSO.OpenTextFile(objPCl ist, ForReading) '1 ip or hostname per line
Do Until objTextFile.AtEndOfStream
strLine = Split(objTextFile.readline ,VBtab)
ReDim Preserve FirstName(x)
ReDim Preserve LastName(x)
ReDim Preserve Movielphone(x)
ReDim Preserve HomePhone(x)
LastName(x)= strLine(0)
FirstName(x) = strLine(1)
Movielphone(x) = strLine(2)
HomePhone(x) = strLine(3)
x = x + 1
Loop
For z = 0 To (x - 1)
Space = " "
Arguments = Space & Firstname(z) & Space & LastName(z) & Space & Movielphone(z) & Space & HomePhone(z)
Wshell.Run (BatchFile & Arguments)
Next
-------------------------- ---------- ---------- ---------- ----
--------------------------
Const objDBlist = "C:\text.txt"
Const ForReading = 1
Const BatchFile = "C:\Batch.bat"
Public LastName(),FirstName(),Mov
x=0
Set Wshell = CreateObject("Wscript.Shel
Set objTextFile = objFSO.OpenTextFile(objPCl
Do Until objTextFile.AtEndOfStream
strLine = Split(objTextFile.readline
ReDim Preserve FirstName(x)
ReDim Preserve LastName(x)
ReDim Preserve Movielphone(x)
ReDim Preserve HomePhone(x)
LastName(x)= strLine(0)
FirstName(x) = strLine(1)
Movielphone(x) = strLine(2)
HomePhone(x) = strLine(3)
x = x + 1
Loop
For z = 0 To (x - 1)
Space = " "
Arguments = Space & Firstname(z) & Space & LastName(z) & Space & Movielphone(z) & Space & HomePhone(z)
Wshell.Run (BatchFile & Arguments)
Next
--------------------------
ASKER
Could you check this line ?
Set objTextFile = objFSO.OpenTextFile(objPCl
What did it say when it Sorry, Made a few changes...That what happens when you rush :[
-------------------------- -
Const objDBlist = "C:\text.txt"
Const ForReading = 1
Const BatchFile = "C:\Batch.bat"
Public LastName(),FirstName(),Mov ielphone() ,HomePhone ()
x=0
Set objFSO = CreateObject("Scripting.Fi leSystemOb ject")
Set Wshell = CreateObject("Wscript.Shel l")
Set objTextFile = objFSO.OpenTextFile(objDBl ist, ForReading) '1 ip or hostname per line
Do Until objTextFile.AtEndOfStream
strLine = Split(objTextFile.readline ,VBtab)
ReDim Preserve FirstName(x)
ReDim Preserve LastName(x)
ReDim Preserve Movielphone(x)
ReDim Preserve HomePhone(x)
FirstName(x)= strLine(0)
LastName(x) = strLine(1)
Movielphone(x) = strLine(2)
HomePhone(x) = strLine(3)
x = x + 1
Loop
For z = 0 To (x - 1)
strSpace = " "
Arguments = strSpace & Firstname(z) & strSpace & LastName(z) & strSpace & Movielphone(z) & strSpace & HomePhone(z)
Wshell.Run (BatchFile & Arguments)
Next
-------------------------- ---------- -------
Did you get watchdog?
--------------------------
Const objDBlist = "C:\text.txt"
Const ForReading = 1
Const BatchFile = "C:\Batch.bat"
Public LastName(),FirstName(),Mov
x=0
Set objFSO = CreateObject("Scripting.Fi
Set Wshell = CreateObject("Wscript.Shel
Set objTextFile = objFSO.OpenTextFile(objDBl
Do Until objTextFile.AtEndOfStream
strLine = Split(objTextFile.readline
ReDim Preserve FirstName(x)
ReDim Preserve LastName(x)
ReDim Preserve Movielphone(x)
ReDim Preserve HomePhone(x)
FirstName(x)= strLine(0)
LastName(x) = strLine(1)
Movielphone(x) = strLine(2)
HomePhone(x) = strLine(3)
x = x + 1
Loop
For z = 0 To (x - 1)
strSpace = " "
Arguments = strSpace & Firstname(z) & strSpace & LastName(z) & strSpace & Movielphone(z) & strSpace & HomePhone(z)
Wshell.Run (BatchFile & Arguments)
Next
--------------------------
Did you get watchdog?
A couple things about this script....
1) It assumes that these fields are seperated by TABS
2) If there is an empty line in your file ... It will blow up
3) If the files dont exist, it will blow up
4) If the user doesnt have permission to the file it will blow up
5) If there is a line with a missing entry it will blow up
6) If you strap a bomb to it, IT WILL BLOW UP!!!
1) It assumes that these fields are seperated by TABS
2) If there is an empty line in your file ... It will blow up
3) If the files dont exist, it will blow up
4) If the user doesnt have permission to the file it will blow up
5) If there is a line with a missing entry it will blow up
6) If you strap a bomb to it, IT WILL BLOW UP!!!
ASKER
I supose when you say IT WILL BLOW UP you takin about this error?
LecturaFile.vbs(21, 11) Microsoft VBScript runtime error: Subscript out of range: '[number: 3]'
LecturaFile.vbs(21, 11) Microsoft VBScript runtime error: Subscript out of range: '[number: 3]'
ASKER
yes, i have my copy of watdog
No, if none of those situations were met then it is something unaccounted for.
Tell me your line 21 so I can sync up with yours.
Tell me your line 21 so I can sync up with yours.
If it is where i think it is then double check these:
1) It assumes that these fields are seperated by TABS
2) If there is an empty line in your file ... It will blow up
1) It assumes that these fields are seperated by TABS
2) If there is an empty line in your file ... It will blow up
AND
All 4 fields must be present :
First Name<TAB>Last Name<TAB>Movielphone<TAB>H omePhone
All 4 fields must be present :
First Name<TAB>Last Name<TAB>Movielphone<TAB>H
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
If i want to ski the errors, what can I do.?
Get some skis and jump dude?!?! I am unsure of what you want here. If there were errors or problems you could give the experts chances to fix them and if you dont its on you. On the other hand if i have completely misunderstood your comment I am sorry.
Dim fso
Set fso = CreateObject("Scripting.Fi
you can learn about how to use the FileSystemObject at this Microsoft link:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/a3f17c7a-69a2-47d8-8b40-6a74646f4e1d.asp
and also, for the complete overview:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/0fa93e5b-b657-408d-9dd3-a43846037a0e.asp
AW