J'ai retrouvé dans mes archives un fichier qui viens d'anciennement AUTOMATICA
TsxDataConvert.vbs (voici le code)
Code : Tout sélectionner
'/// TsxDataConvert.vbs \\\
'\\\ Powered by Automatica ///
'Version 1.0 - 30/10/2007
'Ce script permet de convertir un fichier DAT généré par PL7-3
'en un fichier DAT au format PL7-Pro.
'La conversion peut être lancée en ligne de commande ou par glisser-déposer
'du fichier à convertir sur le fichier TsxDataConvert.vbs.
Option Explicit
Const ForReading = 1, ForWriting = 2
Dim oWshShell, oShell, oFSO, oArgs
Dim oFichierOrigine, oFichierConverti
Dim sFicOrigine, sFicConverti, sVal, s
Dim iVal, iAdresse, iReponse
Set oShell = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
'--- Récupération des fichiers DAT en argument
Set oArgs = Wscript.Arguments
If oArgs.Count<1 Then
s= "Script de conversion d'un fichier .DAT PL7-3 vers PL7 Pro" & VBCRLF
s=s & "<<< Powered by Automatica >>>" & VBCRLF
s=s & "-------------------------------------------------------------------" & VBCRLF
s=s & "Syntaxe: " & VBCRLF
s=s & " TsxDataConvert <srce> [<dest>]" & VBCRLF
s=s & " <srce> : fichier source généré par PL7-3" & VBCRLF
s=s & " (doit exister)" & VBCRLF
s=s & " <dest> : fichier destination au format PL7 Pro" & VBCRLF
s=s & " (est créé ou écrasé)" & VBCRLF
s=s & " par défaut, il est nommé 'Conversion de <srce>'" & VBCRLF
WScript.Echo s
WScript.Quit
Else
sFicOrigine = oArgs(0)
If Not oFSO.FileExists(sFicOrigine) Then
MsgBox "Le fichier " & sFicOrigine & " n'existe pas.", 16, "Erreur"
WScript.Quit
End If
If oArgs.count>1 Then
sFicConverti = oArgs(1)
Else
'--- Composition du nom du fichier à créer à partir du fichier d'origine, dans le même répertoire
Set oFichierOrigine = oFSO.GetFile(sFicOrigine)
sFicConverti = oFichierOrigine.ParentFolder & "\Conversion de " & oFichierOrigine.Name
End If
End IF
Set oArgs = Nothing
'--- Ouverture des fichiers
Set oFichierOrigine = oFSO.OpenTextFile(sFicOrigine, ForReading)
Set oFichierConverti = oFSO.OpenTextFile(sFicConverti, ForWriting,True)
'--- En-têtes
'Non lu pour le fichier d'origine
oFichierOrigine.Skip(136)
'Généré pour le fichier converti
oFichierConverti.WriteLine "[DATA_UNIT]"
oFichierConverti.WriteLine "DA_TYPE = "
oFichierConverti.WriteLine "LOCATION = "
oFichierConverti.WriteLine "NAME = "
oFichierConverti.WriteLine "BODY = "
oFichierConverti.WriteLine "VAR_GLOBAL"
'--- Données
'Adresse de départ
sVal = oFichierOrigine.Read(2)
iAdresse = Asc(Right(sVal,1)) * 256 + Asc(Left(sVal,1))
'Valeurs
Do While Not oFichierOrigine.AtEndOfStream
'Lecture du mot=2 octets
sVal = oFichierOrigine.Read(2)
'Somme octet de poids fort (second) et octet de poids faible (premier)
iVal = Asc(Right(sVal,1)) * 256 + Asc(Left(sVal,1))
oFichierConverti.WriteLine "AT %MW" & iAdresse & " : WORD := (" & iVal & ");"
iAdresse = iAdresse + 1
'Saut de 8 octets tous les 1024 mots
If (iAdresse Mod 1024)=0 Then
oFichierOrigine.Skip(8)
End If
Loop
'--- Clôture du fichier converti
oFichierConverti.WriteLine "END_VAR"
oFichierConverti.WriteLine "[EOF]"
'--- Fermeture des fichiers
oFichierConverti.Close
oFichierOrigine.Close
'--- Ouverture du fichier créé si accepté
iReponse = MsgBox("Voulez-vous ouvrir le fichier résultat maintenant ?",vbYesNo+vbQuestion ,"Conversion terminée")
If iReponse = vbYes Then
Set oWshShell = CreateObject("WScript.Shell")
oWshShell.Run "notepad.exe " & Chr(34) & sFicConverti & Chr(34)
End If