VB Script Samples

Script samples demonstrate a way to use the TextConverter component from multiple scripting environments. You can:

This sample creates an instance of the TextConverter object, loads a project file and runs the conversion.

Dim cnv, path, n_recs

Set cnv = CreateObject( "ConverterX.ConverterX.1" )

path = cnv.GetStartPath()

path = path & "Samples/TextConverter/Manual Mode/1 Well formed input/1.1 Products.ConverterX"

cnv.OpenProject( path )

n_recs = cnv.Convert()

MsgBox n_recs & " records were converted successfully.", vbOKOnly, "TextConverter Sample"

The following sample script creates the TextConverter object, sets the output database table, sets several conversion options, loads an input text file and runs the process.

Option Explicit

Dim cnv, path, f, fc, err, erp, dsp, numFiles, src, ok, filter

Dim fso : Set fso = CreateObject( "Scripting.FileSystemObject" )

Dim args : set args = WScript.Arguments

TryRerun32

'If args.Count = 0 Then

'elseIf args.Item(0) <> tag32b Then TryRerun32

'WScript.Echo args.Item(0)

'WScript.Quit 0

'=============================

path = fso.GetParentFolderName(WScript.ScriptFullName) & "\" '- Setting path variable to carrent folder

Set cnv = CreateObject( "ConverterX.ConverterX.1" )         '- Creating TextConverter automation object

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

src = path & "Data\"        '- Folder containing input files

dsp = path & "Processed\"   '- Folder where successfuly processed input files are moved (create automaticaly)

erp = path & "Errors\"      '- Folder where unsuccessfuly processed input files are moved (create automaticaly)

filter = ".pdf"

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

numFiles = ScanFolders( fso.GetFolder( src ), False ) '- Counting file

ok = MsgBox( "File to Process: " & numFiles & ". Would you like to start processing?", VbOkCancel)

If ok = VbOk Then

cnv.OpenProject( path & "Run.converterx" )                   '- Openning TextConverter project

cnv.append = False                                           '- Setting TextConverter to re-create output file on run

numFiles = ScanFolders( fso.GetFolder( src ), True ) 'Processing input folder by TextConverter project for each input file

MsgBox "Done: " & numFiles

End If

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

Function ScanFolders( folder, act )

Dim sfs, sf, fls, nf, fl, dst

Set sfs = folder.SubFolders

For Each sf in sfs: nf = nf + ScanFolders(sf, act): Next '- Recursive call for processing subfolders

Set fls = folder.Files

For Each fl in fls

If InStr(LCase(fl.name), LCase(filter)) > 0 Then '- Filtering input files

If fso.FileExists(fl.path) And fl.Size > 0 Then

If act Then

cnv.SetInputFile fl.path               '- Setting input file

err = cnv.Convert()                           '- Running TextConverter

cnv.append = True

If err = -1 Then                             '- Checking of the error return code

MoveFile erp, fl

Else

'MoveFile dsp, fl

End If

End If

nf = nf + 1

End If

End If

Next

ScanFolders = nf

End Function

Function MoveFile(fldr, ByRef fl)

Dim dst

If not fso.FolderExists(fldr) Then fso.CreateFolder(fldr)

dst = fldr & fl.name

If fso.FileExists(dst) Then fso.DeleteFile dst, true

fso.MoveFile fl.path, dst

End Function

'=============================

Sub TryRerun32

if InStr( WScript.Path, "SysWOW64" ) > 0 then exit sub

Dim so, cscript32_path

Set so = WScript.CreateObject("WScript.Shell")

cscript32_path = so.ExpandEnvironmentStrings("%windir%") & "\SysWOW64\" & fso.GetFileName(WScript.FullName)

If fso.FileExists( cscript32_path ) Then

Dim cmd_line, a

cmd_line = cscript32_path & " """ & WScript.ScriptFullName & """"

for each a in args

   cmd_line = cmd_line & " " & a

   next

so.Run cmd_line, 1, TRUE

WScript.Quit 0

End if

End Sub

See also:

Working with API

API Methods and Properties