Ecco il codice definitivo, bello e aggiustato, del mio convertitore di parentesi angolari in sequenze di escape:
Module Module1
Sub main()
Dim variabile As Byte
FileOpen(1, "C:\Users\Io\Documents\file.txt", OpenMode.Binary)
FileOpen(2, "C:\Users\Io\Documents\output.txt", OpenMode.Binary)
Dim n As Integer = 1, k As Integer = 1
Do Until EOF(1)
FileGet(1, variabile, n)
Debug.Print(variabile)
If variabile = 60 Then
variabile = 38
FilePut(2, variabile, k)
k = k + 1
variabile = 108
FilePut(2, variabile, k)
k = k + 1
variabile = 116
FilePut(2, variabile, k)
k = k + 1
variabile = 59
FilePut(2, variabile, k)
Else
FilePut(2, variabile, k)
End If
n = n + 1
k = k + 1
Loop
End Sub
End Module
Questo è il file
output.txt che sul web appare con le giuste parentesi angolari:
<html>
<head>
<title>
Pagina di prova
</title>
</head>
<body>
<div style="color:red">Questo è un testo di prova</div>
</body>
</html></html>
E questo è il file
output.txt come è realmente sullo schermo del computer:
Ottimo!
Adesso devo ristudiare il modo di usarlo dalla linea di comando!
Ma un momento! Perchè mi ha scritto due volte </html> alla fine?
Rifacciamo...
mmmhhh... no, era perchè in precedenza avevo usato un numero di caratteri più lungo, e le nuove scritture hanno sovrascritto tutto tranne l'ultimo tag che ci avanzava.
Questo pone il problema di cancellare tutto il file prima di sovrascriverlo...
L'ho sistemato in breve!
Module Module1
Sub main()
Dim variabile As Byte
My.Computer.FileSystem.DeleteFile("C:\Users\Io\Documenti\output.txt")
FileOpen(1, "C:\Users\Io\Documents\file.txt", OpenMode.Binary)
FileOpen(2, "C:\Users\Io\Documents\output.txt", OpenMode.Binary)
Dim n As Integer = 1, k As Integer = 1
Do Until EOF(1)
FileGet(1, variabile, n)
Debug.Print(variabile)
If variabile = 60 Then
variabile = 38
FilePut(2, variabile, k)
k = k + 1
variabile = 108
FilePut(2, variabile, k)
k = k + 1
variabile = 116
FilePut(2, variabile, k)
k = k + 1
variabile = 59
FilePut(2, variabile, k)
Else
FilePut(2, variabile, k)
End If
n = n + 1
k = k + 1
Loop
FileClose(2)
FileClose(1)
End Sub
End Module
Il file
output.txt precedente viene
cancellato e quindi ricreato.
Facile!